warzone2100: New nixpkg.
[nixpkgs-libre.git] / doc / outline.txt
blob816cdbdc3ed7eae22f5267b56ef20671653c2c44
1 - The standard environment
3   (Some of this can be moved from the Nix manual)
5   - Special attributes
7   - Generic builder
9   - Helper functions
11   - GCC / ld wrapper (+ env vars)
13   - Phases (+ how to add phases) and hooks
15   - Override functions for stdenv
17     - Overriding GCC
19     - Overriding the setup script
21     - Predefined override functions in all-packages.nix: static binary
22       stdenv, dietlibc stdenv
24   - Stdenv bootstrap; how to update the Linux bootstrap binaries
26   - Specific platform notes (Linux, Native, Cygwin, Mingw)
29 - Support for specific languages
31   - Perl
33     - Generic Perl builder
35   - Python
37     - Wrapper generation
39   - Haskell
41     - TODO
43   - Java
45     - TODO; Java needs lots of improvement
47   - TeX/LaTeX
49     - Special support for building TeX documents
50   
52 - Special kinds of applications
54   - OpenGL apps
56   - Binary-only apps
58   - Linux kernel modules
60   - Mozilla plugins/extensions
62   - X apps
64   - KDE apps
66   - GConf-based apps
68   - Programs that need wrappers
70     - makeWrapper etc.
72   - Initial ramdisks
75 - Library functions
77   - i.e. in lib/default.nix
80 - Specific package notes
82   - Linux kernel; how to update; feature tests
84   - X.org; how to update
86   - Gnome; how to update
88   - GCC?
90   - GHC?
92   - ...
95 - Meta attributes
97   - License attr; possible values
100 - Virtual machine support (for the build farm)
102   - vmtools
104   - KVM notes
106   - Performing a build in a VM
108     - In the host FS
110     - In a disk image
112   - RPM builds
114     - RPM image creation
116   - Deb builds
118     - Deb image creation
120   - Debugging VM builds
121   
123 - Guidelines for Nixpkgs contributions
125   - File naming conventions
127     - Versioning of packages
129   - Tree organisation
131   - Variable naming
133   - Layout / indentations style
135   - Output FS hierarchy (e.g. $out/share/man instead of $out/man)
137   
138 - Misc
140   - Building outside of the Nixpkgs tree
142   - Config options
144   - Downloading stuff
146     - fetchurl
148       - mirror:// scheme
150     - fetchsvn
152     - fetchcvs
154     - fetchdarcs
157 - Appendix: Nixpkgs config options