summary refs log blame commit diff
path: root/doc/outline.txt
blob: 816cdbdc3ed7eae22f5267b56ef20671653c2c44 (plain) (tree)
























                                                                      

                                                          






























































































































                                                                 



                                  
- 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