58c20ef428
svn path=/nixpkgs/trunk/; revision=540 |
||
---|---|---|
.. | ||
applications | ||
build-support/fetchurl | ||
development | ||
os-specific/linux | ||
servers | ||
shells/bash | ||
stdenv | ||
system | ||
tools | ||
README |
* Classification scheme for packages - many packages fall under several categories; what matters is the *primary* purpose of a package. For example, the libxml2 package builds both a library and some tools; but it's a library foremost, so it goes under ./development/libraries. - when in doubt, refactor. IF it's used to support SOFTWARE DEVELOPMENT: IF it's a LIBRARY used by other packages: IF it's directly related to GTK: ./development/libraries/gtk+ ELSE ./development/libraries (e.g., libxml2) ELSE IF it's a COMPILER: ./development/compilers (e.g., gcc) ELSE IF it's an INTERPRETER: ./development/interpreters ELSE IF it's a development TOOL (or set of): IF it's a PARSER GENERATOR (incl. lexers): ./development/tools/parsing (e.g., bison, flex) ELSE IF it's a BUILD MANAGER: ./development/tools/build-managers (e.g., gnumake ELSE ./development/tools/misc (e.g., binutils) ELSE ./development/misc ELSE IF it's a TOOL (or set of): # a tool is a relatively *small* program, esp. one intented to be # used non-interactively IF it's for NETWORKING: ./tools/networking (e.g., wget) ELSE IF it's for TEXT PROCESSING: ./tools/text (e.g., diffutils) ELSE IF it's a SYSTEM utility, i.e., something related or essential to the operation of a system: ./tools/system (e.g., init) ELSE IF it's an ARCHIVER (which may include a compression function): ./tools/archivers (e.g., zip, tar) ELSE IF it's a COMPRESSION program: ./tools/compression (e.g., gzip, bzip2) ELSE ./tools/misc ELSE IF it's a SHELL: ./shells ELSE IF it's a SERVER: IF it's a HTTP server: ./servers/http (e.g., apache) IF it's a X11 server: ./servers/x11 (e.g., xfree86) ELSE ./servers/misc ELSE IF it's a DESKTOP ENVIRONMENT (incl. WINDOW MANAGERS): ./desktops (e.g., kde, gnome, fvwm) ELSE IF it's an APPLICATION: # a (typically large) program with a distinct user interface, # primarily used interactively IF it's a VERSION MANAGEMENT system: ./applications/version-management ELSE IF it's for VIDEO playback/etc: ./applications/video ELSE IF it's for GRAPHICS viewing/editing/etc: ./applications/graphics ELSE IF it's for NETWORKING: IF it's a MAILREADER: ./applications/networking/mailreaders IF it's a NEWSREADER: ./applications/networking/newsreaders ELSE ./applications/networking/misc ELSE ./applications/misc