173 lines
2.2 KiB
Plaintext
173 lines
2.2 KiB
Plaintext
|
- Intro
|
||
|
|
||
|
- Goal of this manual
|
||
|
|
||
|
|
||
|
- Quick start to adding a package
|
||
|
|
||
|
(Some of this can be copied/moved from the Nix manual)
|
||
|
|
||
|
- Hello example
|
||
|
- Nix expr
|
||
|
- Update all-packages.nix
|
||
|
- How to test
|
||
|
- How to debug failing builds
|
||
|
|
||
|
- Subversion example
|
||
|
|
||
|
- Some X example?
|
||
|
|
||
|
|
||
|
- 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
|
||
|
|
||
|
|
||
|
- 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
|