summary refs log tree commit diff
path: root/maintainers/docs/classification.txt
diff options
context:
space:
mode:
Diffstat (limited to 'maintainers/docs/classification.txt')
-rw-r--r--maintainers/docs/classification.txt113
1 files changed, 113 insertions, 0 deletions
diff --git a/maintainers/docs/classification.txt b/maintainers/docs/classification.txt
new file mode 100644
index 000000000000..ff29a6013ca3
--- /dev/null
+++ b/maintainers/docs/classification.txt
@@ -0,0 +1,113 @@
+* 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
+
+ELSE IF it's DATA (i.e., doe not have a straight-forward executable semantics):
+
+  IF it's related to SGML/XML processing:
+    IF it's a XML DTD:
+      ./data/sgml+xml/schemas/xml-dtd
+    ELSE IF it's an XSLT stylesheet (okay, these are executable...):
+      ./data/sgml+xml/stylesheets/xslt
+
+ELSE IF it's a GAME:
+
+  ./games
+
+ELSE:
+
+  ./misc