Add (guix zlib).
[jackhill/guix/guix.git] / TODO
CommitLineData
6b8875c8
LC
1-*- mode: org; coding: utf-8; -*-
2
8c247e1c
LC
3#+TITLE: What's left to do?
4#+STARTUP: content hidestars
5
d6af2518 6Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
6b8875c8
LC
7
8 Copying and distribution of this file, with or without modification,
9 are permitted in any medium without royalty provided the copyright
10 notice and this notice are preserved.
11
d6b5e4bb
LC
12* Add `guix publish' to publish the store using Guile's web server
13
14Generate narinfos and nars on the fly, upon HTTP GET requests.
15Ideally, extend .nix-cache-info to include the server's public key, and also
16reply to requests for .narinfo.sig.
17Optionally, use Guile-Avahi to publish the service.
18
d6af2518 19* MAYBE Add a substituter that uses the GNUnet DHT or [[http://libswift.org][libswift]]
c7e4a72a 20
d6af2518
LC
21Would be neat if binaries could be pushed to and pulled from the GNUnet DHT or
22rather libswift (since DHTs aren’t suited for large payloads). Guix users
23would sign their binaries, and define which binaries they trust.
3e5980de 24
d6af2518
LC
25Use UPnP and similar to traverse NAT, like ‘filegive’ does.
26
27* user interface
3e5980de 28** add guile-ncurses interface
c7e4a72a 29
6b8875c8 30* extend <package>
499b8d1f
LC
31** add ‘recommends’ field
32
33For instance, glibc, binutils, gcc, and ld-wrapper would recommend each other.
34‘guix package -i’ could ask interactively (?), or allow users to follow all or
35none of the recommendations.
36
6b8875c8
LC
37** add a ‘user-environment-hook’
38
39This should specify builder code to be run when building a user
40environment with ‘guix-package’. For instance, Texinfo’s hook would
41create a new ‘dir’.
42
3036a01f
LC
43** extend ‘propagated-build-inputs’ with support for multiple outputs
44
45#+BEGIN_SRC scheme
46 (outputs '("out" "include"))
47 (propagated-build-inputs
48 `(((("i1" ,p1 "o1")
49 ("i2" ,p2))
50 => "include")
51 ("i3" ,p3)))
52#+END_SRC
53
971cb56d 54* synchronize non-GNU package descriptions with the [[http://directory.fsf.org][FSD]]
29767aae
LC
55
56Meta-data for GNU packages, including descriptions and synopses, can be
57dumped from the FSD:
58http://directory.fsf.org/wiki?title=GNU/Export&action=purge .
59We could periodically synchronize with that.
60
c7e4a72a
LC
61* add a guildhall build system
62
63The Guildhall is Guile’s packaging system. It should be easy to add a
64‘guildhall-build-system’ that does the right thing based on guildhall
65recipes.
66
6b8875c8
LC
67* union
68
d6af2518
LC
69Support sophisticated collision handling when building a union: honor
70per-package priorities, etc.
6b8875c8 71
3dfd7cef
LC
72* add GUIX_ALLOW_EXPENSIVE_TESTS
73
74Tests that need to download stuff or otherwise take a long time would only be
75run when that is defined.
76
290d4370
LC
77* add "guix challenge"
78
79Would download a substitute, and compare its contents against a (hopefully
80locally-built) copy.
81
6b8875c8 82* guix build utils
29767aae
LC
83** MAYBE Change ‘ld-wrapper’ to add RPATH for libs passed by file name
84
8c247e1c 85** MAYBE Add equivalent to chrpath that uses [[https://gitorious.org/guile-dlhacks/guile-dlhacks/][guile-dlhacks]]
6b8875c8 86
29767aae 87** MAYBE Add a hash-rewriting thing for deep dependency replacement without rebuild
c7e4a72a
LC
88
89See [[https://github.com/NixOS/nixpkgs/commit/d1662d715514e6ef9d3dc29f132f1b3d8e608a18][Shea Levy's `replace-dependency' in Nixpkgs]].
90
6b8875c8 91* distro
6b8875c8
LC
92** port to GNU/Hurd, aka. ‘i686-gnu’
93
94Problems include that current glibc releases do not build on GNU/Hurd.
95In addition, there haven’t been stable releases of GNU Mach, MiG, and
96Hurd, which would be a pre-condition.
97