diff options
Diffstat (limited to 'pkgs/README')
-rw-r--r-- | pkgs/README | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/pkgs/README b/pkgs/README new file mode 100644 index 0000000000000..b315e1bfb7e5c --- /dev/null +++ b/pkgs/README @@ -0,0 +1,97 @@ +* 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 |