| A new approach to cover interests of specialised users | 
  | (page 1) | 
 
  | Overview | 
  | (page 2) | 
  | What are Custom Debian Distributions?Resume of user talk:→ Do not make a separate distribution
     but make Debian fit for
     special purpose instead | 
  | (page 3) | 
  | Looking beyond
   Commercial Linux distributors sell certain products
       
	 Enterprise (Corporate Server - Mandrake, Advanced Server - Red Hat, Enterprise Server - SuSE)2Workstation or home editions, Office desktopsSpecial task products
	     
                Mail server (SuSE Linux Openexchange Server)Firewall (Multi Network Firewall - Mandrake, SuSE Firewall on CD)Cluster (Mandrake Clustering)Content Management System (Red Hat)Portal Server (Red Hat)These products address specific user interests → Debian uses Custom Distributions | 
  | (page 4) | 
  | Meta Packages - Developers point of viewA meta package is a Debian package which contains:
   Dependencies from other Debian packages
      
        Depend from packages to do a certain taskRecommend further interesting packagesSuggest others or non-free packagesUser menu entries (recommended)
      Configuration (optional)
        in /etc/cdd/<cdd>/menu/<pkg-name>
        maintained via role based tools
        debconf questions or pre-seedingcfengine scripts Special meta package: <cdd>-common | 
  | (page 5) | 
  | Handling of meta packages
   User-talk: no special
       help by usual toolsEnhance tasksel
       
          Could be enhanced as a tree structure anywayOne branch of the tree might contain all CDDsEnhancing tools like aptitude,
       synaptic, etc.
       
	  Sections for CDDs and their meta packagesCDD related searchingEnhancing command line tools like apt-cache,
       
	  Searching for existing meta packagesOverview about dependenciesWeb tools keeping meta package information up to dateAddition to policy: CDD flag for debian/controlMake use of Debian Package Tags | 
  | (page 6) | 
  | Why user roles
   Role based user menu system
       
          Installed programs remain hidden if not presented in a menuDefault menus are bloatedKeep in mind: We are the missing
	      link between upstream and userRole system can be used for other stuff in the future
       
          Flexible plugin system enables further usageLDAP based role system would be greatRoles are implemented in current Debian-Med packages | 
  | (page 7) | 
  | Tools to develop meta packages
   The package cdd-dev provides development tools
       
          Scan packages list for available packagesBuild control files from meta packages according to templatesBuild menu entries for user menus in meta packagesContains examples how to build meta packagescdd-gen-control
       
          Builds debian/control file
              from templates in tasks directoryChecks sources.list file for
              available packagescdd-install-helper
       
          Moves menu files from menu
              directory into right placeMoves documentation files from docs directory into right placeCreates <cdd>-common packageTake care for general config file /etc/cdd/<cdd>/<cdd>.confUsage of these tools is strongly recommendedDebian-Med packages provide a working example | 
  | (page 8) | 
  | Common dependency packageUsing cdd-dev introduces
dependency from cdd-common
   Creates common registry for all CDDs in /etc/cddConfiguration file /etc/cdd/cdd.conf
       
          Set DBBACKEND (currently only unixgroups implemented)Settings can be overridden by /etc/cdd/<cdd>/<cdd>.confcdd-role: add/remove roles in registered CDDcdd-update-menus: add menu to all CDD users(users have to call update-menus
       if not done in postinst script)
cdd-user: add/remove user to role of a registered CDD | 
  | (page 9) | 
  | Quick intro into building meta packages
$ cp -a /usr/share/doc/cdd-dev/examples/tasks .$ cat tasks/README
 $ edit tasks/task1
 Task: Biology
 Description: short description
 long description as in any debian/control file
 
 Depends: dependency1, dependency2, ...
 → For each meta package this skeleton of a
debian/control entry is needed 
   see /usr/share/doc/cdd-dev/examples/tasks
 | 
  | (page 10) | 
  | The packaging directory
$ cp -a /usr/share/doc/cdd-dev/examples/debian .$ cat debian/README
 $ edit debian/control.stub
 change the variables to match your CDD
 $ edit debian/rules
 change the variable _CDD_ to your
CDD
 $ make -f debian/rules dist
 
   you get your tar.gz source which you can copy anywhere and do 
$ debuild
 → In principle you are ready. | 
  | (page 11) | 
  | The common meta package (optional)
$ cp -a /usr/share/doc/cdd-dev/examples/common .$ cat common/README
 $ edit common/conf common/control common/common.1
 change the variables to match your CDD
 → Initialisation of role based menu system 
   meta packages will automatically depend from common packageinstalls auto-apt  helperstrongly suggested | 
  | (page 12) | 
  | The meta package menus (optional)
$ cp -a /usr/share/doc/cdd-dev/examples/menu .$ cat menu/README
 $ cat menu/task1/README
 $ edit menu/task1/dep1.menu
 $ edit menu/task1/dep2.txt
 $ edit menu/task1/dep3.html
 Edit the example to legal menu entries or
    reasonable descriptions
 $ cp menu/task1 menu/<meta package name>
 → Provide user menu entries for each meta
    package - at least with documentation | 
  | (page 13) | 
  | Communication | 
  | (page 14) | 
  | To do | 
  | (page 15) | 
  | My opinion
   More Custom Debian DistributionsSpreading the idea to developers and usersPackage maintainer ⇔ CDD maintainerPolicy ensures that packages work togetherCDD ensures that a set of packages works optimal for a special purpose
 | 
  | (page 16) | 
  | Further Information | 
  | (page 17) |