* user interface
** Add a package.el (Emacs) back-end
-Unfortunately package.el is monolithic, so most likely we’d have to
-write a new one based on it, as opposed to actually using it.
+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 <origin>
** add OpenPGP signatures:
* extend <package>
+** add ‘recommends’ field
+
+For instance, glibc, binutils, gcc, and ld-wrapper would recommend each other.
+‘guix package -i’ could ask interactively (?), or allow users to follow all or
+none of the recommendations.
+
** add a ‘user-environment-hook’
This should specify builder code to be run when building a user
("i3" ,p3)))
#+END_SRC
+
* synchronize package descriptions with GSRC and/or the [[http://directory.fsf.org][FSD]]
Meta-data for GNU packages, including descriptions and synopses, can be
http://directory.fsf.org/wiki?title=GNU/Export&action=purge .
We could periodically synchronize with that.
-* support cross-compilation
-
-Implement ‘package-cross-derivation’, and add the corresponding code in
-‘gnu-build-system’. Then, actually bootstrap a cross-compilation
-environment–e.g., a cross-GNU environment.
+See http://lists.gnu.org/archive/html/bug-guix/2013-04/msg00120.html for info
+on how to synchronize with GSRC's descriptions.
* add a guildhall build system
‘guildhall-build-system’ that does the right thing based on guildhall
recipes.
-* gnu-build-system: produce a ‘debug’ derivation
-
-Set a .gnu_debuglink in the main derivations to point to the sibling
-file name (only the basename, to not retain a dependency on the ‘debug’
-derivation.)
-
-For /nix/store/xyz-foobar/bin/foo, we should have
-/nix/store/abc-foobar-debug/lib/nix/store/xyz-foobar/bin/foo.debug (info
-"(gdb) Separate Debug Files").
-
-Users should have a default GDB setting with ~/.guix-profile/lib/debug
-as their ‘debug-file-directory’.
-
* build-expression->derivation: define `%system' in the builder
Would allow build expressions to have system-dependent code, like
whether the colliding files are identical, 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 package
** add ‘--list-generations’, and ‘--delete-generations’