about summary refs log tree commit diff
path: root/doc/manual/bugs.xml
blob: 8a56a28c5079487e3503b12ab48a8e8b12593c58 (plain) (blame)
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
<appendix><title>Bugs / To-Do</title>

<itemizedlist>

    <listitem>
      <para>
        The man-pages generated from the DocBook documentation are ugly.
      </para>
    </listitem>

    <listitem>
      <para>
        Generations properly form a tree.  E.g., if after switching to
        generation 39, we perform an installation action, a generation
        43 is created which is a descendant of 39, not 42.  So a
        rollback from 43 ought to go back to 39.  This is not
        currently implemented; generations form a linear sequence.
      </para>
    </listitem>

    <listitem>
      <para>
        <emphasis>Build management.</emphasis>  In principle it is already
        possible to do build management using Nix (by writing builders that
        perform appropriate build steps), but the Nix expression language is
        not yet powerful enough to make this pleasant (?).  The language should
        be extended with features from the <ulink
          url='http://www.cs.uu.nl/~eelco/maak/'>Maak build manager</ulink>.
        Another interesting idea is to write a <command>make</command>
        implementation that uses Nix as a back-end to support <ulink
          url='http://www.research.att.com/~bs/bs_faq.html#legacy'>legacy</ulink> 
        build files.
      </para>
    </listitem>

<listitem><para>For security, <command>nix-push</command> manifests
should be digitally signed, and <command>nix-pull</command> should
verify the signatures.  The actual NAR archives in the cache do not
need to be signed, since the manifest contains cryptographic hashes of
these files (and <filename>fetchurl.nix</filename> checks
them).</para></listitem>

<listitem><para>It would be useful to have an option in
<command>nix-env --delete-generations</command> to remove non-current
generations older than a certain age.</para></listitem>

</itemizedlist>

</appendix>