gnu: moka-icon-theme: Simplify package definition.
[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
d6af2518 12* MAYBE Add a substituter that uses the GNUnet DHT or [[http://libswift.org][libswift]]
c7e4a72a 13
d6af2518
LC
14Would be neat if binaries could be pushed to and pulled from the GNUnet DHT or
15rather libswift (since DHTs aren’t suited for large payloads). Guix users
16would sign their binaries, and define which binaries they trust.
3e5980de 17
d6af2518
LC
18Use UPnP and similar to traverse NAT, like ‘filegive’ does.
19
20* user interface
3e5980de 21** add guile-ncurses interface
c7e4a72a 22
6b8875c8 23* extend <package>
499b8d1f
LC
24** add ‘recommends’ field
25
26For instance, glibc, binutils, gcc, and ld-wrapper would recommend each other.
27‘guix package -i’ could ask interactively (?), or allow users to follow all or
28none of the recommendations.
29
6b8875c8
LC
30** add a ‘user-environment-hook’
31
32This should specify builder code to be run when building a user
33environment with ‘guix-package’. For instance, Texinfo’s hook would
34create a new ‘dir’.
35
3036a01f
LC
36** extend ‘propagated-build-inputs’ with support for multiple outputs
37
38#+BEGIN_SRC scheme
39 (outputs '("out" "include"))
40 (propagated-build-inputs
41 `(((("i1" ,p1 "o1")
42 ("i2" ,p2))
43 => "include")
44 ("i3" ,p3)))
45#+END_SRC
46
971cb56d 47* synchronize non-GNU package descriptions with the [[http://directory.fsf.org][FSD]]
29767aae
LC
48
49Meta-data for GNU packages, including descriptions and synopses, can be
50dumped from the FSD:
51http://directory.fsf.org/wiki?title=GNU/Export&action=purge .
52We could periodically synchronize with that.
53
c7e4a72a
LC
54* add a guildhall build system
55
56The Guildhall is Guile’s packaging system. It should be easy to add a
57‘guildhall-build-system’ that does the right thing based on guildhall
58recipes.
59
6b8875c8
LC
60* union
61
d6af2518
LC
62Support sophisticated collision handling when building a union: honor
63per-package priorities, etc.
6b8875c8 64
3dfd7cef
LC
65* add GUIX_ALLOW_EXPENSIVE_TESTS
66
67Tests that need to download stuff or otherwise take a long time would only be
68run when that is defined.
69
6b8875c8 70* guix build utils
29767aae
LC
71** MAYBE Change ‘ld-wrapper’ to add RPATH for libs passed by file name
72
8c247e1c 73** MAYBE Add equivalent to chrpath that uses [[https://gitorious.org/guile-dlhacks/guile-dlhacks/][guile-dlhacks]]
6b8875c8 74
29767aae 75** MAYBE Add a hash-rewriting thing for deep dependency replacement without rebuild
c7e4a72a
LC
76
77See [[https://github.com/NixOS/nixpkgs/commit/d1662d715514e6ef9d3dc29f132f1b3d8e608a18][Shea Levy's `replace-dependency' in Nixpkgs]].
78
6b8875c8 79* distro
6b8875c8
LC
80** port to GNU/Hurd, aka. ‘i686-gnu’
81
82Problems include that current glibc releases do not build on GNU/Hurd.
83In addition, there haven’t been stable releases of GNU Mach, MiG, and
84Hurd, which would be a pre-condition.
85