X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/971cb56dd0c1a1cb265d2adfe41730cd2f8c5c22..a91d5b6c0530c627acb0d99c9e36dc9db8be9879:/TODO diff --git a/TODO b/TODO index c79a2c6644..f854f7fa98 100644 --- a/TODO +++ b/TODO @@ -3,32 +3,14 @@ #+TITLE: What's left to do? #+STARTUP: content hidestars -Copyright © 2012, 2013 Ludovic Courtès +Copyright © 2012, 2013, 2014 Ludovic Courtès +Copyright © 2019 Mathieu Othacehe Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. -* integrate needed Nix code - -** Remove dependency on OpenSSL - -The ‘openssl’ command-line tool is used in libstore to sign store paths -to be exported, and to check such signatures. The signing keys are -usually in /etc/nix/signing-key.{pub,sec}. They are a PKCS#8-encoded -X.509 SubjectPublicKeyInfo. These can be decoded with the [[http://lists.gnu.org/archive/html/help-gnutls/2012-12/msg00012.html][C API of -GnuTLS]], but not yet with its Guile bindings. There’s also -‘gnutls_privkey_sign_data’ to sign, and related functions. - - -** Add `guix publish' to publish the store using Guile's web server - -Generate narinfos and nars on the fly, upon HTTP GET requests. -Ideally, extend .nix-cache-info to include the server's public key, and also -reply to requests for .narinfo.sig. -Optionally, use Guile-Avahi to publish the service. - -** MAYBE Add a substituter that uses the GNUnet DHT or [[http://libswift.org][libswift]] +* MAYBE Add a substituter that uses the GNUnet DHT or [[http://libswift.org][libswift]] Would be neat if binaries could be pushed to and pulled from the GNUnet DHT or rather libswift (since DHTs aren’t suited for large payloads). Guix users @@ -36,20 +18,10 @@ would sign their binaries, and define which binaries they trust. Use UPnP and similar to traverse NAT, like ‘filegive’ does. -** Add a remote build hook - -Like scripts/build-remote.pl in Nix. - * user interface -** Add a package.el (Emacs) back-end - -package.el is quite monolithic, but we may be able to reuse/extend -‘package-menu-mode’ or at least ‘tabulated-list-mode’. - ** add guile-ncurses interface * extend - ** add ‘recommends’ field For instance, glibc, binutils, gcc, and ld-wrapper would recommend each other. @@ -73,32 +45,6 @@ create a new ‘dir’. ("i3" ,p3))) #+END_SRC -* MAYBE use HOP-like escapes to refer to inputs in build-side code - -Instead of doing things like: - -#+BEGIN_SRC scheme - (inputs `(("foo" ,foo))) - (arguments '(#:configure-flags - (list (string-append "--with-foo=" - (assoc-ref %build-inputs "foo"))))) -#+END_SRC - -Allow things like: - -#+BEGIN_SRC scheme - (inputs (list foo)) - (arguments ~(#:configure-flags - (list (string-append "--with-foo=" $foo)))) - -#+END_SRC - -... where '~' is 'build-quote' and '$' is 'build-unquote'. Better yet, -automatically compute the list of references of an expression passed to -'derivation-expression'. - -Use a [[http://dorophone.blogspot.fr/2011/09/scheme-syntax-is-monad.html][monad]] for the syntax. - * synchronize non-GNU package descriptions with the [[http://directory.fsf.org][FSD]] Meta-data for GNU packages, including descriptions and synopses, can be @@ -112,27 +58,16 @@ The Guildhall is Guile’s packaging system. It should be easy to add a ‘guildhall-build-system’ that does the right thing based on guildhall recipes. -* add ‘allowed-references’ in - -[[file:~/src/nix/src/libstore/build.cc::if%20(drv.env.find("allowedReferences")%20!%3D%20drv.env.end())%20{][See how Nix implements that internally]]. - * union -Support sophisticated collision handling when building a union: check -whether the colliding files are identical, honor per-package priorities, -etc. +Support sophisticated collision handling when building a union: honor +per-package priorities, etc. * add GUIX_ALLOW_EXPENSIVE_TESTS Tests that need to download stuff or otherwise take a long time would only be run when that is defined. -* add "guix challenge" - -Would download a substitute, and compare its contents against a (hopefully -locally-built) copy. - - * guix build utils ** MAYBE Change ‘ld-wrapper’ to add RPATH for libs passed by file name @@ -143,13 +78,47 @@ locally-built) copy. See [[https://github.com/NixOS/nixpkgs/commit/d1662d715514e6ef9d3dc29f132f1b3d8e608a18][Shea Levy's `replace-dependency' in Nixpkgs]]. * distro -** port to new GNU/Linux platforms, notably ‘mipsel64-linux’ ** port to GNU/Hurd, aka. ‘i686-gnu’ Problems include that current glibc releases do not build on GNU/Hurd. In addition, there haven’t been stable releases of GNU Mach, MiG, and Hurd, which would be a pre-condition. -** make a bootable GNU/Linux-Libre distro, with OS configuration EDSL - -Similar in spirit to /etc/nixos/configuration.nix. +* Installer +** Fix impossibility to restart on error after cow-store has been started +See https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html. +- Force reboot upon installer failure +- Unshare the installer process +- Run the installer process in a separate namespace +** Partitioning +*** Add RAID support +*** Add more partitioning schemes +The actual schemes are taken from Debian Installer but some are not +implemented yet: like "Separate partitions for /home /var and /tmp". +*** Replace wait page "Partition formating is in progress, please wait" +Create a new waiting page describing what's being done: + +[ 20% ] +Running mkfs.ext4 on /dev/sda2 ... + +[ 40% ] +Running mkfs.ext4 on /dev/sda3 ... +*** Add a confirmation page before formating/partitioning +** Desktop environments +*** Allow for no desktop environments +Propose to choose between "headless server" and "lightweight X11" in a new +page. +*** Add services selection feature +Add a services page to the configuration. Ask for services to be installed +like SSH, bluetooth, TLP in a checkbox list? +** Locale and keymap +*** Try to guess user locale and keymap by probing BIOS or HW (dmidecode) +** Timezone +*** Regroup everything in one single page +Under the form: +(UTC + 1) Europe/Paris +(UTC + 2) Africa/Cairo +... +** Display issue +*** Investigate display issue described here: +https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00305.html