aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: b7c8ca43130fe206b4a9aa832b3f71bfd3bffc0a (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
-*- mode: org; coding: utf-8; -*-

#+TITLE: What's left to do?
#+STARTUP: content hidestars

Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>

  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.

* 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]]

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
would sign their binaries, and define which binaries they trust.

Use UPnP and similar to traverse NAT, like ‘filegive’ does.

* user interface
** add guile-ncurses interface

* 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
environment with ‘guix-package’.  For instance, Texinfo’s hook would
create a new ‘dir’.

** extend ‘propagated-build-inputs’ with support for multiple outputs

#+BEGIN_SRC scheme
  (outputs '("out" "include"))
  (propagated-build-inputs
    `(((("i1" ,p1 "o1")
        ("i2" ,p2))
       => "include")
      ("i3" ,p3)))
#+END_SRC

* synchronize non-GNU package descriptions with the [[http://directory.fsf.org][FSD]]

Meta-data for GNU packages, including descriptions and synopses, can be
dumped from the FSD:
http://directory.fsf.org/wiki?title=GNU/Export&action=purge .
We could periodically synchronize with that.

* add a guildhall build system

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.

* union

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

** MAYBE Add equivalent to chrpath that uses [[https://gitorious.org/guile-dlhacks/guile-dlhacks/][guile-dlhacks]]

** MAYBE Add a hash-rewriting thing for deep dependency replacement without rebuild

See [[https://github.com/NixOS/nixpkgs/commit/d1662d715514e6ef9d3dc29f132f1b3d8e608a18][Shea Levy's `replace-dependency' in Nixpkgs]].

* distro
** 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.

class='msg-tooltip'>* guix/scripts/install.scm, guix/scripts/remove.scm, guix/scripts/upgrade.scm, tests/guix-package-aliases.sh: New files. * Makefile.am (MODULES, SH_TESTS): Add them. * po/guix/POTFILES.in: Add them. * guix/scripts/package.scm (guix-package): Split with... (guix-package*): ... this. New procedure. * doc/guix.texi (Invoking guix package): Document them. (Binary Installation, Application Setup, Package Management) (Packages with Multiple Outputs, Package Modules) (X.509 Certificates, Installing Debugging Files): Use 'guix install' in simple examples. * etc/completion/bash/guix (_guix_complete): Handle "install", "remove", and "upgrade". Ludovic Courtès 2019-03-26etc: Add "rename" snippet....* etc/snippets/text-mode/guix-commit-message-rename-package: New file. Pierre Neidhardt 2019-03-18Correct name and email address for ng0....* .mailmap, Makefile.am, doc/guix.de.texi, doc/guix.fr.texi, doc/guix.texi, etc/completion/fish/guix.fish, gnu/packages/accessibility.scm, gnu/packages/admin.scm, gnu/packages/audio.scm, gnu/packages/autotools.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/cinnamon.scm, gnu/packages/compression.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/django.scm, gnu/packages/dns.scm, gnu/packages/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm, gnu/packages/enlightenment.scm, gnu/packages/erlang.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/forth.scm, gnu/packages/fvwm.scm, gnu/packages/games.scm, gnu/packages/gl.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/gtk.scm, gnu/packages/guile-wm.scm,gnu/packages/guile-xyz.scm, gnu/packages/haskell-check.scm, gnu/packages/haskell-crypto.scm, gnu/packages/haskell.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/language.scm, gnu/packages/libcanberra.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm, gnu/packages/lolcode.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/mate.scm, gnu/packages/maths.scm, gnu/packages/mc.scm, gnu/packages/messaging.scm, gnu/packages/music.scm, gnu/packages/ncurses.scm, gnu/packages/networking.scm, gnu/packages/nickle.scm, gnu/packages/openbox.scm, gnu/packages/pdf.scm, gnu/packages/perl-check.scm, gnu/packages/perl.scm, gnu/packages/python-compression.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/ssh.scm, gnu/packages/suckless.scm, gnu/packages/tbb.scm, gnu/packages/telephony.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm, gnu/services/desktop.scm, gnu/services/version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Correct name and email address for ng0. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> ng0 2019-03-08etc: snippets: Prefill package name....* etc/snippets/text-mode/guix-commit-message-add-package: Extract package name from diff. Ricardo Wurmus 2019-03-07etc: snippets: Prefill package name and version....* etc/snippets/text-mode/guix-commit-message-update-package: Extract package name and version from git diff output. Ricardo Wurmus 2019-02-05guix-install.sh: Avoid "#!/bin/bash" shebang....Fixes <https://bugs.gnu.org/34279>. Reported by Claes Wallin (韋嘉誠) <clacke@lysator.liu.se>. * etc/guix-install.sh: Change shebang to #!/bin/sh and add 'if' statement to spawn Bash if needed. Ludovic Courtès 2018-12-13guix-install.sh: Use pool.sks-keyservers.net...."pgp.mit.edu" has been unavailable for some time. * etc/guix-install.sh (chk_require): Change key server to pool.sks-keyservers.net. Ludovic Courtès 2018-12-05guix-install.sh: Use the "ci.guix.info.pub" file name for clarity....* etc/guix-install.sh (sys_authorize_build_farms): Use the "ci.guix.info.pub" file name rather "berlin.guixsd.org.pub". Ludovic Courtès 2018-12-04etc: Add "ci.guix.info.pub" public key file....* etc/substitutes/ci.guix.info.pub: New file. * Makefile.am (dist_pkgdata_DATA): Add it. * guix/self.scm (miscellaneous-files): Add "share/guix/ci.guix.info.pub". Ludovic Courtès 2018-11-23build: Binary tarball now populates the "current-guix" profile....* Makefile.am (guix-binary.%.tar.xz): Pass '--profile-name=current-guix'. Remove glibc and glibc-utf8-locales. * doc/guix.texi (Binary Installation): Update accordingly. * etc/guix-install.sh * etc/guix-install.sh (sys_create_store, sys_enable_guix_daemon) (sys_authorize_build_farms): Likewise. * etc/guix-publish.conf.in, etc/guix-publish.service.in, etc/guix-daemon.conf.in, etc/guix-daemon.service.in: Update file names accordingly. Ludovic Courtès 2018-11-06maint: Move substitute public keys to etc/substitutes....* berlin.guixsd.org.pub, hydra.gnu.org.pub: Move to... * etc/substitutes: ... here. New directory. * Makefile.am (dist_pkgdata_DATA): Adjust accordingly. Ludovic Courtès 2018-11-06bash completion: Restore completion of available packages for 'guix build'....Fixes a regression introduced in 9b0a755f642542dd96065ad05ec9d844d8077fd7 whereby 'guix build TAB' would not suggest any completion. * etc/completion/bash/guix (_guix_complete): Arrange so 'guix build TAB' completes available packages. Ludovic Courtès 2018-10-14guix-install.sh: Recognize armhf-linux....* etc/guix-install.sh (chk_sys_arch): Add "armv7l" case. Ludovic Courtès 2018-10-10etc: Use git-file-name if origin is git-fetch....* etc/snippets/scheme-mode/guix-origin: Use git-file-name. Pierre Neidhardt 2018-07-13etc: snippets: Add guix-commit-message-use-https-home-page....* etc/snippets/text-mode/guix-commit-message-use-https-home-page: New file. * doc/contributing.texi (The Perfect Setup): Document new snippet. Arun Isaac 2018-07-13etc: snippets: Add new build systems to package snippet....* etc/snippets/scheme-mode/guix-package: Add android-ndk-build-system and scons-build-system as possibilities for the build-system field. Arun Isaac 2018-07-03bash completion: Complete files names after 'guix weather -m'....* etc/completion/bash/guix (_guix_complete): Complete files names after 'guix weather -m'. Oleg Pykhalov 2018-07-03bash completion: Complete files names after 'guix build -L'....* etc/completion/bash/guix (_guix_complete): Complete files names after 'guix build -L'. Oleg Pykhalov 2018-06-16Add guix-daemon Bash completion file....* etc/completion/bash/guix-daemon: New file. * Makefile.am (dist_bashcompletion_DATA): Add this. Oleg Pykhalov 2018-05-19guix-install.sh: Fix chk_require exiting without warning....* etc/guix-install.sh (chk_require): Because of the set -e option, Bash was exiting when the command `command -v "$c" &>/dev/null' was running on its own. Instead, we now test the command and accumulate warning messages in a single statement by chaining the command with a logical OR. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer 2018-03-29guix-install.sh: Explicitly set root's home directory....* etc/guix-install.sh (ROOT_HOME): New variable. (sys_create_store, sys_enable_guix_daemon, sys_authorize_build_farms): Use ROOT_HOME instead of ~root or the HOME environment variable. * doc/guix.texi (Binary Installation): Instead of assuming that ~ and $HOME refer to root's directory simply because commands are being run as root, explicilty refer to it via ~root. Fixes: <https://bugs.gnu.org/30728> Chris Marusich 2018-03-20Correct name and Email for ng0....* .mailmap: Correct name and Email for ng0. * Makefile.am, doc/guix.texi, etc/completion/fish/guix.fish gnu/packages/accessibility.scm, gnu/packages/admin.scm, gnu/packages/audio.scm, gnu/packages/autotools.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/cinnamon.scm, gnu/packages/compression.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/django.scm, gnu/packages/dns.scm, gnu/packages/emacs.scm, gnu/packages/enlightenment.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/forth.scm, gnu/packages/fvwm.scm, gnu/packages/games.scm, gnu/packages/gl.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/gtk.scm, gnu/packages/guile-wm.scm, gnu/packages/guile.scm, gnu/packages/haskell-check.scm, gnu/packages/haskell-crypto.scm, gnu/packages/haskell.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/language.scm, gnu/packages/libcanberra.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm, gnu/packages/lolcode.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/mate.scm, gnu/packages/maths.scm, gnu/packages/mc.scm, gnu/packages/messaging.scm, gnu/packages/music.scm, gnu/packages/ncurses.scm, gnu/packages/networking.scm, gnu/packages/nickle.scm, gnu/packages/openbox.scm, gnu/packages/pdf.scm, gnu/packages/perl-check.scm, gnu/packages/perl.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/ssh.scm, gnu/packages/suckless.scm, gnu/packages/tbb.scm, gnu/packages/telephony.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm, gnu/services/desktop.scm, gnu/services/version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Likewise. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> ng0 2018-02-21etc: guix-install.sh: Add aarch64-linux support....* etc/guix-install.sh (chk_sys_arch): Add aarch64 case. Efraim Flashner 2018-02-17bash completion: Complete files names after 'guix package -m'....* etc/completion/bash/guix (_guix_is_dash_m): New function. (_guix_complete): Add this. Oleg Pykhalov 2018-02-07etc: Add SELinux policy for the daemon....* etc/guix-daemon.cil.in: New file. * Makefile.am (dist_selinux_policy_DATA): Define it. * configure.ac: Handle --with-selinux-policy-dir. * doc/guix.texi (SELinux Support): New section. Ricardo Wurmus 2018-01-30etc: Add installation script....* etc/guix-install.sh: New file. * Makefile.am (EXTRA_DIST): Add it. * doc/guix.texi (Binary Installation): Mention it. Co-authored-by: sharlatan <sharlatanus@gmail.com> Ricardo Wurmus 2018-01-16etc: Add completions for fish....* etc/completion/fish/guix.fish: New file. * Makefile.am: Register the file. * configure.ac: Add the fish vendor-completions directory. Signed-off-by: Ludovic Courtès <ludo@gnu.org> ng0 2017-12-15etc: Add snippets....* etc/snippets/scheme-mode/guix-cvs-reference, etc/snippets/scheme-mode/guix-git-reference, etc/snippets/scheme-mode/guix-hg-reference, etc/snippets/scheme-mode/guix-origin, etc/snippets/scheme-mode/guix-package, etc/snippets/scheme-mode/guix-svn-reference, etc/snippets/text-mode/guix-commit-message-add-package, etc/snippets/text-mode/guix-commit-message-update-package: New files. * doc/contributing.texi (The Perfect Setup): Document snippets. Ricardo Wurmus