X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/2f265602ff23e41f75932aa568fe62e149e3cb9d..c0ef8ae22da4bb006abbb8a5b6cf99ec3e2ae335:/TODO diff --git a/TODO b/TODO index 0d52633556..3a8a77b145 100644 --- a/TODO +++ b/TODO @@ -3,15 +3,13 @@ #+TITLE: What's left to do? #+STARTUP: content hidestars -Copyright © 2012, 2013 Ludovic Courtès +Copyright © 2012, 2013, 2014 Ludovic Courtès 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 - -** 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 @@ -19,27 +17,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. - -* 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. - * 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. @@ -63,32 +44,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 @@ -102,27 +57,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 @@ -133,13 +77,9 @@ 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.