Specification for comps file version 1 by Scott Stone Components/package selections: Install Types (overview): 1. Base System - filesystem structure - OS kernel - Shared libraries - perl (needed for some configuration stuff) - basic documentation - rpm commandline utility - internet clients (telnet, ftp, etc) - some basic programs like vi,mount, TL config tools, etc.. 2. File Server - Base System - inetd services - yp services - nfs services - smb services - snmp daemon - Extra net clients like smbmount, ncpmount - extended documentation 3. Database Server - File Server - mysql - postgresql 4. File/Network Server - File Server - web server - DNS - sendmail daemon - extra network daemons/svcs such as rwalld, rwhod, gated, routed, etc. 5. Workstation - Base System - Extra net clients like smbmount, ncpmount - X Window System - X Applications/Multimedia - TurboDesk - snmp daemon - extended documentation 6. Development Workstation - Workstation - kernel source code - development packages - extra header files, static libs - inetd services - yp services - nfs services - smb services - cvs and rcs - extra network daemons/svcs such as rwalld, rwhod, gated, routed, etc. 7. Premium System - Development Workstation - Games - Extra editors, tools, misc. 8. Complete Install - Installs everything 9. Custom Install - Customize installation In the window where the install type is chosen, the user can press F1 to get a description of the currently highlighted group selection. The components file format: - Lines preceded with a # are comment lines. - Component Groups: - Available Flags: #define CGROUP_FLAG_INMENU 1 #define CGROUP_FLAG_REQUIRED 2 #define CGROUP_FLAG_WARN 4 #define CGROUP_FLAG_OPTIONAL 8 - Flag Explanation, in order above: - INMENU: displayed as an option in Customization - REQUIRED: must be selected (ie, kernel) - WARN: Give warning if not selected. - OPTIONAL: Every install type has separate option to install it (ie, "Shareware"). - The header line for each component group will look like: +-- Which install types this group belongs to | +- Flags field (see above) | | +- Priority field | | | +- Group Name | | | | 000011111:1:0:X Window System - Base This means that this group is selected in all install types except for the first four. It is displayed in the customization menu, and has the default priority (if priority == 0, default of 30000 will be set) How the priority system works - The default package priority is 30000. The acceptable range is 1-60000. This allows for a lot of flexibility in ordering packages. Most groups have the priority set as the default, so any group with a lower priority number will be installed before the main body of packages. Priorities can also be specified for individual packages, which will override the group priority. - The installer's parse routine will split the line on the first instance of :, so that any number of install types can be added (or removed) later. - The footer line will remain 'end'. In between are names of packages belonging to the group, one per line. - Explicit dependencies & conflicts: - Dependencies are handled at the package level by rpmlib. You can also require a complete group with: !R:(groupname) - Conflicts - a line starting with !G:(groupname) specifies that to install THIS group, you must NOT install the specified other group. Experts can override this in the custom install. Useful for saying that the Japanese group requires the exclusion of the Emacs group. Individual package conflicts can also be specified at the package level as: !P:(package):(package that it conflicts with) - Other explicit options: - !O:(priority):(packagename) -- specify package priority - !X:(packagename) -- explicitly require package - Summary of file format: header: (installtype membership):(flags):(priority):(groupname) package names: package names OR one of: - !R:(required additional group) - !S:(suggested additional group) - !G:(conflicting group) - !P:(packagename):(conflicting packagename) - !O:(priority):(packagename) - !X:(packagename) footer: end Any number of package groups can be defined. - Component Group List (overview) - list of groups plus some examples: - Skeleton (FS structure) - Kernel (kernel, kernel-modules, kernel-headers, modutils, other modules) - Kernel Source Code (kernel source) - Basic Packages (things like info, setup, pamconfig, pam, shadow-utils, passwd, chkconfig, MAKEDEV, lpr, crontabs, bash, adduser, init scripts, dump, /dev entries, perl, config tools, etc) - System Libraries (libc5, glibc, zlib, ncurses, popt, slang, newt, rpmlib, readline, ld.so, ldconfig, e2fsprogs, etc) - Compatibility Libraries (tcltk_old, readline_old, aout-libs) - System Utilities (mkisofs, taper, sharutils, setserial, statserial, irqtune, etc) - Shells (shells other than bash) - Editors (editors other than vi, pico, and emacs) - Emacs (contains Emacs and XEmacs) - Dialup Networking (ppp, turbopppconfig, slip, plip, minicom lrzsz, dip, chat) - Network Clients - Standard (telnet, ftp, etc) - Network Daemons - Standard (inetd, etc..) - Extended Networking (rusersd, rwalld, routed, gated, plus clients) - Printing (lpr, lpd, ghostscript, printfilters) - Text Processing (TeX, LaTeX, faces, etc) - Documentation - Basic (man, manpages) - Documentation - Extended (HOWTO, FAQ, etc.) - Graphics Tools (svgalib, netpbm, etc) - Sound Tools (aumix, playmidi, sox, cdp, maplay, etc) - Games - Databases (mysql, postgresql) - Development Libraries - Development - C - Development - Perl - Development - Other - X Window System - Base (XFree86, X fonts, fvwm) - X Window System - Libraries (X libs, qt, xforms, xview, xaw3d, lesstif) - X Window System - Utilities (qps, OffiX stuff, xfind, xpostit, etc) - X Window System - Applications (Netscape, lyx, ghostview, xpaint, gimp, etc) - X Window System - TurboDesk (turbodesk, turbopkgmgr, etc) - X Window System - Extra Desktops (fvwm95, fvwm2, KDE, Enlightenment, Windowmaker) - Shareware (shareware packages - optional for every install type) - Japanese (J-localized/specific packages - optional for every install type) - Forces exclusion of Emacs group. I believe that all the TurboLinux packages will fit into one of the above categories.