You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.2 KiB

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