- The standard environment (Some of this can be moved from the Nix manual) - Special attributes - Generic builder - Helper functions - GCC / ld wrapper (+ env vars) - Phases (+ how to add phases) and hooks - Override functions for stdenv - Overriding GCC - Overriding the setup script - Predefined override functions in all-packages.nix: static binary stdenv, dietlibc stdenv - Stdenv bootstrap; how to update the Linux bootstrap binaries - Specific platform notes (Linux, Native, Cygwin, Mingw) - Support for specific languages - Perl - Generic Perl builder - Python - Wrapper generation - Haskell - TODO - Java - TODO; Java needs lots of improvement - TeX/LaTeX - Special support for building TeX documents - Special kinds of applications - OpenGL apps - Binary-only apps - Linux kernel modules - Mozilla plugins/extensions - X apps - KDE apps - GConf-based apps - Programs that need wrappers - makeWrapper etc. - Initial ramdisks - Library functions - i.e. in lib/default.nix - Specific package notes - Linux kernel; how to update; feature tests - X.org; how to update - Gnome; how to update - GCC? - GHC? - ... - Meta attributes - License attr; possible values - Virtual machine support (for the build farm) - vmtools - KVM notes - Performing a build in a VM - In the host FS - In a disk image - RPM builds - RPM image creation - Deb builds - Deb image creation - Debugging VM builds - Guidelines for Nixpkgs contributions - File naming conventions - Versioning of packages - Tree organisation - Variable naming - Layout / indentations style - Output FS hierarchy (e.g. $out/share/man instead of $out/man) - Misc - Building outside of the Nixpkgs tree - Config options - Downloading stuff - fetchurl - mirror:// scheme - fetchsvn - fetchcvs - fetchdarcs - Appendix: Nixpkgs config options