* README contains notes on hierarchy structure. svn path=/nixpkgs/trunk/; revision=469wip/yesman
parent
ff00ba7ffa
commit
646a101086
@ -0,0 +1,83 @@ |
||||
* 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: |
||||
./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/lexer |
||||
(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., coreutils) |
||||
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 |
||||
./applications/misc |
Loading…
Reference in new issue