[Cdd-commits] r453 - in cdd/tags/cdd/0.4: . debian devtools etc etc/cdd examples examples/config examples/debian examples/install examples/install/task1 examples/menu examples/menu/task1 examples/tasks mans_old share share/cdd share/cdd/unixgroups share/menu templates templates/po
CDD Subversion Commit
noreply at alioth.debian.org
Mon Aug 27 19:26:15 UTC 2007
Author: tille
Date: Mon Aug 27 19:26:15 2007
New Revision: 453
Added:
cdd/tags/cdd/0.4/
cdd/tags/cdd/0.4/AUTHORS
cdd/tags/cdd/0.4/BUGS
cdd/tags/cdd/0.4/COPYING
cdd/tags/cdd/0.4/Changelog
cdd/tags/cdd/0.4/README.CDD
cdd/tags/cdd/0.4/TODO
cdd/tags/cdd/0.4/VERSION
cdd/tags/cdd/0.4/cdd-role (contents, props changed)
cdd/tags/cdd/0.4/cdd-role.8
cdd/tags/cdd/0.4/cdd-task-lister (contents, props changed)
cdd/tags/cdd/0.4/cdd-update-menus (contents, props changed)
cdd/tags/cdd/0.4/cdd-update-menus.8
cdd/tags/cdd/0.4/cdd-update-usermenus (contents, props changed)
cdd/tags/cdd/0.4/cdd-update-usermenus.8
cdd/tags/cdd/0.4/cdd-user (contents, props changed)
cdd/tags/cdd/0.4/cdd-user.8
cdd/tags/cdd/0.4/cdd.conf.5
cdd/tags/cdd/0.4/debian/
cdd/tags/cdd/0.4/debian/NEWS.Debian
cdd/tags/cdd/0.4/debian/cdd-common.README.Debian
cdd/tags/cdd/0.4/debian/cdd-common.dirs
cdd/tags/cdd/0.4/debian/cdd-common.docs
cdd/tags/cdd/0.4/debian/cdd-common.install
cdd/tags/cdd/0.4/debian/cdd-common.lintian.overrides
cdd/tags/cdd/0.4/debian/cdd-common.manpages
cdd/tags/cdd/0.4/debian/cdd-dev.dirs
cdd/tags/cdd/0.4/debian/cdd-dev.docs
cdd/tags/cdd/0.4/debian/cdd-dev.examples
cdd/tags/cdd/0.4/debian/cdd-dev.install
cdd/tags/cdd/0.4/debian/cdd-dev.lintian.overrides
cdd/tags/cdd/0.4/debian/cdd-dev.manpages
cdd/tags/cdd/0.4/debian/changelog
cdd/tags/cdd/0.4/debian/changelog.med-common
cdd/tags/cdd/0.4/debian/compat
cdd/tags/cdd/0.4/debian/control
cdd/tags/cdd/0.4/debian/copyright
cdd/tags/cdd/0.4/debian/rules (contents, props changed)
cdd/tags/cdd/0.4/devtools/
cdd/tags/cdd/0.4/devtools/Makefile (contents, props changed)
cdd/tags/cdd/0.4/devtools/cdd-gen-control (contents, props changed)
cdd/tags/cdd/0.4/devtools/cdd-get-names (contents, props changed)
cdd/tags/cdd/0.4/devtools/cdd-install-helper (contents, props changed)
cdd/tags/cdd/0.4/devtools/rules (contents, props changed)
cdd/tags/cdd/0.4/etc/
cdd/tags/cdd/0.4/etc/cdd/
cdd/tags/cdd/0.4/etc/cdd/cdd.conf
cdd/tags/cdd/0.4/examples/
cdd/tags/cdd/0.4/examples/README
cdd/tags/cdd/0.4/examples/config/
cdd/tags/cdd/0.4/examples/config/README
cdd/tags/cdd/0.4/examples/config/common (contents, props changed)
cdd/tags/cdd/0.4/examples/config/common.1
cdd/tags/cdd/0.4/examples/config/conf
cdd/tags/cdd/0.4/examples/config/control
cdd/tags/cdd/0.4/examples/debian/
cdd/tags/cdd/0.4/examples/debian/README
cdd/tags/cdd/0.4/examples/debian/cdd-task1.install
cdd/tags/cdd/0.4/examples/debian/cdd-task1.manpages
cdd/tags/cdd/0.4/examples/debian/compat
cdd/tags/cdd/0.4/examples/debian/control.stub
cdd/tags/cdd/0.4/examples/debian/rules (contents, props changed)
cdd/tags/cdd/0.4/examples/install/
cdd/tags/cdd/0.4/examples/install/README
cdd/tags/cdd/0.4/examples/install/task1/
cdd/tags/cdd/0.4/examples/install/task1/extra-script-which-is-needed-in-task1 (contents, props changed)
cdd/tags/cdd/0.4/examples/install/task1/extra-script-which-is-needed-in-task1.1
cdd/tags/cdd/0.4/examples/menu/
cdd/tags/cdd/0.4/examples/menu/README
cdd/tags/cdd/0.4/examples/menu/task1/
cdd/tags/cdd/0.4/examples/menu/task1/README
cdd/tags/cdd/0.4/examples/menu/task1/dep1.menu
cdd/tags/cdd/0.4/examples/menu/task1/dep2.txt
cdd/tags/cdd/0.4/examples/menu/task1/dep3.html
cdd/tags/cdd/0.4/examples/tasks/
cdd/tags/cdd/0.4/examples/tasks/README
cdd/tags/cdd/0.4/examples/tasks/task1
cdd/tags/cdd/0.4/mans_old/
cdd/tags/cdd/0.4/mans_old/cdd-gen-control.1
cdd/tags/cdd/0.4/mans_old/cdd-install-helper.1
cdd/tags/cdd/0.4/share/
cdd/tags/cdd/0.4/share/cdd/
cdd/tags/cdd/0.4/share/cdd/cdd-actions
cdd/tags/cdd/0.4/share/cdd/cdd-update-menus
cdd/tags/cdd/0.4/share/cdd/cdd-utils
cdd/tags/cdd/0.4/share/cdd/unixgroups/
cdd/tags/cdd/0.4/share/cdd/unixgroups/cdd-actions
cdd/tags/cdd/0.4/share/menu/
cdd/tags/cdd/0.4/share/menu/cdd-menu (contents, props changed)
cdd/tags/cdd/0.4/sources.list (contents, props changed)
cdd/tags/cdd/0.4/sources.list.local
cdd/tags/cdd/0.4/sources.list.stable
cdd/tags/cdd/0.4/sources.list.testing
cdd/tags/cdd/0.4/sources.list.unstable
cdd/tags/cdd/0.4/templates/
cdd/tags/cdd/0.4/templates/README.Debian
cdd/tags/cdd/0.4/templates/apt.conf
cdd/tags/cdd/0.4/templates/config.config (contents, props changed)
cdd/tags/cdd/0.4/templates/config.install
cdd/tags/cdd/0.4/templates/config.links
cdd/tags/cdd/0.4/templates/config.postinst (contents, props changed)
cdd/tags/cdd/0.4/templates/config.templates
cdd/tags/cdd/0.4/templates/po/
cdd/tags/cdd/0.4/templates/po/POTFILES.in
cdd/tags/cdd/0.4/templates/po/ca.po
cdd/tags/cdd/0.4/templates/po/de.po
cdd/tags/cdd/0.4/templates/po/fr.po
cdd/tags/cdd/0.4/templates/po/pt_BR.po
cdd/tags/cdd/0.4/templates/po/templates.pot
cdd/tags/cdd/0.4/templates/postinst (contents, props changed)
cdd/tags/cdd/0.4/templates/postrm (contents, props changed)
Log:
Tagged 0.4
Added: cdd/tags/cdd/0.4/AUTHORS
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/AUTHORS Mon Aug 27 19:26:15 2007
@@ -0,0 +1,3 @@
+Authors: Andreas Tille <tille at debian.org>
+ Petter Reinholdtsen <pere at debian.org>
+ Cosimo Alfarano <kalfa at debian.org>
Added: cdd/tags/cdd/0.4/BUGS
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/BUGS Mon Aug 27 19:26:15 2007
@@ -0,0 +1,5 @@
+List of known bugs:
+-------------------
+
+cdd-gen-control does not regard virtual package syntax ('|') and
+versioned depends.
Added: cdd/tags/cdd/0.4/COPYING
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/COPYING Mon Aug 27 19:26:15 2007
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Added: cdd/tags/cdd/0.4/Changelog
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/Changelog Mon Aug 27 19:26:15 2007
@@ -0,0 +1,60 @@
+cdd 0.4
+-------
+
+2007-08-23 Andreas Tille <tille at debian.org>
+ - cdd-gen-control is nearly identical to debian-ed/gen-control
+ (which was patched to replace edu/education by variables)
+ - devtools/
+ rules: General rules file to build meta packages
+ Makefile: make debian/control for a CDD
+ cdd-get-names: Read releavant CDD names from
+ debian/control.stub
+ - now build CDD-config package which was formerly named
+ CDD-common; several renamings in the templates, examples
+ and code from common to config were necessary
+ - moved cdd-gen-control to /usr/share/cdd-dev because
+ there is no reason to call it directly any more but
+ rather via make
+ - moved cdd-install-helper to /usr/share/cdd-dev because
+ its only use is to be called from rules file and there
+ is no sense to bloat /usr/bin with this stuff
+ - dropped cdd-clean-helper - the code was moved to
+ the rules file
+ - do not install the man pages for cdd-gen-control,
+ cdd-install-helper (and obviousely not for the removed
+ cdd-clean-helper any more because
+ - /usr/share/cdd-dev/cdd-get-names obtains certain
+ CDD specific names
+
+
+cdd 0.3.11 and earlier
+----------------------
+
+Changes to gen-control
+ - Use /etc/cdd/sources.list as default sources.list
+ If "-s <dist>" is specified /etc/cdd/sources.list.<dist>
+ is used. Otherwise the argument to option -s is used as
+ sources.list.
+ - /tmp/cdd-apt is used as $aptdir
+ The rationale behind this is to keep the cache stored on
+ building machine even after cleaning up build directory.
+ - The file debian/control.stub is searched for an entry
+ "^Package: <cdd>". If this is found it is used as prefix
+ for the packages, so the builded packages are named as
+ <cdd>-{task1,task2,task3,...}. The default cdd remains
+ "education-".
+ - If there is a common directory a <cdd>-common package is
+ builded as well. In this case a file common/control
+ must be provided.
+
+Changes to debian/rules
+ - After cleaning the target debian/control is just a symlink
+ to debian/control.stub. That's why debian/control.stub needs
+ a Package: entry just to let build tools work. This entry
+ is parsed by cdd-gen-control to obtain the CDD name and
+ debian/control is builded in every build process from scratch.
+
+Changes to REAMDE
+ - Moved to README.Debian template which will be installed if
+ the source package contains a docs directory and contains no
+ special README.Debian file.
Added: cdd/tags/cdd/0.4/README.CDD
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/README.CDD Mon Aug 27 19:26:15 2007
@@ -0,0 +1,33 @@
+This README file explains how to use cdd-* scripts.
+
+File system:
+- /etc/cdd/<CDD>
+ Each CDD should create this directory, containing all the infos needed
+ by cdd-* scripts and by the CDD itself.
+
+ In this way it's clear for users to realize that CDD is using
+ cdd framework
+
+- /etc/cdd/cdd.conf
+ Main configuration file of cdd-* scripts.
+
+ CDDs should be aware of it, but not modify it.
+
+- /etc/cdd/<CDD>/<CDD>.conf
+ A configuration file, in /bin/sh syntax, in which each CDD can
+ override /etc/cdd/cdd.conf
+
+ CDDs with particular needing, for example a particular backend, should
+ set variables here.
+ In this way a default set of parameters is provided by cdd.conf and a
+ specific set for each CDD instance in <CDD>/<CDD>.conf
+
+- /usr/share/cdd/
+ Where common functions for script are stored.
+ There will be a directory for each backend and a common set of
+ function that should be mandatory for each registred backend.
+
+- /etc/cdd/<CDD>/menu/<ROLE>/
+ Users' menus for each registered role.
+ If <ROLE> directory is not present, all files in /etc/cdd/<CDD>/menu/
+ are considered to be valid Debian menu entries for any Roles in CDD.
Added: cdd/tags/cdd/0.4/TODO
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/TODO Mon Aug 27 19:26:15 2007
@@ -0,0 +1,11 @@
+sources.list
+ It would be a good idea to parse /etc/apt/sources.list for the Debian-Mirror
+ which is used on the building box instead of using ftp.debian.org
+
+cdd-gen-control
+ should handle versioned dependencies
+
+cdd-install-helper
+ This script is currently more or less a hack.
+ It might be reasonable to modularize this script.
+
Added: cdd/tags/cdd/0.4/VERSION
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/VERSION Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+0.4
Added: cdd/tags/cdd/0.4/cdd-role
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/cdd-role Mon Aug 27 19:26:15 2007
@@ -0,0 +1,77 @@
+#!/bin/bash
+#
+# $Id: cdd-role 431 2006-10-23 06:11:32Z tille $
+
+usage () {
+ echo "Usage: `basename $0` <action> <CDD> [<role>]"
+ echo "action: add|del"
+ echo "CDD: `getCDDList|tr ' ' '|'`"
+ echo "role: `getCDDList|tr ' ' '|'` (default: CDD name)"
+}
+
+
+# the base dir for CDD conffiles, where script expects to find dirs named like
+# each registered CDDs
+CONFBASE=${CONFBASE:-/etc/cdd}
+
+# should be /usr/lib/cdd/*, file should be named differently
+. ${CONFBASE}/cdd.conf
+
+
+# Check consistency of passed argouments
+if [ $# -eq 0 ]; then
+ usage
+ exit 67 # EX_USAGE
+fi
+if [ "`toLower $1`" != "add" -a "`toLower $1`" != "del" ] ; then
+ echo "Missing or wrong action name."
+ echo
+ usage
+ exit 67 # EX_USAGE
+fi
+if [ -z "$2" ] ; then
+ echo "Missing CDD name."
+ echo
+ usage
+ exit 67 # EX_USAGE
+fi
+
+
+ACTION=`toLower $1`
+CDD=$2
+ROLE=${3:-${CDD}}
+
+# Now that we know the selected CDD, we can check if there is a local
+# configuration for it (ie differnt backend from the default one)
+test -n "${CDD}" -a -f ${CONFBASE}/${CDD}/${CDD}.conf &&
+ . ${CONFBASE}/${CDD}/${CDD}.conf
+
+
+if [ -n "${DBBACKEND}" ]; then
+ set -e
+ checkCDD ${CDD} || cddFail $? "Custom Distribution ${CDD} does not exist"
+
+ if [ "${ACTION}" = "add" ]; then
+ checkCDD ${CDD} || cddFail $? "CDD ${CDD} does not exist"
+ checkRole ${ROLE} && cddFail $? "Role ${ROLE} currently exist"
+ checkRoleInCDD ${CDD} ${ROLE} || \
+ cddFail $? "CDD (${CDD}) and Role (${ROLE}) are not correct or incompatible with the selected backend"
+
+ addRole ${CDD} ${ROLE} || \
+ cddFail $? "Failed to add role ${ROLE}"
+ elif [ "${ACTION}" = "del" ]; then
+ checkCDD ${CDD} || cddFail $? "CDD ${CDD} doesn't exist"
+ checkRole ${ROLE} || cddFail $? "Role ${ROLE} doesn't exist"
+ checkRoleInCDD ${CDD} ${ROLE} || \
+ cddFail $? "CDD (${CDD} and Role (${ROLE}) are not correct"
+
+ delRole ${CDD} ${ROLE} || \
+ cddFail $? "Failed to remove role ${ROLE}"
+ cddLog Role ${ROLE} successfully registered in CDD ${CDD}
+ fi
+ set +e
+
+else
+ # EX_USAGE
+ cddFail 67 "You chose to not use Roles"
+fi
Added: cdd/tags/cdd/0.4/cdd-role.8
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/cdd-role.8 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,43 @@
+.TH cdd-user 8 "2004/04/14" "" "Custom Debian Distributions"
+.SH NAME
+.B cdd-role
+\- add/remove roles in registered Custom Debian Distribution
+
+.SH SYNOPSIS
+.B cdd-user
+.B add|del
+<
+.B CDD
+>
+[<
+.B Role
+>]
+
+.SH DESCRIPTION
+Add/remove (register/unregister)
+.B Role
+for the specified
+.B CDD
+
+If
+.B Role
+is not specified, it's assumed to be named like
+.B CDD
+
+.SH OPTIONS
+.TP
+.B CDD
+- a registered custom distribution in /etc/cdd, of example one of
+.I med
+,
+.I junior
+,
+.I desktop
+,
+.I edu
+or
+.I demudi
+
+.SH AUTHOR
+Andreas Tille <tille at debian.org>
+Cosimo Alfarano <kalfa at debian.org>
Added: cdd/tags/cdd/0.4/cdd-task-lister
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/cdd-task-lister Mon Aug 27 19:26:15 2007
@@ -0,0 +1,36 @@
+#!/bin/sh
+# This script respects its own file name to find out the CDD it belongs to
+# Names should be builded like <CDD>-task-files
+# The intended use is to create according symlinks to this file
+
+NAME=`basename $0`
+if [ _"$NAME" = _"cdd-task-lister" ] ; then
+ exit
+fi
+
+# the base dir for CDD conffiles, where script expects to find dirs named like
+# each registered CDDs
+CONFBASE=${CONFBASE:-/etc/cdd}
+
+# a local per CDD conf is sourced later, after argument parsing
+. ${CONFBASE}/cdd.conf
+
+CDD=`echo $NAME | sed 's/-task-files//'`
+
+# Now that we know the selected CDD, we can check if there is a local
+# configuration for it (ie different backend from the default one)
+test -n "${CDD}" -a -f ${CONFBASE}/${CDD}/${CDD}.conf &&
+ . ${CONFBASE}/${CDD}/${CDD}.conf
+
+if [ -n "${DBBACKEND}" ]; then
+ set -e
+ checkCDD ${CDD} || cddFail $? "Custom distribution ${CDD} does not exist"
+fi
+
+# Check consistency of passed argouments
+if [ $# -ne 1 ] ; then
+ # printing usage makes no sense here
+ exit 67 # EX_USAGE
+fi
+
+cat /usr/share/cdd/tasksel/${CDD}/$1
Added: cdd/tags/cdd/0.4/cdd-update-menus
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/cdd-update-menus Mon Aug 27 19:26:15 2007
@@ -0,0 +1,110 @@
+#!/bin/bash
+#
+# $Id: cdd-update-menus 431 2006-10-23 06:11:32Z tille $
+
+usage() {
+ echo "Usage: `basename $0` [ -u <user> | -d <CDD> ]"
+ echo "CDD: `getCDDList|tr ' ' '|'`"
+ echo "user: system user registerd to a CDD"
+ echo
+ echo "run as user updates only the user's menu script"
+}
+
+# the base dir for CDD conffiles, where script expects to find dirs named like
+# each registered CDDs
+CONFBASE=${CONFBASE:-/etc/cdd}
+
+# a local per CDD conf is sourced later, after argument parsing
+. ${CONFBASE}/cdd.conf
+
+# specific utilities for cdd-update-menus
+. ${SHAREDIR}/cdd-update-menus
+
+# Get command line arguments
+GETOPT=`getopt -o d:u:h --long cdd:,user:,help -n "$0" -- "$@"`
+eval set -- "$GETOPT"
+while true
+do
+ case $1 in
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ # get distro name
+ -d|--cdd)
+ if ! amI root; then
+ cddLog "You must be root to specify --cdd parameter"
+ cddLog ""
+ usage
+ exit 64
+ elif [ -n "${CDDUSER}" ]; then
+ cddLog "You cannot specify --cdd and --user at the same time"
+ cddLog ""
+ usage
+ exit 0
+ else
+ CDD=$2
+ shift 2
+ fi
+ ;;
+ # get user name
+ -u|--user)
+ CDDUSER=$2
+ shift 2
+
+ if ! amI root && ! amI "${CDDUSER}"; then
+ cddLog "You must be root to specify --user parameter with a user that's not you"
+ usage
+ exit 64
+ elif [ "${CDDUSER}" == 'root' ]; then
+ cddFail 64 "err: Menus for user 'root' cannot be updated"
+ elif [ -n "${CDD}" ]; then
+ usage
+ exit 0
+ fi
+ ;;
+ --)
+ shift
+ break
+ ;;
+ *)
+ cddLog "$1 not recognized as option" >&2
+ exit 67 # EX_USAGE
+ ;;
+ esac
+done
+
+
+# update menu scripts for CDDUSER, for any CDD, if any
+if [ -n "${CDDUSER}" ]; then
+ SYSSCRIPT="${SHAREDIR}/menu/cdd-menu"
+ USERSCRIPT="`getUserHome ${CDDUSER}`/.menu/cdd-menu"
+
+ set -e
+ checkUser ${CDDUSER} || \
+ cddFail 67 "User does not exist"
+ isUserRegistered ${CDDUSER} || \
+ cddFail 67 "User ${CDDUSER} is not registered to any CDD"
+
+ # there's nothing to do on per user basis criteria
+ #updateUser ${CDDUSER} "${SYSSCRIPT}" "${USERSCRIPT}"
+ set +e
+
+# update menu scripts for any user registered into the specified CDD
+elif [ -n "${CDD}" ]; then
+ # Now that we know the selected CDD, we can check if there is a local
+ # configuration for it (ie differnt backend from the default one)
+ test -n "${CDD}" -a -f ${CONFBASE}/${CDD}/${CDD}.conf &&
+ . ${CONFBASE}/${CDD}/${CDD}.conf
+
+ set -e
+ checkCDD ${CDD} || \
+ cddFail $? "Custom distribution ${CDD} does not exist"
+
+ # there's nothing to do on per CDD basis criteria
+ #SYSSCRIPT="${SHAREDIR}/menu/cdd-menu"
+ #updateCDD ${CDD} "${SYSSCRIPT}"
+ set +e
+else
+ exec $0 --user `whoami`
+fi
Added: cdd/tags/cdd/0.4/cdd-update-menus.8
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/cdd-update-menus.8 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,45 @@
+.TH cdd-update-menus 8 "2004/03/24" "" "Custom Debian Distributions"
+.SH NAME
+.B cdd-update-menus
+\- add menu of meta package to all Custom Debian Distribution users
+
+.SH SYNOPSIS
+.B cdd-update-menus
+[ --cdd|-d <
+.B CDD
+> |
+--user|-u <
+.B user
+> ]
+
+.SH DESCRIPTION
+cdd-update-menus behaves differently depending on who run the command:
+
+If it's called by a user, it adds and keeps updated menu entries for the
+user who runs it.
+
+If it's called by root, it adds and keeps updated user's menu entries
+(see menu package for users' menus) for all users who belong to the
+group of the specified Custom Debian Distribution, or only for a
+specified user, depending on which parameter is passed to the script.
+
+.SH OPTIONS
+.TP
+.B CDD
+- one of the installed CDDs, listed in /etc/cdd/, for example (if installed):
+.I med
+,
+.I junior
+,
+.I desktop
+,
+.I edu
+or
+.I demudi
+
+.TP
+.B user
+- a user present on the system and belonging to a CDD
+
+.SH AUTHOR
+Andreas Tille <tille at debian.org>, Cosimo Alfarano <kalfa at debian.org>
Added: cdd/tags/cdd/0.4/cdd-update-usermenus
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/cdd-update-usermenus Mon Aug 27 19:26:15 2007
@@ -0,0 +1,51 @@
+#!/bin/bash
+#
+# $Id: cdd-update-usermenus 431 2006-10-23 06:11:32Z tille $
+
+usage() {
+ echo "Usage: `basename $0` <CDD>"
+ echo "CDD: `getCDDList|tr ' ' '|'`"
+ echo
+ echo "Updates user menus of all users registered for CDD"
+}
+
+# the base dir for CDD conffiles, where script expects to find dirs named like
+# each registered CDDs
+CONFBASE=${CONFBASE:-/etc/cdd}
+
+# a local per CDD conf is sourced later, after argument parsing
+. ${CONFBASE}/cdd.conf
+
+# specific utilities for cdd-update-menus
+. ${SHAREDIR}/cdd-update-menus
+
+if ! amI root; then
+ cddLog "$0 must be called by root. If you are a normal user just call update-menus ."
+ exit 0
+fi
+
+case $1 in
+ -h|--help|"")
+ usage
+ exit 0
+ ;;
+ *)
+ set -e
+ checkCDD $1 || \
+ cddFail $? "Custom distribution $1 does not exist"
+ CDD=$1
+ set +e
+esac
+
+if [ -s /etc/cdd/${CDD}/${CDD}.conf ] ; then
+ . /etc/cdd/${CDD}/${CDD}.conf
+fi
+
+for ROLE in `getCDDRoleList ${CDD}`; do
+ for CDDUSER in `getUsersInRole ${CDD} ${ROLE} 1`; do
+ # Update user menus if UPDATEUSERMENU is set to yes
+ cddLog "Adding menu for user ${CDDUSER} of ${CDD} ..."
+ su ${CDDUSER} -c "update-menus"
+ done
+done
+
Added: cdd/tags/cdd/0.4/cdd-update-usermenus.8
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/cdd-update-usermenus.8 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,35 @@
+.TH cdd-update-usermenus 8 "2004/03/24" "" "Custom Debian Distributions"
+.SH NAME
+.B cdd-update-usermenus
+\- update user menus of all Custom Debian Distribution users
+
+.SH SYNOPSIS
+.B cdd-update-menus
+<\fBCDD\fR>
+
+
+.SH DESCRIPTION
+The script can only be called by root and calls
+.B update-menus(1)
+for every user who is registered for the Custom Debian Distribution
+\fBCDD\fR. If a user wants to update his own personal menu he should
+call
+.B update-menus(1)
+directly.
+
+.SH OPTIONS
+.TP
+.B CDD
+- one of the installed CDDs, listed in /etc/cdd/, for example (if installed):
+.I med
+,
+.I junior
+,
+.I desktop
+,
+.I edu
+or
+.I demudi
+
+.SH AUTHOR
+Andreas Tille <tille at debian.org>, Cosimo Alfarano <kalfa at debian.org>
Added: cdd/tags/cdd/0.4/cdd-user
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/cdd-user Mon Aug 27 19:26:15 2007
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# $Id: cdd-user 431 2006-10-23 06:11:32Z tille $
+
+usage () {
+ echo "Usage: `basename $0` <action> <CDD> <user> [<Role>]"
+ echo "action: add|del"
+ echo "CDD: `getCDDList|tr ' ' '|'`"
+ echo "user: user of the system who should be added to the CDD"
+ echo "Role: a registered Role for specified CDD"
+ echo " (default: the one named like CDD)"
+}
+
+
+# the base dir for CDD conffiles, where script expects to find dirs named like
+# each registered CDDs
+CONFBASE=${CONFBASE:-/etc/cdd}
+
+# a local per CDD conf is sourced later, after argoument parsing
+. ${CONFBASE}/cdd.conf
+
+
+# Check consistency of passed argouments
+if [ $# -eq 0 ] ; then
+ usage
+ exit 67 # EX_USAGE
+fi
+if [ "`toLower $1`" != "add" -a "`toLower $1`" != "del" ] ; then
+ echo "Missing or wrong action name."
+ echo
+ usage
+ exit 67 # EX_USAGE
+fi
+if [ -z "$2" ] ; then
+ echo "Missing cdd name."
+ echo
+ usage
+ exit 67 # EX_USAGE
+fi
+if [ -z "$3" ] ; then
+ echo "Missing user name."
+ echo
+ usage
+ exit 67 # EX_USAGE
+fi
+
+ACTION=$1
+CDD=$2
+CDDUSER=$3
+ROLE=${4:-${CDD}}
+
+# Now that we know the selected CDD, we can check if there is a local
+# configuration for it (ie differnt backend from the default one)
+test -n "${CDD}" -a -f ${CONFBASE}/${CDD}/${CDD}.conf &&
+ . ${CONFBASE}/${CDD}/${CDD}.conf
+
+if [ -n "${DBBACKEND}" ]; then
+ set -e
+ checkCDD ${CDD} || cddFail $? "Custom distribution ${CDD} does not exist"
+ checkUser ${CDDUSER} || cddFail $? "User ${CDDUSER} does not exist"
+ checkRole ${ROLE} || cddFail $? "Role ${ROLE} does not exist"
+ checkRoleInCDD ${CDD} ${ROLE} || \
+ cddFail $? "CDD (${CDD}) and Role (${ROLE}) are not correct or incompatible with the selected backend"
+
+ if [ "`toLower ${ACTION}`" = "add" ]; then
+ setUserRole ${CDD} ${CDDUSER} ${ROLE} || \
+ cddFail $? "Failed to set user ${CDDUSER} to role ${ROLE}"
+ elif [ "`toLower ${ACTION}`" = "del" ]; then
+ unsetUserRole ${CDD} ${CDDUSER} ${ROLE} || \
+ cddFail $? "Failed to unset user ${CDDUSER} to role ${ROLE}"
+ fi
+
+# # MENU installation
+#
+# # All CDD menu entries will go in .cdd-menu, only one file will goes in
+# # .menu, so it's easy to remove/update
+# UHOME=`getUserHome ${CDDUSER}`
+# if [ ! -d "${UHOME}" ] ; then
+# logFail 67 "Home directory for user ${CDDUSER} does not exist.\n... Sorry can not update menus."
+# fi
+#
+# if [ ! -d ${UHOME}/.menu ] ; then
+# mkdir -p ${UHOME}/.menu
+# chown ${CDDUSER}: ${UHOME}/.menu
+# fi
+#
+# if [ ! -d ${UHOME}/.cdd-menu ] ; then
+# mkdir -p ${UHOME}/.cdd-menu
+# chown ${CDDUSER}: ${UHOME}/.cdd-menu
+# fi
+#
+# MENUS=""
+# if [ -d ${CONFBASE}/${CDD} ] ; then
+# if [ -d ${CONFBASE}/${CDD}/menu ] ; then
+# for MENU in `ls ${CONFBASE}/${CDD}/menu` ; do
+# cp -a ${CONFBASE}/${CDD}/menu/${MENU} ${UHOME}/.cdd-menu
+# chown ${CDDUSER}: ${UHOME}/.cdd-menu/${MENU}
+# MENUS="${MENUS} ${MENU}"
+# done
+# fi
+# fi
+#
+# for MENU in ${MENUS}; do
+# echo '!include'" ${UHOME}/.cdd-menu/${MENU}"
+# done > ${UHOME}/.menu/cdd-menu
+
+ set +e
+else
+ # EX_USAGE
+ cddFail 67 "You choose to not use Roles"
+fi
Added: cdd/tags/cdd/0.4/cdd-user.8
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/cdd-user.8 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,51 @@
+.TH cdd-user 8 "2004/03/24" "" "Custom Debian Distributions"
+.SH NAME
+.B cdd-user
+\- add/remove user to Role of a registered Custom Debian Distribution
+
+.SH SYNOPSIS
+.B cdd-user
+.B add|del
+<
+.B CDD
+>
+<
+.B user
+>
+[<
+.B Role
+>]
+
+.SH DESCRIPTION
+Add user to a
+.B Role
+of the specified
+.B CDD
+
+If
+.B Role
+is not specified, it's assumed to be named like
+.B CDD
+
+.SH OPTIONS
+.TP
+.B CDD
+- a registered custom distribution in /etc/cdd, for example one of
+.I med
+,
+.I junior
+,
+.I desktop
+,
+.I edu
+or
+.I demudi
+.TP
+.B user
+- user to add
+.B Role
+- the role in the CDD that user will assume
+
+.SH AUTHOR
+Andreas Tille <tille at debian.org>
+Cosimo Alfarano <kalfa at debian.org>
Added: cdd/tags/cdd/0.4/cdd.conf.5
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/cdd.conf.5 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,57 @@
+.TH CDD.CONF 5 2004-05-10 "Custom Debian Distribution Configuration" ""
+.SH NAME
+cdd.conf \- configuration for Custom Debian Distribution registry
+.SH DESCRIPTION
+This file is sourced from shell scripts inside the Custom Debian
+Distribution package
+.B cdd-common
+and thus it has to follow shell syntax. The variables which are set
+inside this configuration file can be overriden by special CDD
+configration files
+.I /etc/cdd/<cdd>/<cdd>.conf
+for each single CDD.
+
+.SH SYNTAX
+The following variables can be set:
+.TP
+.I DBBACKEND
+Set the backend for the user role management system. Currently the
+only implemented role management system is
+.I unixgroups
+but others might be implemented later. Unsetting this variable leads
+to use no roles at all.
+.TP
+.I UPDATEUSERMENU
+If this is set to
+.I yes
+the user menus of meta packages can be created automatically at
+install time of the package if the postinst script of the package
+allows this. It is suggested to use this option in the specific
+configuration files of a special Custom Debian Distribution which
+overrides the settings of the general configuration file.
+.TP
+.I SHAREDIR
+Set the base directory for the user role management system. While this
+is more or less a feature for debugging this might be also used otherwise.
+.TP
+.I DRYRUN
+This variable can be set for debugging. Normally it should be left
+unset (NOT set to false or anything else!). If set to
+.I true
+a dry run of the tools is performed or
+.I echo DRYRUN:
+would print debugging information.
+.TP
+.I DEBUG
+If set to
+.I 1
+debugging mode is switched on.
+
+.SH "SEE ALSO"
+.BR cdd-role (8)
+.BR cdd-update-menus (8)
+.BR cdd-user (8)
+
+.SH AUTHOR
+Andreas Tille <tille at debian.org>
+Cosimo Alfarano <kalfa at debian.org>
Added: cdd/tags/cdd/0.4/debian/NEWS.Debian
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/NEWS.Debian Mon Aug 27 19:26:15 2007
@@ -0,0 +1,15 @@
+cdd (0.3.1) unstable; urgency=low
+
+ * In cdd 0.3 user menus where implemented by placing a symlink cdd-menu
+ in the .menu directory of each user who belongs to any Custom
+ Debian Distrinution role. Now a solution was found which does not
+ touch users .menu directory.
+
+ To avoid code for removal of these old cdd-menu links in the users
+ home directories in the future postinst scripts it seems to be the
+ best solution to ask the local administrator do remove these links
+ manually. So please remove all symlinks named
+
+ <userhome>/.menu/cdd-menu
+
+ -- Andreas Tille <tille at debian.org> Thu, 17 May 2004 17:42:38 +0200
Added: cdd/tags/cdd/0.4/debian/cdd-common.README.Debian
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-common.README.Debian Mon Aug 27 19:26:15 2007
@@ -0,0 +1,24 @@
+Custom Debian Distributions common files
+----------------------------------------
+
+This package builds the basic infra structure of all meta packages.
+
+You can add or remove users to the group of users of a Custom Debian
+Distribution. This is used for instance by Debian-Med. It provides
+a med-common package which calls the scripts from cdd-common. It
+can be used by
+
+ dpkg-reconfigure med-common
+
+Users of this group are provided by a user menu which will be build from
+menu files which are provided by each single med-* meta package in
+/etc/med/menu.
+
+If you do not want to install the suggested cdd-doc package you might read
+the online version at
+
+ http://people.debian.org/~tille/debian-med/talks/paper-cdd/debian-cdd.html/
+
+which is frequently updated.
+
+Andreas Tille <tille at debian.org> Wed, 5 Jun 2002 23:27:07 +0200
Added: cdd/tags/cdd/0.4/debian/cdd-common.dirs
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-common.dirs Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+usr/share/lintian/overrides
Added: cdd/tags/cdd/0.4/debian/cdd-common.docs
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-common.docs Mon Aug 27 19:26:15 2007
@@ -0,0 +1,2 @@
+README.CDD
+debian/NEWS.Debian
Added: cdd/tags/cdd/0.4/debian/cdd-common.install
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-common.install Mon Aug 27 19:26:15 2007
@@ -0,0 +1,7 @@
+cdd-user usr/sbin
+cdd-role usr/sbin
+cdd-update-menus usr/sbin
+cdd-update-usermenus usr/sbin
+share usr
+etc/* etc
+cdd-task-lister usr/share/cdd
Added: cdd/tags/cdd/0.4/debian/cdd-common.lintian.overrides
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-common.lintian.overrides Mon Aug 27 19:26:15 2007
@@ -0,0 +1,12 @@
+# The script /usr/lib/menu/cdd-menu is not intended to be called by the
+# cdd-common package but should be called by meta packages according to
+# the Custom Debian Distribution philosphy which is explained in cdd-doc.
+# That's why neither postinst nor postrm will call update-menus and
+# if they would it would just be a useless call because it just exits 0
+# if called by root.
+cdd-common: postinst-does-not-call-updatemenus usr/share/menu/cdd-menu
+cdd-common: postrm-does-not-call-updatemenus usr/share/menu/cdd-menu
+
+# For obvious reasons the script has to be executable which is the
+# intended use for scripts which dynamically create menu entries.
+cdd-common: executable-menu-file usr/share/menu/cdd-menu 0755
Added: cdd/tags/cdd/0.4/debian/cdd-common.manpages
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-common.manpages Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+*.8
Added: cdd/tags/cdd/0.4/debian/cdd-dev.dirs
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-dev.dirs Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+usr/share/lintian/overrides
Added: cdd/tags/cdd/0.4/debian/cdd-dev.docs
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-dev.docs Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+BUGS
Added: cdd/tags/cdd/0.4/debian/cdd-dev.examples
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-dev.examples Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+examples/*
Added: cdd/tags/cdd/0.4/debian/cdd-dev.install
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-dev.install Mon Aug 27 19:26:15 2007
@@ -0,0 +1,3 @@
+sources.list* etc/cdd
+templates usr/share/cdd
+devtools/* usr/share/cdd-dev
Added: cdd/tags/cdd/0.4/debian/cdd-dev.lintian.overrides
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-dev.lintian.overrides Mon Aug 27 19:26:15 2007
@@ -0,0 +1,5 @@
+# The scripts are not intended to be running before the template
+# variable #CDD# is replaced. The '#' sign in the template variable
+# makes the shell syntax checker fail to interpret the syntax correctly
+cdd-dev: shell-script-fails-syntax-check ./usr/share/cdd/templates/common.config
+cdd-dev: shell-script-fails-syntax-check ./usr/share/cdd/templates/common.postinst
Added: cdd/tags/cdd/0.4/debian/cdd-dev.manpages
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/cdd-dev.manpages Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+*.1
Added: cdd/tags/cdd/0.4/debian/changelog
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/changelog Mon Aug 27 19:26:15 2007
@@ -0,0 +1,188 @@
+cdd (0.4) unstable; urgency=low
+
+ * New upstream version that cdd-gen-control in favour of a newly
+ adopted gen-control from Debian-Edu 0.821.
+ (Please see the upstream changelog for all changes)
+ Closes: #436831
+
+ -- Andreas Tille <tille at debian.org> Tue, 21 Aug 2007 20:56:39 +0200
+
+cdd (0.3.11.1) unstable; urgency=low
+
+ * Remove Bashism (source --> .)
+ Closes: #394604 (of med-common, this bug did not really belong to
+ med-common but was caused by the bashism in cdd-common)
+ * Standards-Version: 3.7.2 (no changes necessary)
+ * Build-Depends: debhelper (>= 5)
+
+ -- Andreas Tille <tille at debian.org> Mon, 23 Oct 2006 07:46:58 +0200
+
+cdd (0.3.11) unstable; urgency=low
+
+ * Fix problem with resulting *.dsc files that did not list the
+ files that were actually created in the Binary line
+ * No changes necessary Standards-Version: 3.6.2
+ * Removed: Conflicts: med-common (<= 0.4); which was never released
+ in stable
+ * Because there is no direct use of debconf in the cdd package but
+ debconf is used in the package builded using cdd-dev the ${misc:Depends}
+ variable does not really work. That's why we introduce an explicite
+ Depends: debconf (>= 0.5) | debconf-2.0
+ * Increased dependant menu version from 2.1.12 to 2.1.25
+ * Adapted lintian.overrides to reflect the change in menu
+ (files now in /usr/share/menu instead of /usr/lib/menu)
+
+ -- Andreas Tille <tille at debian.org> Sun, 25 Sep 2005 21:36:29 +0200
+
+cdd (0.3.10) unstable; urgency=low
+
+ * Andreas Tille
+ - Fixed some man pages and examples
+ - Fixed bugs which showed up in Debian-Junior packaging
+ (work around missing final newlines in several places,
+ fix problem with menu items which are not using '"'
+ around the entries)
+ * Guillem Jover
+ - Added Catalan (ca) debconf translation.
+ * Otavio Salvador
+ - cdd-gen-control:
+ o Add -D suport to cdd-gen-control to degrade dependencies to
+ recommends;
+ o Add support for architecture dependent packages;
+ o Add fallback to architecture independent packages so allow
+ backward compatibility;
+ o Add suport to tasksel based tasks;
+ - task-files: added.
+ * Adopted to findutils 4.2.22: specify the -maxdepth option before
+ non-option arguments
+
+ -- Andreas Tille <tille at debian.org> Sat, 21 Aug 2004 09:06:13 +0200
+
+cdd (0.3.9) experimental; urgency=low
+
+ * Otavio Salvador
+ - Move the project to Subversion.
+ * Andreas Tille
+ - Exclude .svn dirs in dist target of debian/rules
+ - Removed Provides/Replaces/Conflicts: med-common-dev
+ because this package vanished completely from the archive now
+ and never reached stable.
+ - Moved cdd-menu from /usr/lib/menu to /usr/share/menu
+ - User menus now are created from installed dependency menus
+ if they are not explicitely overriden by the meta package maintainer
+
+ -- Andreas Tille <tille at debian.org> Thu, 15 Jul 2004 11:13:22 +0200
+
+cdd (0.3.4) unstable; urgency=high
+
+ * Fixed common.postinst template which finally fixed bug #259412.
+ * Removed contrib non-free and non-US from the templates - we want
+ to build packages for main by default, others should be added
+ manually by local maintainers.
+ * Urgency set to high because it *really* fixes a grave bug.
+
+ -- Andreas Tille <tille at debian.org> Thu, 15 Jul 2004 10:51:44 +0200
+
+cdd (0.3.3) unstable; urgency=high
+
+ * Remove broken code from templates/postinst to clean up
+ ${HOME}/.menu directories. This code does more harm than
+ it would help.
+ Closes: #259412
+ * Urgency set to high because it fixes a grave bug.
+
+ -- Andreas Tille <tille at debian.org> Wed, 14 Jul 2004 21:34:55 +0200
+
+cdd (0.3.2) unstable; urgency=low
+
+ * Remove ${HOME}/.menu/cdd-menu in postinst only if ${MENU}/.menu exists
+ * Added /etc/apt/apt.conf.d script to #cdd#-common templates to invoke
+ cdd-update-usermenus after all meta packages of a CDD were installed
+ if requested by a shared debconf variable
+ * Use #CDDNAME# variable in debconf templates of cdd-dev. This variable
+ can be set either in common/conf or it is builded by "Debian-Cdd".
+ * cdd-install-helper handles CDD-common.{config,template}
+ * Usage of get-group-users deprecated, use cdd-tools instead.
+ Moved functionality of get-group-users to unixgroups/cdd-actions.
+ * Enhanced example directory.
+ * Otavio Salvador
+ - Add support to Pre-Depends field in cdd-gen-control script.
+ - Change the default task prefix from 'education-' to 'test-'.
+ - Include code to stop if exist a task with name 'common'.
+ * Andre Luis Lopes
+ - Added Brazilian Portuguese (pt_BR) cdd-dev debconf template
+ translation.
+
+ -- Andreas Tille <tille at debian.org> Wed, 9 Jun 2004 08:20:26 +0200
+
+cdd (0.3.1) unstable; urgency=low
+
+ * Do not change ${HOME}/.menu any more as it was done in 0.3
+ Thanks to Cosimo Alfarano <kalfa at debian.org>
+ * Provide man page for cdd.conf
+ * Added newline at end of examples/common/control
+ Closes: #251889
+
+ -- Andreas Tille <tille at debian.org> Mon, 31 May 2004 22:45:56 +0200
+
+cdd (0.3) unstable; urgency=low
+
+ * Cosimo Alfarano <kalfa at debian.org> did some major rewriting
+ to make the scripts much more flexible (many thanks to Cosimo).
+ * cdd-inst-helper now adds versioned med-common dependency if menu
+ is created by this package.
+ * templates/post{inst,rm} feature user menu creation if variable
+ UPDATEUSERMENU is set to "yes"
+
+ -- Andreas Tille <tille at debian.org> Tue, 13 Apr 2004 21:51:01 +0200
+
+cdd (0.2) unstable; urgency=low
+
+ * Initial release of this package which contains code from several
+ packages but should be of common use now.
+ Closes: #240243
+ * Renamed med-common-dev to cdd-dev because it is intended to work
+ for all Custom Debian Distributions now.
+ * Renamed med-common to cdd-common.
+ (old changelog is available in changelog.med-common.
+ * Adopted gen-control from debian-edu-0.768
+
+ -- Andreas Tille <tille at debian.org> Tue, 23 Mar 2004 18:41:20 +0100
+
+med-common-dev (0.1-5) unstable; urgency=low
+
+ * Standards-Version: 3.6.1.0
+ * Fixed typo in debian/control
+ closes: #221212
+ While I think that also spelling bugs should be reported and fixed
+ I really wonder why people set the priority of those bugs to
+ "normal" instead of "wishlist".
+
+ -- Andreas Tille <tille at debian.org> Tue, 18 Nov 2003 08:58:14 +0100
+
+med-common-dev (0.1-4) unstable; urgency=low
+
+ * really installed the examples to /usr/share/doc/med-common-dev/examples
+
+ -- Andreas Tille <tille at debian.org> Mon, 9 Sep 2002 22:19:53 +0200
+
+med-common-dev (0.1-3) unstable; urgency=low
+
+ * fixes a really stupid bug in med_install_helper
+
+ -- Andreas Tille <tille at debian.org> Wed, 26 Jun 2002 21:06:11 +0200
+
+med-common-dev (0.1-2) unstable; urgency=low
+
+ * med_install_helper script now cares for an /etc/med/menu
+ directory if it was not builded in debian/rules and prints out
+ a warning if no menu is provided
+
+ -- Andreas Tille <tille at debian.org> Wed, 26 Jun 2002 15:59:26 +0200
+
+med-common-dev (0.1-1) unstable; urgency=low
+
+ * Initial release
+ closes: #150938
+
+ -- Andreas Tille <tille at debian.org> Mon, 24 Jun 2002 17:19:38 +0200
Added: cdd/tags/cdd/0.4/debian/changelog.med-common
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/changelog.med-common Mon Aug 27 19:26:15 2007
@@ -0,0 +1,69 @@
+med-common (0.3-2) unstable; urgency=low
+
+ * Removed debian/menu because it was just a test which is not necessary
+ any more.
+ * install-sub-menus ignores missing menus in ${CDD}-common
+ * Added French debconf translation
+ Closes: #236300
+ * Added lex and nonprofit Custom Debian Distributions to the used tools
+
+ -- Andreas Tille <tille at debian.org> Mon, 8 Mar 2004 14:44:44 +0100
+
+med-common (0.3-1) unstable; urgency=low
+
+ * Fixed spelling error in med-common.1
+ * Switched to new debconf format (Thanks to
+ Martin Quinson <Martin.Quinson at tuxfamily.org>
+ for the patch.
+ Closes: #234751
+ * Standards-Version: 3.6.1
+ * debian/compat
+ * Added test whether home directory of project user exists.
+
+ -- Andreas Tille <tille at debian.org> Wed, 25 Feb 2004 22:51:25 +0100
+
+med-common (0.2-1) unstable; urgency=low
+
+ * Because the former get-sub-users script might be used also in Packages
+ which do not belong to certain Debian internal projects (for instance
+ the GnuMed package requires a certain list of users belonging to a
+ certain system group) this script was renamed to get-group-users
+ and now handles any group of the system.
+ I hope to get this kind of functionality to the adduser package.
+ * Added desktop, edu and demudi to possible Debian internal projects
+ which are enabled to maintain Project users by these scripts.
+ * Fixed a slight bug in install-sub-menus
+
+ -- Andreas Tille <tille at debian.org> Fri, 29 Nov 2002 17:15:49 +0100
+
+med-common (0.1-3) unstable; urgency=low
+
+ * Respect /etc/adduser.conf for FIRST_UID
+ closes: #152431
+ * Try to detect the project name automatically from the package name
+ * Substitude occurences of string "med" by ${PROJECT} to make life
+ of other project maintainers more easy.
+ * Moved stuff from debian/configure to debian/postinst
+ closes: #152267
+ This was done according to
+ http://lists.debian.org/debian-devel/2002/debian-devel-200207/msg01648.html
+ at the cost of two lintian warnings about problems in debconf stuff.
+ I think I should stick to this approach until the discussion about
+ new Debian menu system in general and the user maintainance of
+ the subprojects was able to find a sane decision.
+
+ -- Andreas Tille <tille at debian.org> Tue, 30 Jul 2002 11:38:27 +0200
+
+med-common (0.1-2) unstable; urgency=low
+
+ * Fixed a typo in med-common.1
+ * additions to long description.
+
+ -- Andreas Tille <tille at debian.org> Tue, 25 Jun 2002 15:01:38 +0200
+
+med-common (0.1-1) unstable; urgency=low
+
+ * Initial release
+ closes: #150937
+
+ -- Andreas Tille <tille at debian.org> Tue, 25 Jun 2002 10:17:28 +0200
Added: cdd/tags/cdd/0.4/debian/compat
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/compat Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+5
Added: cdd/tags/cdd/0.4/debian/control
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/control Mon Aug 27 19:26:15 2007
@@ -0,0 +1,32 @@
+Source: cdd
+Priority: optional
+Section: devel
+Maintainer: Andreas Tille <tille at debian.org>
+Uploaders: Petter Reinholdtsen <pere at debian.org>, Andreas Tille <tille at debian.org>, Cosimo Alfarano <kalfa at debian.org>
+Build-Depends: debhelper (>= 5)
+Standards-Version: 3.7.2
+
+Package: cdd-dev
+Architecture: all
+Section: devel
+Depends: debconf (>= 0.5) | debconf-2.0, make | build-essential
+Suggests: cdd-doc
+Description: Custom Debian Distributions common files for developing meta packages
+ This package makes life easier when packaging meta packages. Perhaps
+ this will also encourage other people to build meta packages if there are
+ easy to use templates where only the packages, the meta package is depending
+ from, to insert into the right place.
+
+Package: cdd-common
+Architecture: all
+Section: misc
+Depends: adduser, menu (>= 2.1.25), debconf (>= 0.5) | debconf-2.0
+Suggests: cdd-doc
+Description: Custom Debian Distributions common package
+ This package builds the basic infra structure for meta packages.
+ .
+ This package provides some files which are common to meta packages
+ of Common Debian Distributions. It introduces a method to handle
+ system users in a group named according to the name of the
+ Custom Debian Distribution.
+
Added: cdd/tags/cdd/0.4/debian/copyright
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/copyright Mon Aug 27 19:26:15 2007
@@ -0,0 +1,5 @@
+This package is Copyright 2004 by Andreas Tille <tille at debian.org>
+
+This software is licensed under the GPL.
+
+On Debian systems, the GPL can be found at /usr/share/common-licenses/GPL.
Added: cdd/tags/cdd/0.4/debian/rules
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/debian/rules Mon Aug 27 19:26:15 2007
@@ -0,0 +1,65 @@
+#!/usr/bin/make -f
+# debian/rules for cdd-dev
+# This file is public domain software, originally written by Andreas Tille.
+
+# $Id: rules 431 2006-10-23 06:11:32Z tille $
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+build: build-stamp
+build-stamp:
+ dh_testdir
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ dh_install
+
+# Build architecture-independent files here.
+binary-indep: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+ dh_installexamples
+ dh_installman
+ cp -a debian/cdd-common.lintian.overrides debian/cdd-common/usr/share/lintian/overrides/cdd-common
+ cp -a debian/cdd-dev.lintian.overrides debian/cdd-dev/usr/share/lintian/overrides/cdd-dev
+ dh_link
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+# Build architecture-dependent files here.
+binary-arch: build install
+# We have nothing to do by default.
+
+dist:
+ distdir=cdd-`cat VERSION` ; \
+ rm -rf $${distdir} ; \
+ mkdir $${distdir} ; \
+ chmod 777 $${distdir} ; \
+ rsync -a --exclude $${distdir} --exclude CVS --exclude .svn --exclude svn-commit.tmp * $${distdir} ; \
+ ln -s sources.list.unstable $${distdir}/sources.list ; \
+ # ln -s control.stub $${distdir}/examples/debian/control ; \
+ rm -f `find . -name "*~"` ; \
+ GZIP=-9 tar -czf ../cdd_`cat VERSION`.tar.gz $${distdir} ; \
+ rm -rf $${distdir}
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
Added: cdd/tags/cdd/0.4/devtools/Makefile
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/devtools/Makefile Mon Aug 27 19:26:15 2007
@@ -0,0 +1,49 @@
+#!/usr/bin/make -f
+
+# This Makefile is used to build a debian/control file
+# for a Custom Debian Distribution.
+#
+# Copyright (C) Andreas Tille <tille at debian.org>
+# License: GPL
+
+# TARGET_DIST is one of stable, sarge, etch, unstable, or any other available
+# sources.list file available
+TARGET_DIST := $(shell head -1 debian/changelog |awk '{print $$3}'|tr -d ';')
+CDD := $(shell /usr/share/cdd-dev/cdd-get-names cddname)
+GENCONTROL := /usr/share/cdd-dev/cdd-gen-control
+
+# Verify whether config/control exists, if yes, add it to the depends of debian/control
+CONFIGCONTROL := $(shell if [ -d config -a -e config/control ] ; then echo config/control; fi)
+
+all: $(CDD)-tasks.desc debian/control
+
+debian/control: debian/control.stub debian/changelog tasks/* $(CONFIGCONTROL)
+ (cat debian/control.stub; \
+ test -f config/control && cat config/control; \
+ $(GENCONTROL) -s $(TARGET_DIST) -D -c -m -i -A) > $@.new && mv $@.new $@
+
+tasksel: $(CDD)-tasks.desc
+$(CDD)-tasks.desc: tasks/* debian/changelog
+ $(GENCONTROL) -s $(TARGET_DIST) -t -A > $(CDD)-tasks.desc.new && mv $(CDD)-tasks.desc.new $(CDD)-tasks.desc
+
+packages.txt: tasks/*
+ $(GENCONTROL) -s $(TARGET_DIST) -a > packages.txt.$$$$ && mv packages.txt.$$$$ packages.txt
+
+avoidpackages.txt: tasks/* sources.list.$(TARGET_DIST)
+ $(GENCONTROL) -s $(TARGET_DIST) -e > avoidpackages.txt.$$$$ && mv avoidpackages.txt.$$$$ avoidpackages.txt
+
+by_vote:
+ rm -f by_vote
+ wget http://developer.skolelinux.no/popcon/by_vote
+
+packages-sorted.txt: packages.txt by_vote
+ for pkg in `cat packages.txt` ; do \
+ grep " $$pkg " by_vote ; \
+ done | LANG=C sort -r -n -k 4 -k 3 > packages-sorted.txt
+usage: packages-sorted.txt
+
+clean:
+ rm -rf tmp
+ rm -f tasks/*~a
+ rm -rf tasksel
+ rm -f packages.txt by_vote packages-sorted.txt
Added: cdd/tags/cdd/0.4/devtools/cdd-gen-control
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/devtools/cdd-gen-control Mon Aug 27 19:26:15 2007
@@ -0,0 +1,629 @@
+#!/usr/bin/perl
+#
+# Authors:
+# Petter Reinholdtsen <pere at hungry.com>
+# Andreas Tille <tille at debian.org>
+# Date: 2001-08-23
+#
+# # $Id: cdd-gen-control 448 2007-08-11 08:02:48Z tille $
+#
+# Generate the control file used by the CDD task package.
+
+use warnings;
+use strict;
+
+use Getopt::Std;
+use File::Path;
+
+use vars qw(%opts %available %excluded %included @wanted %missing
+ @tasks $debug);
+my @arch = qw(alpha arm i386 ia64 m68k mips mipsel powerpc s390 sparc hppa);
+
+my $debug = 0;
+my $nodepends = 0;
+my $ignoreapterrors = 0;
+
+my %taskinfo = ();
+my $tasksdir = "tasks" ;
+my $taskcontrolfile = "tasks.ctl" ;
+
+my $aptsourcesdefaultlocation = "/etc/cdd";
+my $aptsources = $aptsourcesdefaultlocation . "/sources.list";
+
+my %commondepends ;
+$commondepends{"adduser"} = "0" ;
+$commondepends{"debconf"} = "1.2" ;
+$commondepends{"menu"} = "2.1.14" ;
+
+my $CommonPackage = "" ;
+my $prefix = "test-" ;
+my $cddname = "" ;
+my $cddshortname = "" ;
+my $tasksname = "" ;
+my $hasconfig = 0 ;
+
+sub usage() {
+ print STDERR << "EOF";
+gen-control help screen
+usage: $0 [options]
+
+ -a : print wanted packages
+ -A : ignore APT errors
+ -c : create new debian/control file
+ -d : print debug information
+ -D : lover all Depends: to Recommends:
+ -e : print excluded packages
+ -h : print this help screen and exit
+ -i :
+ -m : print missing packages
+ -s <sourcefile> : specify which sources.list file to use
+ -t : print task descriptions and package list for task
+
+example: $0 -s sources.list.etch -D -c -m -i
+EOF
+}
+
+getopts("cdaemis:tDhA", \%opts);
+
+usage() and exit if $opts{'h'};
+
+my $aptsourcesinput = $opts{'s'} if ($opts{'s'});
+$aptsources = $aptsourcesinput ;
+if ( $aptsources !~ m%^/% && $aptsources !~ /^sources\.list\./ ) {
+ my $cwd ;
+ chomp($cwd = `pwd`) ;
+ $aptsources = $cwd . "/sources.list." . $aptsources ;
+}
+if ( ! -e $aptsources ) {
+ $aptsources = $aptsourcesdefaultlocation . "/sources.list." . $aptsourcesinput;
+ if ( ! -e $aptsources ) {
+ die "Apt sources.list $aptsources not found.\n" ;
+ }
+}
+
+$debug = 1 if ($opts{'d'});
+$nodepends = 1 if ($opts{'D'});
+$ignoreapterrors = 1 if ($opts{'A'});
+
+cdd_init();
+
+# print "$prefix ; $cddshortname ; $cddname ; $tasksname \n";
+
+load_available_packages();
+
+load_tasks();
+
+# An ordered list of CDD tasks, in priority order of which are
+# most needed on the CD. Only leaf tasks need be listed.
+my @priorityorder = get_priorities("priority-high", 1);
+my @medpriorder = get_priorities("priority-med", 0);
+
+# print "high: @priorityorder\nmed: @medpriorder\n" ;
+
+if ($opts{'c'}) {
+ gen_control();
+} elsif ($opts{'e'}) {
+ print_excluded_packages();
+} elsif ($opts{'a'}) {
+ print_all_packages();
+} elsif ($opts{'t'}) {
+ print_task_desc();
+} else {
+ print_available_packages();
+}
+print_missing_packages() if ($opts{'m'});
+
+sub apt {
+ my $op = shift;
+
+ my $aptdir = "../tmp/apt";
+ my @aptopts = ("Dir::Etc::sourcelist=$aptsources",
+ "Dir::State=$aptdir/state",
+ "Dir::Cache=$aptdir/cache",
+ "Dir::State::Status=/dev/null",
+ "Debug::NoLocking=true");
+
+ # Stupid apt-get and apt-cache do not understand the same arguments!
+ # I have to map them to different formats to get both working.
+
+ if ("update" eq $op) {
+ mkpath "$aptdir/state/lists/partial";
+ mkpath "$aptdir/cache/archives/partial";
+
+ my $aptget = "apt-get --assume-yes -o " . join(" -o ", @aptopts);
+
+ print STDERR "aptget: $aptget\n" if $debug;
+ if (system("$aptget update 1>&2")) {
+ print STDERR "error: updating apt package lists failed\n";
+ exit 1 unless $ignoreapterrors;
+ }
+ } elsif ("apt-cache" eq "$op") {
+ my $aptcache = "apt-cache -o=" . join(" -o=", @aptopts);
+ print STDERR "aptcache: $aptcache\n" if $debug;
+ return $aptcache;
+ }
+}
+
+sub sort_uniq {
+ my $seen = shift;
+ my @list;
+ for my $entry (sort @_) {
+ push @list,$entry unless $seen->{$entry};
+ $seen->{$entry} = 1;
+ }
+ return @list;
+}
+
+sub uniq {
+ my $seen = shift;
+ my @list;
+ for my $entry (@_) {
+ push @list,$entry unless $seen->{$entry};
+ $seen->{$entry} = 1;
+ }
+ return @list;
+}
+
+sub gen_control {
+ my $task;
+ for $task (sort keys %taskinfo) {
+ print "Package: $task\n";
+
+ my $header;
+ for $header (qw(Section Architecture Priority)) {
+ print "$header: $taskinfo{$task}{$header}\n"
+ if (defined $taskinfo{$task}{$header});
+ }
+ my %seenlist;
+ if ($nodepends) {
+ # degrade dependencies to recommends
+ if ( $tasksname ) {
+ print "Depends: $tasksname";
+ if ( $tasksname =~ /-tasks$/ ) {
+ print ' (= ${binary:Version})';
+ }
+ if ( $hasconfig ) {
+ print ', ' . $prefix . 'config (= ${binary:Version})';
+ }
+ print "\n" ;
+ }
+ # Use common %seenlist, as it is no use listing
+ # packages both in recommends and suggest
+ my @list;
+ for $header (qw(Depends Recommends)) {
+ push (@list, @{$taskinfo{$task}{$header}})
+ if defined $taskinfo{$task}{$header};
+ }
+ my ($pkglist, $missinglist) = process_pkglist(join(",", at list));
+ my (@recommends, @suggests);
+ push @recommends, @{$pkglist};
+ push @suggests, @{$missinglist};
+# push(@recommends, )
+# if defined $taskinfo{$task}{Depends};
+# push(@recommends, )
+# if defined $taskinfo{$task}{Recommends};
+ push(@suggests, @{$taskinfo{$task}{Suggests}})
+ if defined $taskinfo{$task}{Suggests};
+ print("Recommends: ",
+ join(", ", sort_uniq(\%seenlist, @recommends)),"\n")
+ if defined $taskinfo{$task}{Depends};
+ print("Suggests: ",
+ join(", ", sort_uniq(\%seenlist, @suggests)),"\n")
+ if @suggests;
+ }
+ else {
+ for $header (qw(Depends Recommends Suggests)) {
+ print "$header: ", join(", ", sort_uniq(\%seenlist, @{$taskinfo{$task}{$header}})),"\n"
+ if defined $taskinfo{$task}{$header};
+ }
+ }
+
+ # Description Description-long
+ print "Description: $taskinfo{$task}{Description}\n";
+ print "$taskinfo{$task}{'Description-long'}"; # Already contain newline
+
+ print "\n";
+ }
+}
+
+# List all depends, recommends and suggests packages as task packages.
+# Optionally, list depends as key packages, and the rest as task
+# packages.
+# Enable to list all dependencies as key packages
+my $task_depends_are_keys = 0;
+sub print_task_desc {
+ foreach my $task (sort keys %taskinfo) {
+ next if (exists $taskinfo{$task}{'Leaf'} &&
+ $taskinfo{$task}{'Leaf'} eq 'false');
+
+ print "Task: $task\n";
+ print "Section: $cddname\n";
+ print "Description: $taskinfo{$task}{Description}\n";
+ print "$taskinfo{$task}{'Description-long'}"; # Already contain newline
+ print "Relevance: 10\n";
+ print "Key: \n";
+ print " $task\n";
+ my %seen;
+ $seen{$task} = 1;
+ if ($task_depends_are_keys) {
+ foreach my $package (task_packages($task, "Depends")) {
+ print " $package\n" unless $seen{$package};
+ $seen{$package} = 1;
+ }
+ }
+ print "Packages: list\n";
+ for my $header (qw(Depends Recommends)) {
+ foreach my $package (task_packages($task, $header, 1)) {
+ print " $package\n" unless $seen{$package};
+ $seen{$package} = 1;
+ }
+ }
+
+ print "\n";
+ }
+}
+
+sub select_alternative {
+ my $pkglist = shift;
+ return $pkglist;
+}
+
+sub task_packages {
+ my ($task, $header, $includealldeps) = @_;
+ my @packages = $task;
+ foreach my $package (@{$taskinfo{$task}{$header}}) {
+ if ($package=~/\|/) {
+ # Tasksel doesn't allow boolean or-ing of
+ # dependencies. Just take the first one that is
+ # available.
+ my $ok=0;
+ foreach my $alternative (split(' | ', $package)) {
+ if (! exists $taskinfo{$alternative} &&
+ ! exists $available{$alternative}) {
+ if (! exists $missing{$alternative}) {
+ $missing{$alternative} = 1;
+ }
+ }
+ else {
+ print STDERR "task_packages: choosing $alternative from $package\n" if $debug;
+ $package=$alternative;
+ $ok=1;
+ last;
+ }
+ }
+ if (! $ok) {
+ next;
+ }
+ }
+ if (exists $taskinfo{$package}) {
+ # Add packages from task recursively, since
+ # tasksel does not support dependent tasks of
+ # the type used by CDD
+ if (defined $includealldeps && $includealldeps) {
+ for my $h (qw(Depends Recommends)) {
+
+ push(@packages, $package,
+ task_packages($package, $h, 1));
+ }
+ } else {
+ push(@packages, $package,
+ task_packages($package, $header));
+ }
+ }
+ else {
+ push @packages, $package;
+ }
+ }
+ return @packages;
+}
+
+#
+# Check the APT cache, and find the packages currently available.
+#
+sub load_available_packages
+{
+ apt("update");
+ my $aptcache = apt("apt-cache");
+ open(APT, "$aptcache dump |") || die "Unable to start apt-cache";
+ my $pkg;
+ while (<APT>) {
+ chomp;
+ if (/^Package: (.+)$/) {
+ $pkg = $1;
+ print STDERR "Found pkg '$pkg'\n" if $debug;
+ }
+ if (/^\s+Version:\s+(.+)/) {
+ print STDERR " pkg $pkg = ver $1\n" if $debug;
+# print "C: $pkg $available{$pkg} lt $1\n" if ( exists $available{$pkg});
+ $available{$pkg} = $1 if ( ! exists $available{$pkg} ||
+ $available{$pkg} lt $1 );
+ }
+ }
+}
+
+#
+# Load all tasks
+#
+sub load_tasks {
+ my $taskfile;
+
+ # First document their existence, so they can depend on each other.
+ for $taskfile (<tasks/*>) {
+ next if (($taskfile eq "tasks/CVS") || ($taskfile eq "tasks/.svn"));
+ next if ($taskfile =~ m/~$/);
+
+ my $curpkg = $taskfile;
+ $curpkg =~ s%tasks/%$prefix%;
+ $available{$curpkg} = "n/a";
+
+ push(@tasks, "$taskfile:$curpkg");
+ }
+
+ # Next, load their content.
+ my $foo;
+ for $foo (@tasks) {
+ my ($taskfile, $curpkg) = $foo =~ m/^(.+):(.+)$/;
+ next if ("tasks/CVS" eq $taskfile);
+
+ load_task($taskfile, $curpkg);
+ }
+}
+
+sub process_pkglist {
+ my $pkgstring = shift;
+ my @pkglist = ();
+ my @missinglist = ();
+ my $packages;
+ for $packages (split(/\s*,\s*/, $pkgstring)) {
+ print "E: double comma?: $_\n" if ($packages =~ /^\s*$/ && $debug);
+ my $package;
+ my @alternates=split(/\s*\|\s*/, $packages);
+ my $alternatecount=0;
+ for $package (@alternates) {
+ print STDERR "Loading pkg '$package'\n" if $debug;
+ if ($package =~ /^-(.+)$/) {
+ $excluded{$1} = 1;
+ } elsif ( !exists $available{$package} ) {
+ if ( !exists $missing{$package}) {
+ $missing{$package} = 1;
+ }
+ push(@missinglist, $package);
+ } else {
+ if ($alternatecount == 0) {
+ #push(@pkglist, $package) if (! exists $pkglist[$package]);
+ push(@pkglist, $package);
+ }
+ else {
+ $pkglist[-1].=" | $package";
+ }
+ $alternatecount++;
+
+ if ( ! $included{$package} ) {
+ push(@wanted, $package);
+ $included{$package} = 1;
+ }
+ }
+ }
+ }
+ return (\@pkglist, \@missinglist);
+}
+
+sub load_task {
+ my ($taskfile, $curpkg) = @_;
+ open(TASKFILE, "<$taskfile") || die "Unable to open $taskfile";
+ my $line;
+
+ $taskinfo{$curpkg} = ();
+
+ print STDERR "Loading task $curpkg\n" if $debug;
+
+ while (<TASKFILE>) {
+ chomp;
+ next if (m/^\#/); # Skip comments
+ $line = $_;
+
+ # Append multi-line
+ while ($line =~ /\\$/) {
+ $line =~ s/\s*\\//;
+ $_ = <TASKFILE>;
+ chomp;
+ $line .= $_;
+ }
+ # Remove trailing space
+ $line =~ s/\s+$//;
+
+ $_ = $line;
+ $taskinfo{$curpkg}{'Section'} = $1 if (m/^Section:\s+(.+)$/);
+ $taskinfo{$curpkg}{'Architecture'} = $1 if (m/^Architecture:\s+(.+)$/);
+
+ $taskinfo{$curpkg}{'Priority'} = $1 if (m/^Priority:\s+(.+)$/);
+
+ $taskinfo{$curpkg}{'Leaf'} = $1 if (m/^Leaf:\s+(.+)$/);
+
+ if (m/^Description:\s+(.+)$/) {
+ $taskinfo{$curpkg}{'Description'} = $1;
+ $taskinfo{$curpkg}{'Description-long'} = "";
+ while (<TASKFILE>) {
+ # End of description, pass next line to pattern matching
+ last if (m/^\S+/ || m/^\s*$/);
+
+ $taskinfo{$curpkg}{'Description-long'} .= $_;
+ }
+ }
+
+ next unless defined $_;
+
+ my $header;
+ for $header (qw(Depends Recommends Suggests)) {
+ if (m/^$header:\s+(.+)$/ && $1 !~ /^\s*$/) {
+ $taskinfo{$curpkg}{$header} = ()
+ if (! exists $taskinfo{$curpkg}{$header});
+ my ($pkglist, $missinglist) = process_pkglist($1);
+ push(@{$taskinfo{$curpkg}{$header}}, @{$pkglist});
+
+ # Avoid missing packages in Depends lists, allow them
+ # in the two others. Insert missing depends in
+ # suggests list.
+ if (@{$missinglist}) {
+ if ("Depends" eq $header) {
+ push(@{$taskinfo{$curpkg}{'Suggests'}}, @{$missinglist});
+ } else {
+ push(@{$taskinfo{$curpkg}{$header}}, @{$missinglist});
+ }
+ }
+ }
+ }
+
+ if (/^Avoid:\s+(.+)$/) {
+ my @pkgs = split(/\s*,\s*/, $1);
+ my $packages;
+ for $packages (@pkgs) {
+ my $package;
+ for $package (split(/\s*\|\s*/, $packages)) {
+ $excluded{$package} = 1;
+ }
+ }
+ }
+
+ if (/^Ignore:\s+(.+)$/) {
+ my @pkgs = split(/\s*,\s*/, $1);
+ my $packages;
+ for $packages (@pkgs) {
+ my $package;
+ for $package (split(/\s*\|\s*/, $packages)) {
+ # Remove explanations, ie the paranteses at the end.
+ $package =~ s/\s*\([^\)]*\)\s*$//;
+ $missing{$package} = 1;
+ }
+ }
+ }
+ }
+ close(TASKFILE);
+ unless ( $taskinfo{$curpkg}{'Architecture'} ) { $taskinfo{$curpkg}{'Architecture'} = "all" ; }
+}
+
+sub print_excluded_packages {
+ print join("\n", sort keys %excluded),"\n";
+}
+
+sub print_available_packages {
+ print join("\n", @wanted),"\n";
+}
+
+sub print_all_pkgs_tasks {
+ my ($seenref, $headerlistref, @tasks) = @_;
+
+ my @headers;
+ if ( $headerlistref ) {
+ @headers = @{$headerlistref};
+ } else {
+ @headers = qw(Depends Recommends Suggests)
+ }
+
+ for my $header (@headers) {
+ print STDERR " Processing $header\n" if $debug;
+ my %seentask;
+ for my $task (@tasks) {
+ next if $seentask{$task};
+ $seentask{$task} = 1;
+
+ print "# printing $header in $task\n";
+ print STDERR " Printing $task\n" if $debug;
+
+ # Pick the first available if there are alternatives
+ my @pkgs = uniq($seenref, task_packages($task, $header), $task);
+ print join("\n", @pkgs), "\n" if @pkgs;
+ }
+ }
+}
+
+sub print_all_packages {
+ print STDERR "Printing all packages\n" if $debug;
+# print join("\n", @wanted, keys %missing),"\n";
+
+ print "# First process the high priority tasks\n";
+ my %seenlist;
+ print_all_pkgs_tasks(\%seenlist, [qw(Depends Recommends)], @priorityorder );
+
+ print "# Next, medium priority tasks tasks\n";
+ print_all_pkgs_tasks(\%seenlist, [qw(Depends Recommends)], @medpriorder );
+
+ print "# Next process all the others, in alphabetic order\n";
+ print_all_pkgs_tasks(\%seenlist, undef, sort keys %taskinfo);
+
+ print "# And last, the alternatives we dropped above\n";
+ print join("\n", uniq(\%seenlist, @wanted, sort keys %missing)),"\n";
+}
+
+sub print_missing_packages {
+ if (%missing) {
+ print STDERR "Missing or avoided packages:\n";
+ my $package;
+ for $package (sort keys %missing) {
+ if (exists $available{$package}) {
+ print STDERR " $package (v$available{$package} available)\n";
+ } else {
+ print STDERR " $package\n";
+ }
+ }
+ exit 1 unless $opts{'i'};
+ }
+}
+
+## Additions by Andreas Tille
+
+sub get_priorities {
+ my ($prio, $default) = @_;
+ my @list = () ;
+
+ # if there is no taskcontrolfile every task has the same priority
+ if ( ! stat($taskcontrolfile) ) {
+ if ( ! $default ) { return (); }
+ print STDERR "No task control file found - setting all tasks priority high.\n" if $debug;
+ opendir(DIR, $tasksdir) || die("No tasks directory found.");
+ @list = grep { !/^\./ } readdir(DIR);
+ closedir DIR;
+ return @list;
+ }
+ # read taskcontrolfile and find priorities
+ print STDERR "Reading task control file.\n" if $debug;
+ open(PRIO,$taskcontrolfile) || die("Unable to read task control file.");
+ while (<PRIO>) {
+ chomp ;
+ if ( $_=~/^$prio\s*:\s*([-\w]+)/) {
+ push @list,$1;
+ }
+ }
+ close PRIO;
+
+ return @list;
+}
+
+sub cdd_init {
+ # initialise cdd name and other basic stuff
+ unless ( -d "debian" ) {
+ mkdir("debian") || die "mkdir debian: $!";
+ }
+
+ unless ( open(STUB, "debian/control.stub" ) ) {
+ print STDERR "No template debian/control.stub. Use test prefix.\n" ;
+ } else {
+ while ( <STUB> ) {
+ if ( /^Package: (\w+)/) {
+ $prefix = $1."-";
+ $cddname = "debian-".$cddshortname ;
+ if ( /^Package:\s.*-tasks$/) {
+ $tasksname = $prefix . "tasks";
+ }
+ last ;
+ }
+ if ( /^Source:\s+debian-(.+)$/) {
+ $cddshortname = $1 ;
+ }
+ }
+ close(STUB) ;
+ }
+ if ( -d "config" && -e "config/control" ) {
+ $hasconfig = 1;
+ }
+}
Added: cdd/tags/cdd/0.4/devtools/cdd-get-names
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/devtools/cdd-get-names Mon Aug 27 19:26:15 2007
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# Read CDD specific names from debian/control.stub
+#
+# Copyright (C) Andreas Tille <tille at debian.org>
+# License: GPL
+
+# Return codes according to
+# http://epydoc.sourceforge.net/stdlib/posix-module.html
+
+CONTROLFILE=debian/control.stub
+
+if [ ! -e "$CONTROLFILE" ] ; then
+ echo "Missing control file $CONTROLFILE"
+ exit 72 # EX_OSFILE
+fi
+
+if [ "$#" -ne 1 ] ; then
+ echo "Missing argument"
+ echo "Usage: $0 cddname|cddshortname|metapackageprefix"
+ exit 64 # EX_USAGE
+fi
+
+case "$1" in
+ cddname)
+ grep '^Source:[[:space:]]*debian-' "$CONTROLFILE" | \
+ sed 's/^Source:[[:space:]]*//'
+ exit 0
+ ;;
+ cddshortname)
+ grep '^Source:[[:space:]]*debian-' "$CONTROLFILE" | \
+ sed 's/^Source:[[:space:]]*debian-//'
+ exit 0
+ ;;
+ metapackageprefix)
+ grep '^Package:[[:space:]]*' "$CONTROLFILE" | \
+ sed 's/^Package:[[:space:]]*\([[:alnum:]]\+\)-*.*/\1/'
+ exit 0
+ ;;
+ *)
+ echo "Unknown argument $1"
+ echo "Usage: $0 cddname|cddshortname|metapackageprefix"
+ exit 64 # EX_USAGE
+ ;;
+esac
Added: cdd/tags/cdd/0.4/devtools/cdd-install-helper
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/devtools/cdd-install-helper Mon Aug 27 19:26:15 2007
@@ -0,0 +1,119 @@
+#!/bin/sh
+
+cdd=`/usr/share/cdd-dev/cdd-get-names metapackageprefix`
+menudir=usr/share/cdd/"$cdd"/menu
+
+SubstCDDName () {
+ sed -e "s/#CDD#/${cdd}/g" \
+ -e "s?\([/ ]\)\(config.templates:*\)?\1${cdd}-\2?" \
+ -e "s/#CDDNAME#/${CDDNAME}/g" /usr/share/cdd/templates/$1 >> \
+ debian/$2
+}
+
+# Make dependency from menu containing packages to the right #CDD#-config version
+version="(>= `dpkg-parsechangelog | grep "^Version:" | sed -e "s/^Version:[[:space:]]\+\([\.0-9]*\)[[:space:]]*/\1/"`)"
+
+# General Task registry, menu registration and post{inst,rm} preparation
+for pkg in `ls tasks | grep -v "^[a-z]*:$*" | grep -v "^$" | sort | uniq` ; do
+ # registration
+ if ! grep -q -w "^Task:" tasks/$pkg ; then
+ echo "Control file template tasks/$pkg does not contain 'Task:' field."
+ exit -1
+ fi
+ task=`grep -w "^Task:" tasks/"$pkg" | sed "s/^Task:[[:space:]]*\([^[:space:]]*\)/\1/"`
+ mkdir -p debian/"$cdd"-"$pkg"/usr/share/cdd/tasks/"$cdd"/
+ echo "$task" > debian/"$cdd"-"$pkg"/usr/share/cdd/tasks/"$cdd"/"$pkg"
+
+ # if we provide an extra menu which overrides some menus provided by
+ # the maintainers of the dependand packages move them now to the right
+ # directory
+ [ -d menu ] && [ -d menu/"$pkg" ] && \
+ if [ `find menu/"$pkg" -maxdepth 1 -name \*.menu | wc -l` -gt 0 ] ; then
+ mkdir -p debian/"$cdd"-"$pkg"/"$menudir"
+ for dep in `find menu/"$pkg" -maxdepth 1 -name \*.menu` ; do
+ cp -a "$dep" debian/"$cdd"-"$pkg"/"$menudir"/`basename "$dep" .menu`
+ done
+ fi
+
+ # Provide a README.Debian in any case
+ mkdir -p debian/"$cdd"-"$pkg"/usr/share/doc/"$cdd"-"$pkg"
+ [ ! -s docs/"$pkg"/README.Debian ] && cp -a /usr/share/cdd/templates/README.Debian debian/"$cdd"-"$pkg"/usr/share/doc/"$cdd"-"$pkg"
+ # Check for documentation of packages (*.txt or *.html) which should be viewed in
+ # case of missing GUI
+ [ -d menu ] && [ -d menu/"$pkg" ] && \
+ if [ `find menu/"$pkg" -maxdepth 1 -name \*.txt -o -name \*.html | wc -l` -gt 0 ] ; then
+ for dep in `find menu/"$pkg" -maxdepth 1 -name \*.txt -o -name \*.html` ; do
+ # Formerly here was checked, whether this package is really listed in the
+ # dependencies, with more clever menu handling it is enough to verify
+ # whether it is mentioned at all in the package relations and the menu
+ # system cares about whether a sugested package is installed or not
+ depmenu=`basename ${dep} .txt`
+ if [ "$depmenu" = `basename ${dep}` ] ; then depmenu=`basename ${dep} .html` ; fi
+ if ! grep -A 5 "Package: $cdd-$pkg" debian/control | grep -q -w "$depmenu" ; then
+ ## echo "Package ${depmenu} seems not to be in dependencies"
+ continue
+ fi
+ cp -a "$dep" debian/"$cdd"-"$pkg"/usr/share/doc/"$cdd"-"$pkg"
+ done
+ fi
+
+ # post{inst/rm} template are appended if some extra scripts are provided or just created
+ # an extra postinst has to be saved (*.stub) and restored by the clean target in
+ # debian/rules
+ [ -s debian/"$cdd"-"$pkg".postinst.stub ] && cp debian/"$cdd"-"$pkg".postinst.stub debian/"$cdd"-"$pkg".postinst
+ sed -e "s/#CDD#/${cdd}/g" \
+ -e "s/#PKG#/${cdd}-${pkg}/g" \
+ /usr/share/cdd/templates/postinst >> debian/"$cdd"-"$pkg".postinst
+ sed -e "s/#CDD#/${cdd}/g" \
+ -e "s/#PKG#/${cdd}-${pkg}/g" \
+ /usr/share/cdd/templates/postrm >> debian/"$cdd"-"$pkg".postrm
+done
+
+# if config/common exists use this as general helper script
+if [ -s config/common ] ; then
+ mkdir -p debian/"$cdd"-config/usr/bin
+ mkdir -p debian/"$cdd"-config/usr/share/man/man1
+ cp -a config/common debian/"$cdd"-config/usr/bin/"$cdd"-common
+ cp -a config/common.1 debian/"$cdd"-config/usr/share/man/man1/"$cdd"-common.1
+
+ # install link to package helper script
+ for pkg in `ls tasks` ; do
+ mkdir -p debian/"$cdd"-"$pkg"/usr/bin
+ mkdir -p debian/"$cdd"-"$pkg"/usr/share/man/man1
+ ln -s "$cdd"-common debian/"$cdd"-"$pkg"/usr/bin/"$cdd"-"$pkg"
+ ln -s "$cdd"-common.1.gz debian/"$cdd"-"$pkg"/usr/share/man/man1/"$cdd"-"$pkg".1.gz
+ done
+fi
+
+# common/conf should really exist for the CDD registry in /etc/cdd
+# currently there is no error message issued if it is missing but
+# this might be reasonable
+if [ -s config/conf ] ; then
+ # Get name of Custom Debian Distribution
+ . config/conf
+ # Config file should set CDDNAME, but if not try to build a useful one
+ if [ _"$CDDNAME" = _"" ] ; then
+ CDDNAME=Debian-`echo ${cdd} | perl -ne 'print "\u\L$_";'`
+ fi
+ # Move templates for user configuration script
+ for comm in `ls /usr/share/cdd/templates/{config.*,apt.conf}` ; do
+ commname=`basename $comm`
+ SubstCDDName ${commname} ${cdd}-${commname}
+ done
+ # rename apt.conf.d file
+ [ -s debian/${cdd}-apt.conf ] && mv debian/${cdd}-apt.conf debian/90${cdd}-config
+ if [ -d debian/po.stub ] ; then
+ cp -a debian/po.stub debian/po
+ else
+ mkdir -p debian/po
+ fi
+ for po in `ls /usr/share/cdd/templates/po/*` ; do
+ poname=`basename $po`
+ SubstCDDName po/${poname} po/${poname}
+ done
+ [ -d debian/po ] && debconf-updatepo
+
+ # Add common config file for ${cdd}
+ mkdir -p debian/"$cdd"-config/etc/cdd/"$cdd"
+ cp -a config/conf debian/"$cdd"-config/etc/cdd/"$cdd"/"$cdd".conf
+fi
Added: cdd/tags/cdd/0.4/devtools/rules
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/devtools/rules Mon Aug 27 19:26:15 2007
@@ -0,0 +1,84 @@
+#!/usr/bin/make -f
+
+# This is a debian/rules file which builds meta packages
+# for a Custom Debian Distribution.
+#
+# Copyright (C) Andreas Tille <tille at debian.org>
+# License: GPL
+
+CDDNAME := $(shell /usr/share/cdd-dev/cdd-get-names cddname)
+PREFIX := $(shell /usr/share/cdd-dev/cdd-get-names metapackageprefix)
+CDDMKFILE := /usr/share/cdd-dev/Makefile
+CDD_INSTALL_HELPER := /usr/share/cdd-dev/cdd-install-helper
+
+all:
+ echo $(PREFIX), $(CDDNAME)
+
+INSTALLREADME := $(shell if test -e README ; then echo "-A README"; fi)
+
+debian/control:
+ $(MAKE) -f $(CDDMKFILE) debian/control
+
+build:
+ $(MAKE) -f $(CDDMKFILE) all
+ dh_testdir
+
+clean: debian/control
+ dh_testdir
+ dh_testroot
+ $(MAKE) -f $(CDDMKFILE) clean
+
+ # Clear apt-get cache
+ rm -rf tmp
+ # Remove backup files from source tarball
+ rm -f tasks/*~
+ # Remove auto generated post{inst,rm} scripts
+ rm -f debian/$(PREFIX)-*.post{inst,rm}
+ # remove tasksel directory
+ ## [ -d tasksel ] && rm -f tasksel/$(PREFIX)-* && rmdir tasksel
+ # remove auto generated files for config package
+ rm -f debian/$(PREFIX)-config.{templates,config,install,links} debian/90$(PREFIX)-config
+ # remove auto generated debconf template translations
+ rm -rf debian/po
+ # Remove auto generated tasksel descriptions:
+ rm -f $(CDDNAME)-tasks.desc
+
+ dh_clean build-stamp
+
+install: debian/control build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ dh_install $(CDDNAME)-tasks.desc usr/share/tasksel
+
+# Build architecture-dependent files here.
+binary-arch: build install
+# We have nothing to do by default.
+
+# Build architecture-independent files here.
+binary-indep: build install
+ dh_testdir
+ dh_testroot
+ dh_installdocs $(INSTALLREADME)
+ dh_installexamples
+ dh_installmenu
+ dh_installcron
+ dh_installman
+ dh_installinfo
+ $(CDD_INSTALL_HELPER)
+ dh_install
+ dh_installdebconf
+ dh_installchangelogs
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure debian/control
Added: cdd/tags/cdd/0.4/etc/cdd/cdd.conf
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/etc/cdd/cdd.conf Mon Aug 27 19:26:15 2007
@@ -0,0 +1,18 @@
+
+# unset it if no DBBACKEND is wanted (no use of Roles)
+DBBACKEND=unixgroups
+
+SHAREDIR=${SHAREDIR:-/usr/share/cdd}
+
+# unset (NOT set it to false!) for disable dryrun
+#DRYRUN=true
+# This would print debugging information
+#DRYRUN="echo DRYRUN: "
+#DEBUG=1
+
+# Utility functions, backend indep
+. ${SHAREDIR}/cdd-utils
+. ${SHAREDIR}/cdd-actions
+
+# actual action performed by choosen backend
+. ${SHAREDIR}/${DBBACKEND}/cdd-actions
Added: cdd/tags/cdd/0.4/examples/README
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/README Mon Aug 27 19:26:15 2007
@@ -0,0 +1,5 @@
+This is an example directory layout for building meta packages for a
+Custom Debian Distribution with the name Debian-_CDD_. So search for the
+string _CDD_ and replacing it with a real name would provide a basic
+skeleton to work with.
+
Added: cdd/tags/cdd/0.4/examples/config/README
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/config/README Mon Aug 27 19:26:15 2007
@@ -0,0 +1,2 @@
+If this directory exists a _CDD_-common package is created.
+See for instance Debian-Med packages.
Added: cdd/tags/cdd/0.4/examples/config/common
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/config/common Mon Aug 27 19:26:15 2007
@@ -0,0 +1,6 @@
+#!/bin/sh
+## Prints some info about that package and lets auto-apt work
+dpkg --status `basename $0` | \
+ grep -v ^Priority | \
+ grep -v ^Section | \
+ grep -v ^Installed-Size
Added: cdd/tags/cdd/0.4/examples/config/common.1
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/config/common.1 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,19 @@
+.TH _CDD_-common 1 "May 24, 2002" "Debian-_CDD_"
+.SH NAME
+.B _CDD_-common
+.B _CDD_-<meta_package_name>
+\- package information and auto-apt helper
+
+.SH SYNOPSIS
+.B _CDD_-common
+.B _CDD_-<meta_package_name>
+
+.SH DESCRIPTION
+Print just a simple information page about every _CDD_-* package
+of the Debian-_CDD_ Custom Debian Distribution. Each metapackage has a
+.I /usr/bin/_CDD_-<meta_package_name>
+file which should print some usefull informations and could be serve
+as auto-apt helper.
+
+.SH AUTHOR
+Andreas Tille <tille at debian.org>.
Added: cdd/tags/cdd/0.4/examples/config/conf
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/config/conf Mon Aug 27 19:26:15 2007
@@ -0,0 +1,6 @@
+## This is a configuration file for Debian-med Custom Debian Distribution
+## It is read after /etc/cdd/cdd.conf and can override or add variables
+
+## Some CDDs do not build their name generic like Debian-#CDD# so
+## we need the correct name here
+CDDNAME=Debian-_CDD_
Added: cdd/tags/cdd/0.4/examples/config/control
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/config/control Mon Aug 27 19:26:15 2007
@@ -0,0 +1,7 @@
+Package: _CDD_-config
+Architecture: all
+Depends: adduser, debconf (>= 0.5), menu
+Description: Debian-_CDD_ Project config package
+ This package builds the basic infra structure of all meta packages
+ for the Debian-_CDD_ Custom Debian Distribution.
+
Added: cdd/tags/cdd/0.4/examples/debian/README
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/debian/README Mon Aug 27 19:26:15 2007
@@ -0,0 +1,3 @@
+You always need this directory to build meta packages.
+Just change control.stub and replace the variables _CDD_ and
+_MAINTAINER_ to the apropriate strings.
Added: cdd/tags/cdd/0.4/examples/debian/cdd-task1.install
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/debian/cdd-task1.install Mon Aug 27 19:26:15 2007
@@ -0,0 +1,3 @@
+### this file is optional and only needed if the install directory is needed
+install/task1/extra-script-which-is-needed-in-task1 usr/bin
+
Added: cdd/tags/cdd/0.4/examples/debian/cdd-task1.manpages
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/debian/cdd-task1.manpages Mon Aug 27 19:26:15 2007
@@ -0,0 +1,3 @@
+### this file is optional and only needed if the install directory is needed
+install/task1/extra-script-which-is-needed-in-task1.1
+
Added: cdd/tags/cdd/0.4/examples/debian/compat
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/debian/compat Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+5
Added: cdd/tags/cdd/0.4/examples/debian/control.stub
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/debian/control.stub Mon Aug 27 19:26:15 2007
@@ -0,0 +1,10 @@
+Source: debian-_CDD_
+Section: misc
+Priority: extra
+Maintainer: _MAINTAINER_ <_maintainer_ at debian.org>
+Uploaders: _OPTIONAL-FURTHER-MAINTAINER_ <_optional-further-maintainer_ at debian.org>
+Build-Depends-Indep: debhelper (>= 5), cdd-dev
+Standards-Version: 3.7.2
+
+Package: _CDD_
+Architecture: all
Added: cdd/tags/cdd/0.4/examples/debian/rules
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/debian/rules Mon Aug 27 19:26:15 2007
@@ -0,0 +1,3 @@
+#!/usr/bin/make -f
+
+include /usr/share/cdd-dev/rules
Added: cdd/tags/cdd/0.4/examples/install/README
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/install/README Mon Aug 27 19:26:15 2007
@@ -0,0 +1,9 @@
+If some extra files like scripts of manpages are needed in the meta packages
+the should be placed into apropriate subdirectories of this directory.
+While there is no certain procedure in the cdd-dev tools to handle files
+in this directory it might be a good idea to settle down with some
+default place for those extra files. To move them right into place
+the files debian/<pkg>.install, debian/<pkg>.manpages etc. should
+be used.
+
+See for instance Debian-Med packages.
Added: cdd/tags/cdd/0.4/examples/install/task1/extra-script-which-is-needed-in-task1
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/install/task1/extra-script-which-is-needed-in-task1 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo "Do something useful for task1."
Added: cdd/tags/cdd/0.4/examples/install/task1/extra-script-which-is-needed-in-task1.1
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/install/task1/extra-script-which-is-needed-in-task1.1 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,15 @@
+.TH extra-script-which-is-needed-in-task1 1 "<date>" "#CDD#"
+.SH NAME
+.B extra-script-which-is-needed-in-task1
+\- some useful script for task1
+
+.SH SYNOPSIS
+.B extra-script-which-is-needed-in-task1
+
+.SH DESCRIPTION
+The task makes no sense without this script - or at least this script
+provides extra functionality which is not in any of the single
+dependencies.
+
+.SH AUTHOR
+Meta Package Autor <mpa at debian.org>.
Added: cdd/tags/cdd/0.4/examples/menu/README
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/menu/README Mon Aug 27 19:26:15 2007
@@ -0,0 +1,24 @@
+If this directory exists, menu entries for the single meta packages can
+be provided here. The files should have the same name as the files in the
+tasks directory and ideally each single task should have its own menu.
+
+See for instance Debian-Med packages.
+
+In general a meta package should provide a menu for every dependent package.
+This menu entry should either point to a package executable (perhaps with
+some special hints assigned) or to a pager call which proveides some extra
+information how the special package can be used. For instance this can be
+done via text files /usr/share/doc/_CDD_task1/deppkg1.txt (see Debian-Med).
+
+The idea is to provide a special _CDD_ menu with the relevant parts for
+the users of the _CDD_.
+
+At install time the existing dependencies are checked for their
+menu entries. These are tekan over into the user menu. If the
+meta package maintainer wants to override this entry he is able
+to provide menu/<task>/<dep>.menu files. If there is no reasonable
+menu entry for a package extra documentation can be provided which
+can be viewed via menu entries. This can either be given as plain
+text files menu/<task>/<dep>.txt or HTML files menu/<task>/<dep>.html.
+The created menu entry calls sensible-pager or sensible-browser,
+respectively.
Added: cdd/tags/cdd/0.4/examples/menu/task1/README
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/menu/task1/README Mon Aug 27 19:26:15 2007
@@ -0,0 +1,16 @@
+Here you can place overrides for the package maintainer menu entries
+in normal menu syntax as files <dep>.menu .
+
+Sometimes it is not possible to provide a useful menu entry for a
+package and thus we would fail to create a menu entry for a dependency
+inside a meta package. This sucks in term of user support and thus
+it is strongly suggested to provide some information about each
+dependant package which has no reasonable menu entry.
+
+This can easily done by creating a text file with the name of the
+dependency, i.e. dep2.txt. Alternatively you can provide HTML
+formated description as dep3.html.
+
+These files should provide all information which is necessary to use
+this package, like man pages online documentation, usage examples,
+upstream URL, etc.
Added: cdd/tags/cdd/0.4/examples/menu/task1/dep1.menu
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/menu/task1/dep1.menu Mon Aug 27 19:26:15 2007
@@ -0,0 +1,5 @@
+?package(dep1): needs = "X11" \
+ section = "_CDD_/Task1" \
+ title = "DepPkg1" \
+ command = "/usr/bin/deppkg1" \
+ hints = "Use of DepPkg1"
Added: cdd/tags/cdd/0.4/examples/menu/task1/dep2.txt
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/menu/task1/dep2.txt Mon Aug 27 19:26:15 2007
@@ -0,0 +1,18 @@
+dep2: Short description of package dep2
+
+Some information about dep2 from the Debian-_CDD_ project.
+
+ long description of dep2
+
+ More infromation about the dep2 package can be obtained from the following
+ manpages:
+
+ dep2_a.1 dep2_b.1 ...
+
+ You can use this package in the following way:
+
+ ...
+
+ More information about dep2 can be obtained from the home page at
+
+ http://www.dep2.org/
Added: cdd/tags/cdd/0.4/examples/menu/task1/dep3.html
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/menu/task1/dep3.html Mon Aug 27 19:26:15 2007
@@ -0,0 +1,15 @@
+<html>
+<head>
+<title>Description of dep3</title>
+<meta name="author" content="<meta package author>" />
+</head>
+<body>
+<h2>dep3: Short description of package dep3</h2>
+<p>
+ long description of dep3
+</p>
+
+<h4>For more detailed information see:</h4>
+
+</body>
+</html>
Added: cdd/tags/cdd/0.4/examples/tasks/README
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/tasks/README Mon Aug 27 19:26:15 2007
@@ -0,0 +1,4 @@
+This directory is mandatory. Each file had to follow a certain syntax
+to build a valid control file entry for the meta package to build.
+
+For an extensive and working example see Debian-Med packages >= 0.8.9 .
Added: cdd/tags/cdd/0.4/examples/tasks/task1
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/examples/tasks/task1 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,17 @@
+Task: task1
+Description: Debian-_CDD_ task1 packages
+ This meta package will install Debian packages for use in
+ task1 of Debian-_CDD_.
+
+Depends: dep-pkg1, dep-pkg2, ...
+Suggests: sug-pkg1, ...
+
+Depends: dep-pkg42
+Why: You might provide some reasons here ...
+Responsible: Somebody who cares
+NeedConfig: no / yes via debconf
+
+Depends: _CDD_-common
+Why: Reason for dependency of the _CDD_common package
+Responsible: _CDD_Maintainer
+NeedConfig: yes via debconf
Added: cdd/tags/cdd/0.4/mans_old/cdd-gen-control.1
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/mans_old/cdd-gen-control.1 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,61 @@
+.TH cdd-gen-control 1 "2004/03/23" "" "Debian Internal Projects"
+.SH NAME
+.B cdd-gen-control
+\- generate debian/control file from tasks directory
+
+.SH SYNOPSIS
+.B cdd-gen-control
+[
+.B options
+]
+[
+.B project
+]
+
+.SH DESCRIPTION
+The script
+.B cdd-gen-control
+parses the
+.I tasks
+directory for text files which have a similar syntax to
+.I debian/control
+files. Each text file is used as template for a
+.I <cdd>-<textfile_name>
+meta package and has to define the dependencies. In addition
+there is a further tag named
+.B Task
+which is mandatory and is used later as registry of all tasks in
+.I /usr/share/cdd/tasks/<cdd> .
+
+.SH OPTIONS
+.TP
+.B -c
+Create debian/control file using template debian/control.stub.
+.TP
+.B -d
+Turn on debugging mode.
+.TP
+.B -a
+Print all available packages.
+.TP
+.B -e
+Print excluded packages.
+.TP
+.B -m
+Print missing packages.
+.TP
+.B -s <dist>
+Without the
+.B -s
+option /etc/cdd/sources.list is used to verify which packages are available.
+You can specify one of
+.I stable
+,
+.I testing
+or
+.I unstable
+as argument or a complete path to a valid sources.list file.
+
+.SH AUTHORS
+Petter Reinholdtsen <pere at hungry.com>
+Andreas Tille <tille at debian.org>
Added: cdd/tags/cdd/0.4/mans_old/cdd-install-helper.1
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/mans_old/cdd-install-helper.1 Mon Aug 27 19:26:15 2007
@@ -0,0 +1,108 @@
+.TH "cdd-install-helper" "1" "March 23, 2004" "CDD - Development" ""
+.SH "NAME"
+.B cdd\-install\-helper
+\- install menu and link to helper bin and according manpage
+
+.SH "SYNOPSIS"
+.B cdd\-install\-helper
+
+.SH "DESCRIPTION"
+This script can be used in debian/rules file to install the user menu
+files to /etc/cdd/\fI<cdd>\fR/menu/\fI<package>\fR, a link for the
+helper script of every \fI<cdd>\fR\-* package and the link to the manpage
+for this script.
+.TP
+.I menu
+If a directory
+.I menu
+exists in the building directory it checks subdirectories
+.I menu/<task>
+(named like meta package without the "cdd\-" name
+prefix). This subdirectory might contain three types of files:
+.IP
+.I <dep>.menu
+These files should be valid menu files as they are provided for Debian
+packages in debian/menu. They will be copied to
+.I usr/share/cdd/<cdd>/menu/<dep>
+and can be used to override the menu items which are provided by the
+maintainer of the package
+.I <dep>
+in case the meta package author likes to change the normal menu item
+for the user menus.
+.IP
+.I <dep>.html
+These files might contain documentation of the dependency in HTML
+format if it makes no sense to provide a menu entry to actually call a
+program in the package.
+.IP
+.I <dep>.txt
+These files might contain documentation of the dependency in text
+format if it makes no sense to provide a menu entry to actually call a
+program in the package.
+
+The rationale of the latter both types is to enable a menu entry in
+the user menus for
+.B every
+call a certain program via the menu. These files should provide
+reasonable information how to use this program in text form. This is
+better than having no menu entry at all because the target user might
+use the menu as the first interface of information of his system.
+.TP
+.I config
+If there exists a file
+.I config/control
+and has a size greater than 0 a <cdd>\-config package is builded. The
+file
+.I config/control
+was just used to build the appropriate
+.I debian/control
+file using the
+.B cdd\-gen\-control(1)
+tool.
+.TP
+.I conf
+If there exists a file
+.I config/conf
+and has a size greater than 0 this is used as special configuration file
+.I /etc/cdd/<cdd>/<cdd>.conf
+which can override variables from the general configuration file
+.I /etc/cdd/cdd.conf
+or add further variables. Because it is sourced from shell it has to
+follow shell syntax.
+.TP
+.I install
+Here the extra files which might be needed in a meta package (like scripts,
+manpages, etc.) should be copied in a directory named
+.I install/<pkg_without_cdd\-prefix>/
+and the files should be moved into place by using
+.I debian/<pkg>.install
+or
+.I debian/<pkg>.manpages
+etc.
+
+Moreover it is possible to provide extra
+.I debian/<pkg>.config
+and
+.I debian/<pkg>.templates
+files for each meta package if additional
+.I debconf
+configuration is needed. For the translations of the
+.I debconf
+questions some extra caution is required. Because
+.B cdd\-install\-helper
+uses general templates to provide translations for some general questions
+the directory
+.I debian/po
+is overriden in the package building process. To enable translations
+of the extra templates these should be stored in a directory named
+.I debian/po.stub
+and the contents of the files in this directory is appended to the
+apropriate files.
+
+.SH "EXAMPLES"
+For the usage of this tool just have a look at the
+.B debian\-med
+source package.
+
+.SH "AUTHOR"
+Andreas Tille <tille at debian.org>.
Added: cdd/tags/cdd/0.4/share/cdd/cdd-actions
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/share/cdd/cdd-actions Mon Aug 27 19:26:15 2007
@@ -0,0 +1,53 @@
+# $Id: cdd-actions 431 2006-10-23 06:11:32Z tille $
+#
+# Backend independant functions for cdd package
+#
+# For error codes check in /usr/include/sysexits.h
+
+# CHECK Functions
+
+# checks if CDD $1 exists as a CDD
+checkCDD() {
+ RET=0
+ CDD=$1
+ if [ $# -ne 1 ]; then
+ RET=64 # EX_USAGE
+ elif ! [ -d ${CONFBASE}/`toLower ${CDD}` ]; then
+ RET=67 # EX_NOUSER
+ fi
+ return ${RET}
+}
+
+# GET Functions
+
+# echos a blank-space separated list of CDDs registered into CDD subsystem
+getCDDList() {
+ # print out dir in CONFBASE and stript last space added by printf
+ find ${CONFBASE} -mindepth 1 -maxdepth 1 -not -name CVS -type d -printf "%f " | sed s/.$/\\n/g
+}
+
+# echoes a list of DBBACKEND for CDD present in the current system
+getBackendList() {
+ find ${SHAREDIR} -mindepth 1 -maxdepth 1 \
+ -not -name CVS -and -not -name menu \
+ -type d -printf "%f " | sed s/.$/\\n/g
+}
+
+# is user registered in at least one CDD?
+# it's a kludgy way :(, run a subshell and iterate on every registered CDD
+# checking if a user covers a Role in that CDD.
+isUserRegistered() {
+ RET=1 # return false
+ CDDUSER=$1
+
+ for CDD in `getCDDList`; do
+ # Run a subshell as a environment sandbox
+ ( test -f ${CONFBASE}/${CDD}/${CDD}.conf &&
+ . ${CONFBASE}/${CDD}/${CDD}.conf
+ . ${SHAREDIR}/${DBBACKEND}/cdd-actions
+ checkUserInCDD ${CDD} ${CDDUSER} && exit 0
+ ) && RET=0 && break
+ done
+ return ${RET}
+}
+
Added: cdd/tags/cdd/0.4/share/cdd/cdd-update-menus
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/share/cdd/cdd-update-menus Mon Aug 27 19:26:15 2007
@@ -0,0 +1,26 @@
+# $Id: cdd-update-menus 431 2006-10-23 06:11:32Z tille $
+
+# check if I am a specific user
+amI() {
+ RET=0
+ test `whoami` != "$1" && RET=1
+ return ${RET}
+}
+
+# The following scripts have historical reasons and are currently not
+# used any more. The complete text might be found in version 0.3 of
+# the scripts.
+# updates user's menu for user $1, indipendently from any CDD
+updateUser() {
+ RET=0
+ SYSUSER=$1
+ return ${RET}
+}
+
+# updates menu scripts for any user registered in CDD
+updateCDD() {
+ RET=0
+ CDD=$1
+
+ return ${RET}
+}
Added: cdd/tags/cdd/0.4/share/cdd/cdd-utils
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/share/cdd/cdd-utils Mon Aug 27 19:26:15 2007
@@ -0,0 +1,36 @@
+# For error codes check in /usr/include/sysexits.h
+
+toLower() {
+ echo $@ | tr "[A-Z]" "[a-z]"
+ return 0
+}
+
+# log (typically echos on stdout)
+cddLog() {
+ echo $@
+ return 0
+}
+
+# log error (typically echos on stderr)
+cddErr() {
+ RET=$1
+ shift
+ echo "err ${RET}: $@" > /dev/stderr
+ return 0
+}
+
+# log on stderr for debug outputs
+cddDebug() {
+ test -n "${DEBUG}" && echo "debug: $@" > /dev/stderr
+ return 0
+}
+
+
+
+# log error and return a fail code $1
+cddFail() {
+ RET=$1
+ shift
+ echo "err ${RET}: $@" > /dev/stderr
+ exit ${RET}
+}
Added: cdd/tags/cdd/0.4/share/cdd/unixgroups/cdd-actions
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/share/cdd/unixgroups/cdd-actions Mon Aug 27 19:26:15 2007
@@ -0,0 +1,268 @@
+# $Id: cdd-actions 224 2004-07-08 08:26:51Z tille $
+#
+# Backend dependant functions for cdd package
+#
+# For error codes check in /usr/include/sysexits.h
+
+# CHECK Functions
+
+#checkCDD() is backend indep, and is defined in ${SHAREDIR}/cdd-action
+
+# Read adduser config to find out from which ID normal users start
+# Default = 1000
+FIRST_UID=1000
+[ -s /etc/adduser.conf ] && . /etc/adduser.conf
+
+# checks if User $1 exists as a system user
+checkUser() {
+ RET=0
+ CDDUSER=$1
+ if [ $# -ne 1 ]; then
+ RET=64 # EX_USAGE
+ elif ! getent passwd "${CDDUSER}" > /dev/null; then
+ RET=67 # EX_NOUSER
+ fi
+ return ${RET}
+}
+
+# checks if Role $1 is registered into system
+# actually a mere check if Unix group, named like the CDD project, exists
+checkRole() {
+ RET=0
+ ROLE=$1
+ if [ "$#" -ne 1 ]; then
+ RET=64 # EX_USAGE
+ elif ! getent group "${ROLE}" > /dev/null; then
+ RET=67 # EX_NOUSER
+ fi
+ return ${RET}
+}
+
+
+# check if CDD ($1) has registered Role ($2)
+# (or, in other words, if Role has been registerd in CDD)
+checkRoleInCDD() {
+ RET=0
+ CDD=$1
+ ROLE=$2
+ if [ "$#" -ne 2 ]; then
+ RET=64 # EX_USAGE
+ # currently there is no way to extract a Role from a CDD if
+ # they're named differently, using unixgroups backend
+ elif [ "${CDD}" != "${ROLE}" ]; then
+ RET=69 # EX_UNAVAILABLE
+ fi
+ return ${RET}
+}
+
+# checks if user $2 is registered in CDD $1
+checkUserInCDD() {
+ RET=0
+ CDD=$1
+ CDDUSER=$2
+ if [ "$#" -ne 2 ]; then
+ RET=64 # EX_USAGE
+ # currently the only way to check if user is registered in a CDD is check
+ # if he/she covers any role the CDD, using unixgroups backend
+ elif [ -z "`getUserRoles ${CDD} ${CDDUSER}`" ]; then
+ RET=1 # user has no role, so is not registered in CDD
+ fi
+ return ${RET}
+}
+
+# GET Functions
+
+# getCDDList() is backend indep and is defined in ${SHAREDIR}/cdd-action
+
+# echos the roles registered by CDD
+# for Unix groups backend, it's actually the identity function
+getCDDRoleList() {
+ RET=0
+ CDD=$1
+ if [ "$#" -ne 1 ]; then
+ RET=64 # EX_USAGE
+ else
+ checkRole ${CDD} && echo ${CDD}
+ fi
+ return ${RET}
+}
+
+# echoes list of users having role $2 in CDD $1
+# if $4 exists use ',' as separator between user names
+getUsersInRole() {
+ RET=0
+ CDD=$1
+ ROLE=$2
+ SIMPLE=$3
+ USERS=""
+ if [ "$#" -ne 3 -a "$#" -ne 4 ]; then
+ return RET=64 # EX_USAGE
+ fi
+ for user in `getent group ${ROLE} | sed -ne "s/.*:\(.*\)$/\1/p" | tr "," " "` ; do
+ REALNAME=" "
+ if [ $SIMPLE -ne 1 ] ; then
+ REALNAME=" (`grep \"^$user:\" /etc/passwd | sed \"s/^$user:[^:]\+:[0-9]\+:[0-9]\+:\([^:]\+\):.*/\1/\" | sed \"s/,.*//\"`)"
+ fi
+ if [ "$#" -eq 4 ]; then
+ if [ "$USERS" != "" ] ; then
+ USERS="${USERS},"
+ fi
+ fi
+ if [ "$USERS" != "" ] ; then
+ USERS="${USERS} "
+ fi
+ USERS="${USERS}${user}${REALNAME}"
+ done
+ echo $USERS
+ return ${RET}
+}
+
+# echoes list of all users of the system
+# $1 = 1 - simply login names, $1 = 0 (or anything else) - login names and real name
+# if $2 exists use ',' as separator between user names
+getAllUsers() {
+ RET=0
+ if [ "$#" -ne 1 -a "$#" -ne 2 ]; then
+ RET=64 # EX_USAGE
+ else
+ SIMPLE=$1
+ TMPFILE=`tempfile`
+ (IFS=":"
+ while read user pass uid gid name rest ; do
+ if [ $uid -ge $FIRST_UID -a "$user" != "nobody" ] ; then
+ name=`echo $name | sed "s/,.*//"`
+ if [ $SIMPLE -eq 1 ] ; then
+ echo "$user" >> ${TMPFILE}
+ else
+ echo "$user ($name)" >> ${TMPFILE}
+ fi
+ fi
+ done < /etc/passwd
+ )
+ # Append ',' if second argument is given
+ if [ "$#" -eq 2 ]; then
+ sort -u "${TMPFILE}" | tr '\n' ',' | sed 's/,/&\ /g' | sed 's/, *$//g'
+ else
+ sort -u "${TMPFILE}"
+ fi
+ rm -f "${TMPFILE}"
+ fi
+ return ${RET}
+}
+# echo all Role covered by user $2 in CDD $1
+getUserRoles() {
+ RET=0
+ CDD=$1
+ CDDUSER=$2
+ if [ "$#" -ne 2 ]; then
+ RET=64 # EX_USAGE
+ else
+ CDDROLES=`getCDDRoleList ${CDD}`
+ ROLES=""
+ for ROLE in ${CDDROLES}; do
+ for USER in `getUsersInRole ${CDD} ${ROLE} 1`; do
+ test "${USER}" == "${CDDUSER}" && \
+ ROLES="${ROLES} ${ROLE}"
+ done
+ done
+ cddDebug "getUserRoles(): roles covered by user ${CDDUSER} in CDD ${CDD}: ${ROLES}"
+ echo ${ROLES}
+ fi
+ return ${RET}
+}
+
+
+# echos the home directory of the system user
+getUserHome() {
+ RET=0
+ CDDUSER=$1
+ if [ "$#" -ne 1 ]; then
+ RET=64 # EX_USAGE
+ else
+ if checkUser ${CDDUSER}; then
+ getent passwd ${CDDUSER} | sed "s/.*:\([^:]*\):[^:]*$/\1/"
+ RET=$?
+ else
+ RET=67 # EX_NOUSER
+ fi
+ fi
+
+ return ${RET}
+}
+
+
+
+# ADD/SET functions
+
+# adds role $2 to current unix groups for the specified CDD $1, as a system
+# dynamic allocated group
+addRole() {
+ RET=0
+ CDD=$1
+ ROLE=$2
+ if [ "$#" -ne 2 ]; then
+ RET=64 # EX_USAGE
+ else
+ ${DRYRUN} addgroup --system "${ROLE}" || true
+ RET=$?
+ fi
+ return ${RET}
+}
+
+# set user $2 to have role $3, for the specified CDD $1
+setUserRole() {
+ RET=0
+ CDD=$1
+ USER=$2
+ ROLE=$3
+ if [ "$#" -ne 3 ]; then
+ RET=64 # EX_USAGE
+ else
+ ${DRYRUN} adduser ${USER} ${ROLE}
+ RET=$?
+ fi
+ return ${RET}
+}
+
+# DEL/USET Functions
+
+# remove role $2 for the specified CDD $1 from current unix groups, as a
+# system dynamic allocated group
+delRole() {
+ RET=0
+ CDD=$1
+ ROLE=$2
+ if [ "$#" -ne 2 ]; then
+ RET=64 # EX_USAGE
+ else
+ if checkRole "${ROLE}"; then
+ ${DRYRUN} delgroup "${ROLE}"
+ RET=$?
+ else
+ RET=67 # EX_NOUSER
+ fi
+ fi
+ return ${RET}
+}
+
+
+# unset user $2 from having role $3, for the specified CDD $1
+unsetUserRole() {
+ RET=0
+ CDD=$1
+ CDDUSER=$2
+ ROLE=$3
+ # Make sure CDDUSER and ROLE are BOTH defined,
+ # to avoid disasters using deluser
+ if [ "$#" -ne 3 ]; then
+ RET=64 # EX_USAGE
+ else
+ if checkUser "${CDDUSER}"; then
+ ${DRYRUN} deluser "${CDDUSER}" "${ROLE}"
+ RET=$?
+ else
+ RET=67 # EX_NOUSER
+ fi
+ fi
+ return ${RET}
+}
Added: cdd/tags/cdd/0.4/share/menu/cdd-menu
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/share/menu/cdd-menu Mon Aug 27 19:26:15 2007
@@ -0,0 +1,214 @@
+#!/bin/bash
+
+# Script to handle menu profiles for CDD subsystem, installed by your system
+# administrator via cdd-common package.
+#
+# this script should be put in ${HOME}./menu/cdd-menu and is executed by
+# update-menus when run by user (not root)
+#
+# It prints on STDOUT Debian menu entries for user
+#
+# DO NOT REMOVE IT UNLESS YOU KNOW WHAT YOU ARE DOING
+
+CONFBASE=${CONFBASE:-/etc/cdd}
+
+# read generic CDD conf
+. ${CONFBASE}/cdd.conf
+
+CDDUSER=`whoami`
+
+tasksdir=/usr/share/cdd/tasks
+
+# it has to be run only by unprivileged users via update-menus
+test "${CDDUSER}" == "root" && exit 0
+
+# Upper case the first letter of a string to have a nicer menu
+NameToUpper() {
+ if [ $# -ne 1 ] ; then
+ RET=64 # EX_USAGE
+ return ${RET}
+ fi
+ echo $1 | perl -ne 'print "\u\L$_";'
+ return 0
+}
+
+# Obtain title from HTML page for menu hints
+GetHTMLTitle () {
+ if [ $# -ne 1 ] ; then
+ RET=64 # EX_USAGE
+ return ${RET}
+ fi
+ perl -ne 'while (<>) {chomp; $all.="$_ ";}
+ ($title) = ($all =~ /.*\<title\>(.*)\<\/title\>.*/i);
+ $title =~ s/\s+/ /g ;
+ print $title ; exit 0;' $1
+ return 0
+}
+
+# Obtain title (= first line) from text file for menu hints
+GetTxtTitle () {
+ if [ $# -ne 1 ] ; then
+ RET=64 # EX_USAGE
+ return ${RET}
+ fi
+ head -1 $1 | sed -e "s/[[:space:]]\+/ /g" -e "s/^[[:space:]]*\(.*\)[[:space:]]*$/\1/"
+ return 0
+}
+
+# Strip CDD-name from meta package name
+GetTaskNameFromPackage () {
+ if [ $# -ne 2 ] ; then
+ RET=64 # EX_USAGE
+ return ${RET}
+ fi
+ CDD=$1 # CDD - name
+ PKG=$2 # meta package name
+ echo $PKG | sed "s/^$CDD-//"
+ return 0
+}
+
+# Obtain task title which has to be defined in the meta package control templates
+GetTaskTitle () {
+ if [ $# -ne 1 ] ; then
+ RET=64 # EX_USAGE
+ return ${RET}
+ fi
+ PKG=$1 # meta package name
+ cat "$tasksdir"/"$CDD"/`GetTaskNameFromPackage "$CDD" "$PKG"`
+ return 0
+}
+
+getMenuEntriesFromDependencies() {
+ RET=""
+ if [ $# -ne 1 ] ; then
+ RET=64 # EX_USAGE
+ return ${RET}
+ fi
+ PKG="$CDD"-$1
+ TASK=`GetTaskTitle $PKG`
+ SECTION=`NameToUpper "$CDD"`/`NameToUpper "$TASK"`
+
+ # find the list of Depends / Recommends / Suggests
+ DepPkgs=`dpkg --status "$PKG" | \
+ sed -e '/^Description/,$d' -e '/^Conffiles/,$d' | \
+ grep -v ^[A-CE-QT-Z] | \
+ grep -v ^S[eot] | \
+ sed -e "s/([^)]*)//" \
+ -e "s/,* *${CDD}-config//" \
+ -e "s/^[^:]*: *//" \
+ -e "s/, */\\n/g" | \
+ sort | uniq`
+
+ # check whether CDD-maintainer provided menu override different from
+ # package maintainers menu file
+ # FIXME: This is outdated! The concept of menu files named like the
+ # meta package is stopped in favour of single menu files named like
+ # the dependant package. The rationale is that you can get more
+ # fine grained replacements.
+ cddmenufile=""
+ if [ -s "$HOME"/.menu/"$PKG" ] ; then
+ cddmenufile="$HOME"/.menu/"$PKG"
+ elif [ -s /etc/cdd/"$CDD"/menu/"$PKG" ] ; then
+ cddmenufile=/etc/cdd/"$CDD"/menu/"$PKG"
+ elif [ -s /usr/lib/cdd/"$CDD"/menu/"$PKG" ] ; then
+ cddmenufile=/usr/lib/cdd/"$CDD"/menu/"$PKG"
+ elif [ -s /usr/share/cdd/"$CDD"/menu/"$PKG" ] ; then
+ cddmenufile=/usr/share/cdd/"$CDD"/menu/"$PKG"
+ fi
+
+ for pkg in $DepPkgs ; do
+ # if CDD maintainer provided override just continue
+ [ ! -z "$cddmenufile" ] && grep -q -i "?package($pkg)" "$cddmenufile" && continue
+
+ # check for documentation text of CDD maintainer which should
+ # be prefered over package maintainers menu
+ docfile=""
+ if [ -s /usr/share/doc/"$PKG"/"$pkg".html ] ; then
+ docfile=/usr/share/doc/"$PKG"/"$pkg".html
+ elif [ -s /usr/share/doc/"$PKG"/"$pkg".txt ] ; then
+ docfile=/usr/share/doc/"$PKG"/"$pkg".txt
+ elif [ -s /usr/share/doc/"$PKG"/"$pkg" ] ; then
+ docfile=/usr/share/doc/"$PKG"/"$pkg"
+ fi
+ # if CDD maintainer provides documentation view this as menu entry ...
+ if [ ! -z "$docfile" -a -s "$docfile" ] ; then
+ hint=""
+ if file "$docfile" | grep -q HTML ; then
+ senspager=sensible-browser
+ hint=`GetHTMLTitle "$docfile"`
+ else
+ senspager=sensible-pager
+ hint=`GetTxtTitle "$docfile"`
+ fi
+ if [ ! -z "$hint" ] ; then
+ hint="hints=\""$hint"\""
+ fi
+ cat <<EOT
+?package($pkg): needs="text" \\
+ section="$SECTION" \\
+ title="`NameToUpper "$pkg"`" $hint \\
+ command="$senspager $docfile"
+EOT
+ fi
+
+ # search for a menu file with the following priority
+ # ${HOME}/.menu, /etc/menu, /usr/share/cdd/${CDD}/menu, /usr/share/menu, /usr/lib/menu
+ pkgmenufile=""
+ donotchange=1
+ if [ -s "$HOME"/.menu/"$pkg" ] ; then
+ pkgmenufile="$HOME"/.menu/"$pkg"
+ elif [ -s /etc/menu/"$pkg" ] ; then
+ pkgmenufile=/etc/menu/"$pkg"
+ elif [ -s /usr/share/cdd/"$CDD"/menu/"$pkg" ] ; then
+ pkgmenufile=/usr/share/cdd/"$CDD"/menu/"$pkg"
+ donotchange=0
+ elif [ -s /usr/share/menu/"$pkg" ] ; then
+ pkgmenufile=/usr/share/menu/"$pkg"
+ elif [ -s /usr/lib/menu/"$pkg" ] ; then
+ pkgmenufile=/usr/lib/menu/"$pkg"
+ fi
+ if [ ! -z "$pkgmenufile" ] ; then
+ if [ $donotchange -eq 1 ] ; then
+ # the 2. and 3. -e - expression tries to fix missing '"' around the entries
+ sed -e "/^[[:space:]]*$/d" \
+ -e 's?\([ :][^=^ ]*=\) *\([^"^=]*\)\( [^=]\+=\)?\1"\2"\3?g' \
+ -e 's?\([ :][^=^ ]*=\) *\([^"^=]*\)\( [^=]\+=\)?\1"\2"\3?g' \
+ -e 's?\( [^=]\+=\) *\([^"^=]\+[^"^\]\)$?\1"\2"?' \
+ -e "s?\(section\)[[:space:]]*=[[:space:]]*\"*[^\"\\]*\"*?\1=\"$SECTION\"?" $pkgmenufile
+ else
+ # strip possible comments
+ grep -v "^[[:space:]]*#" $pkgmenufile
+ fi
+ fi
+ # HACK: Add blank line which helps in case of missing newlines
+ echo
+ done
+
+ [ -s "$cddmenufile" ] && cat "$cddmenufile"
+}
+
+ALLCDD=`getCDDList`
+for CDD in ${ALLCDD}; do
+ # read per CDD conf
+ test -f ${CONFBASE}/${CDD}/${CDD}.conf && \
+ . ${CONFBASE}/${CDD}/${CDD}.conf
+
+ if [ -d "$tasksdir"/"$CDD" ] ; then
+ for PKG in `ls "$tasksdir"/"$CDD"` ; do
+ getMenuEntriesFromDependencies "$PKG"
+ done
+ fi
+
+# # print on STDOUT menu generic entries if user belongs to CDD
+# checkUserInCDD ${CDD} ${CDDUSER} && \
+# test -d ${CONFBASE}/${CDD}/menu/ && \
+# find ${CONFBASE}/${CDD}/menu/ -maxdepth 1 -mindepth 1 -type f \
+# -exec cat {} \;
+#
+# # and role specific menu entries
+# for ROLE in `getUserRoles ${CDD} ${CDDUSER}`; do
+# test -d ${CONFBASE}/${CDD}/menu/${ROLE} &&
+# find ${CONFBASE}/${CDD}/menu/${ROLE} -maxdepth 1 -mindepth 1 \
+# -type f -exec cat {} \;
+# done
+done
Added: cdd/tags/cdd/0.4/sources.list
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/sources.list Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+link sources.list.unstable
\ No newline at end of file
Added: cdd/tags/cdd/0.4/sources.list.local
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/sources.list.local Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+deb file:/home/ftp/pub/debian/ testing main
Added: cdd/tags/cdd/0.4/sources.list.stable
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/sources.list.stable Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+deb http://ftp.debian.org/ stable main
Added: cdd/tags/cdd/0.4/sources.list.testing
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/sources.list.testing Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+deb http://ftp.debian.org/ testing main
Added: cdd/tags/cdd/0.4/sources.list.unstable
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/sources.list.unstable Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+deb http://ftp.debian.org/ unstable main
Added: cdd/tags/cdd/0.4/templates/README.Debian
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/README.Debian Mon Aug 27 19:26:15 2007
@@ -0,0 +1,22 @@
+This is a meta package which is used by Custom Debian Distributions
+-------------------------------------------------------------------
+
+This package is a metapackage; it depends on several other packages to make
+them be installed when it is installed. If you want to remove one of those
+packages, you have to remove this package as well. The other packages won't be
+touched.
+
+There exists an comprehensive documentation about Custom Debian Distributions
+which can be found at http://alioth.debian.org/projects/cdd/.
+
+The meta packages should always be installable on a Debian system.
+Thus no dependency on a non-available package (ie. a package available
+outside of Debian) have been used. However such dependencies have
+been downgraded to Suggests.
+
+Sometimes some non-free packages are suggested when no good free
+alternatives are known. You're encouraged to find good free
+replacements.
+
+Perhaps type-handling might gives us a way to specify arch-dependant
+dependencies.
Added: cdd/tags/cdd/0.4/templates/apt.conf
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/apt.conf Mon Aug 27 19:26:15 2007
@@ -0,0 +1,10 @@
+/*
+ * $Id: apt.conf 452 2007-08-27 17:56:18Z tille $
+ */
+/*
+ * APT configuration file for #CDD#-config package
+ */
+
+DPkg {
+ Post-Invoke {"test -f /var/run/#CDD#-config.usermenu && if [ -x /usr/sbin/cdd-update-usermenus ] ; then /usr/sbin/cdd-update-usermenus #CDD# ; fi ; rm -f /var/run/#CDD#-config.usermenu";};
+}
Added: cdd/tags/cdd/0.4/templates/config.config
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/config.config Mon Aug 27 19:26:15 2007
@@ -0,0 +1,39 @@
+#!/bin/sh -e
+
+# Initialize debconf if not yet done
+if [ _"$DEBCONF_REDIR" = _"" ]; then
+ . /usr/share/debconf/confmodule
+ db_version 2.0
+ db_capb backup
+fi
+
+db_input "medium" "shared/#CDD#-config/usermenus" || true
+db_go
+
+# if cdd-config package is not yet installed we have to stop here
+if [ ! -f /etc/cdd/cdd.conf ] ; then
+ db_stop
+ exit 0
+fi
+
+[ -s /etc/cdd/cdd.conf ] && . /etc/cdd/cdd.conf
+[ -s /etc/cdd/#CDD#/#CDD#.conf ] && . /etc/cdd/#CDD#/#CDD#.conf
+
+# Add at least one default role for each CDD
+addRole #CDD# #CDD#
+
+# Login names of all users of the system as comma separated list
+USERS=`getAllUsers 0 ,`
+
+# "login (Real Name)" of users registered to the CDD #CDD#
+CDDUSERS=`getUsersInRole #CDD# #CDD# 0 ,`
+
+db_set #CDD#-config/group "$CDDUSERS"
+db_subst #CDD#-config/group users "$USERS"
+db_get #CDD#-config/group
+
+db_input high #CDD#-config/group || true
+db_go
+
+db_stop
+exit 0
Added: cdd/tags/cdd/0.4/templates/config.install
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/config.install Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+debian/90#CDD#-config etc/apt/apt.conf.d
Added: cdd/tags/cdd/0.4/templates/config.links
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/config.links Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+usr/share/cdd/cdd-task-lister usr/lib/tasksel/#CDD#-task-files
Added: cdd/tags/cdd/0.4/templates/config.postinst
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/config.postinst Mon Aug 27 19:26:15 2007
@@ -0,0 +1,36 @@
+#!/bin/sh -e
+
+# if cdd-common package is not yet installed we have to stop here
+if [ ! -f /etc/cdd/cdd.conf ] ; then
+ echo "Custom Debian Distribution configuration file /etc/cdd/cdd.conf is missing."
+ exit -1
+fi
+. /etc/cdd/cdd.conf
+
+if [ ! -f /etc/cdd/#CDD#/#CDD#.conf ] ; then
+ echo "#CDDNAME# configuration file /etc/cdd/#CDD#/#CDD#.conf is missing."
+ exit -1
+fi
+. /etc/cdd/#CDD#/#CDD#.conf
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+db_version 2.0
+
+db_get #CDD#-config/group
+
+CURRENTCDDUSERS=`getUsersInRole #CDD# #CDD# 1`
+# Add those users which were selected but are not yet in the group
+for user in `echo "$RET" | sed "s/([^)]*)//g" | sed "s/ //g" | tr ',' '\n'` ; do
+ if [ `echo "${CURRENTCDDUSERS}" | grep -c -w "$user"` -eq 0 ] ; then
+ /usr/sbin/cdd-user add #CDD# $user
+ fi
+done
+# Del those users which were obviousely removed from list of CDD users
+for user in `getAllUsers 1` ; do
+ if [ `echo "$RET" | grep -c -w "$user"` -eq 0 ] && [ `getent group #CDD# | grep -c -w $user` -gt 0 ] ; then
+ /usr/sbin/cdd-user del #CDD# $user
+ fi
+done
+
+#DEBHELPER#
Added: cdd/tags/cdd/0.4/templates/config.templates
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/config.templates Mon Aug 27 19:26:15 2007
@@ -0,0 +1,25 @@
+Template: #CDD#-config/group
+Type: multiselect
+Choices: ${users}
+_Description: #CDDNAME# users:
+ Please select, among the whole system user list, users who should get
+ a #CDDNAME# user menu.
+
+Template: shared/#CDD#-config/usermenus
+Type: select
+_Choices: Each package installation, End of installation, Never
+Default: never
+_Description: Build user menus at:
+ The meta packages of the #CDDNAME# Custom Debian Distribution
+ contain extra role based menus for users. These will be built when
+ a user who is registered to a given role uses the "update-menus"
+ utility. This can be done automatically for all users who are registered
+ for #CDDNAME# after installation of each single meta package,
+ at the end of the whole installation process to save time in case
+ of installing more than one meta package or just leave the call of
+ "update-menus" to the users themselves.
+ * Each package installation : Call "update-menus" after each meta package
+ (time consuming);
+ * End of installation : Call "update-menus" only once at the end of
+ the whole installation/upgrading process;
+ * Never : Do not call "update-menus" at all.
Added: cdd/tags/cdd/0.4/templates/po/POTFILES.in
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/po/POTFILES.in Mon Aug 27 19:26:15 2007
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] config.templates
Added: cdd/tags/cdd/0.4/templates/po/ca.po
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/po/ca.po Mon Aug 27 19:26:15 2007
@@ -0,0 +1,87 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cdd 0.4\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-06-28 15:58+0200\n"
+"PO-Revision-Date: 2004-09-07 20:59+0200\n"
+"Last-Translator: Guillem Jover <guillem at debian.org>\n"
+"Language-Team: Catalan <debian-l10n-catalan at debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../config.templates:4
+msgid "#CDDNAME# users:"
+msgstr "Usuaris de #CDDNAME#:"
+
+#. Type: multiselect
+#. Description
+#: ../config.templates:4
+msgid ""
+"Please select, among the whole system user list, users who should get a "
+"#CDDNAME# user menu."
+msgstr ""
+"Si us plau seleccioneu, de la llista de tots els usuaris del sistema, "
+"aquells usuaris que han d'obtenir un menú d'usuari de #CDDNAME#."
+
+#. Type: select
+#. Choices
+#: ../config.templates:10
+msgid "Each package installation, End of installation, Never"
+msgstr "En cada instal·lació d'un paquet, Al final de la instal·lació, Mai"
+
+#. Type: select
+#. Description
+#: ../config.templates:12
+msgid "Build user menus at:"
+msgstr "Construir els menús d'usuari a:"
+
+#. Type: select
+#. Description
+#: ../config.templates:12
+msgid ""
+"The meta packages of the #CDDNAME# Custom Debian Distribution contain extra "
+"role based menus for users. These will be built when a user who is "
+"registered to a given role uses the \"update-menus\" utility. This can be "
+"done automatically for all users who are registered for #CDDNAME# after "
+"installation of each single meta package, at the end of the whole "
+"installation process to save time in case of installing more than one meta "
+"package or just leave the call of \"update-menus\" to the users themselves.\n"
+" * Each package installation : Call \"update-menus\" after each meta "
+"package\n"
+" (time consuming);\n"
+" * End of installation : Call \"update-menus\" only once at the end "
+"of\n"
+" the whole installation/upgrading process;\n"
+" * Never : Do not call \"update-menus\" at all."
+msgstr ""
+"Els meta paquets de la distribució de Debian adaptada #CDDNAME# contenen "
+"menús extra basats en rols per als usuaris. Aquests seran construïts quan "
+"un usuari que estigui registrat en algun dels rols faci servir la utilitat "
+"«update-menus». Això es pot fer automàticament per a tots els usuaris que "
+"estiguin registrats per #CDDNAME# després de la instal·lació de cada meta "
+"paquet, al final de tot el procés d'instal·lació per a estalviar temps en "
+"cas d'instal·lar més d'un meta paquet o senzillament deixar l'execució de "
+"«update-menus» als propis usuaris.\n"
+" * En cada instal·lació d'un paquet: Executar «update-menus» després de cada\n"
+" meta paquet (consumeix molt de temps);\n"
+" * Al final d'instal·lació : Executar «update-menus» només al final\n"
+" de tota la instal·lació o procés\n"
+" d'actualització;\n"
+" * Mai : No executar mai «update-menus»."
+
Added: cdd/tags/cdd/0.4/templates/po/de.po
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/po/de.po Mon Aug 27 19:26:15 2007
@@ -0,0 +1,84 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: #CDD#-config\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-06-28 15:58+0200\n"
+"PO-Revision-Date: 2004-03-26 17:42+0100\n"
+"Last-Translator: Andreas Tille <tille at debian.org>\n"
+"Language-Team: German <debian-l10n-german at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../config.templates:4
+msgid "#CDDNAME# users:"
+msgstr "#CDDNAME# Nutzer:"
+
+#. Type: multiselect
+#. Description
+#: ../config.templates:4
+msgid ""
+"Please select, among the whole system user list, users who should get a "
+"#CDDNAME# user menu."
+msgstr ""
+"Bitte wählen Sie aus der Liste aller Nutzer des Systems diejenigen aus, die "
+"ein #CDDNAME# Nutzermenü erhalten sollen."
+
+#. Type: select
+#. Choices
+#: ../config.templates:10
+msgid "Each package installation, End of installation, Never"
+msgstr "Paketinstallation, Installationsende, Nie"
+
+#. Type: select
+#. Description
+#: ../config.templates:12
+msgid "Build user menus at:"
+msgstr "Erzeugen der Nutzermenüs bei:"
+
+#. Type: select
+#. Description
+#: ../config.templates:12
+msgid ""
+"The meta packages of the #CDDNAME# Custom Debian Distribution contain extra "
+"role based menus for users. These will be built when a user who is "
+"registered to a given role uses the \"update-menus\" utility. This can be "
+"done automatically for all users who are registered for #CDDNAME# after "
+"installation of each single meta package, at the end of the whole "
+"installation process to save time in case of installing more than one meta "
+"package or just leave the call of \"update-menus\" to the users themselves.\n"
+" * Each package installation : Call \"update-menus\" after each meta "
+"package\n"
+" (time consuming);\n"
+" * End of installation : Call \"update-menus\" only once at the end "
+"of\n"
+" the whole installation/upgrading process;\n"
+" * Never : Do not call \"update-menus\" at all."
+msgstr ""
+"Die Metapakete der Custom Debian Distribution #CDDNAME# enthalten Rollen "
+"basierte Nutzermenüs. Diese werden erzeugt, wenn ein Nutzer, der für eine "
+"bestimmte Rolle registriert ist, das Programm \"update-menus\" aufruft. Das "
+"kann automatisch für alle für #CDDNAME# registrierten Nutzer geschehen und "
+"zwar nach der Installation jedes einzelnen Metapaketes oder zeitsparend am "
+"Ende des Installationsprozesses mehrerer Metapakete. Alternativ kann "
+"\"update-menus\" auch manuell durch jeden Nutzer aufgerufen werden.\n"
+" * Paketinstallation : \"update-menus\" nach jeder Metapaketinstallation\n"
+" aufrufen (zeitintensiv).\n"
+" * Installationsende : \"update-menus\" einmalig am Ende des\n"
+" Installations- oder Updateprozesses aufrufen.\n"
+" * Nie : \"update-menus\" nicht aufrufen.\n"
Added: cdd/tags/cdd/0.4/templates/po/fr.po
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/po/fr.po Mon Aug 27 19:26:15 2007
@@ -0,0 +1,92 @@
+# translation of fr.po to French
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+# Christian Perrier <bubulle at debian.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: #CDD#-config\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-06-28 15:58+0200\n"
+"PO-Revision-Date: 2004-06-29 08:04+0200\n"
+"Last-Translator: Eric Madesclair <eric-m at wanadoo.fr>\n"
+"Language-Team: French <debian-l10n-french at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.3.1\n"
+"Plural-Forms: Plural-Forms: nplurals=2; plural=n>1;\n"
+
+#. Type: multiselect
+#. Description
+#: ../config.templates:4
+msgid "#CDDNAME# users:"
+msgstr "Utilisateurs de #CDDNAME# :"
+
+#. Type: multiselect
+#. Description
+#: ../config.templates:4
+msgid ""
+"Please select, among the whole system user list, users who should get a "
+"#CDDNAME# user menu."
+msgstr ""
+"Veuillez choisir parmi tous les utilisateurs du système ceux qui auront un "
+"menu #CDDNAME#."
+
+#. Type: select
+#. Choices
+#: ../config.templates:10
+msgid "Each package installation, End of installation, Never"
+msgstr "À chaque installation de paquet, À la fin de l'installation, Jamais"
+
+#. Type: select
+#. Description
+#: ../config.templates:12
+msgid "Build user menus at:"
+msgstr "Construction des menus des utilisateurs :"
+
+#. Type: select
+#. Description
+#: ../config.templates:12
+msgid ""
+"The meta packages of the #CDDNAME# Custom Debian Distribution contain extra "
+"role based menus for users. These will be built when a user who is "
+"registered to a given role uses the \"update-menus\" utility. This can be "
+"done automatically for all users who are registered for #CDDNAME# after "
+"installation of each single meta package, at the end of the whole "
+"installation process to save time in case of installing more than one meta "
+"package or just leave the call of \"update-menus\" to the users themselves.\n"
+" * Each package installation : Call \"update-menus\" after each meta "
+"package\n"
+" (time consuming);\n"
+" * End of installation : Call \"update-menus\" only once at the end "
+"of\n"
+" the whole installation/upgrading process;\n"
+" * Never : Do not call \"update-menus\" at all."
+msgstr ""
+"Les méta-paquets de la distribution Debian spécialisée #CDDNAME# comportent "
+"des menus additionnels suivant le rôle attribué aux utilisateurs. Ces menus "
+"sont construits quand un utilisateur enregistré dans un rôle donné lancera "
+"la commande « update-menus ». Cette opération peut se faire automatiquement "
+"après l'installation de chaque méta-paquet pour chaque utilisateur "
+"enregistré pour #CDDNAME# ou à la fin du processus d'installation pour "
+"gagner du temps si plu sd'un méta-paquet est installé. Il est également "
+"possible de laisser aux utilisateurs l'initiative de lancer eux-même la "
+"commande.\n"
+" - À chaque installation de paquet : lancer « update-menus » après\n"
+" l'installation de chaque méta-paquet\n"
+" (cette opération peut être longue) ;\n"
+" - À la fin de l'installation : lancer « update-menus » seulement\n"
+" à la fin de la procédure\n"
+" d'installation ou de mise à jour ;\n"
+" - Jamais : ne pas du tout lancer « update-menus »."
Added: cdd/tags/cdd/0.4/templates/po/pt_BR.po
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/po/pt_BR.po Mon Aug 27 19:26:15 2007
@@ -0,0 +1,88 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cdd-dev\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-06-28 15:58+0200\n"
+"PO-Revision-Date: 2004-06-29 22:00-0300\n"
+"Last-Translator: André Luís Lopes <andrelop at debian.org>\n"
+"Language-Team: Debian-BR Project <debian-l10n-portuguese at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../config.templates:4
+msgid "#CDDNAME# users:"
+msgstr "Usuários #CDDNAME# : "
+
+#. Type: multiselect
+#. Description
+#: ../config.templates:4
+msgid ""
+"Please select, among the whole system user list, users who should get a "
+"#CDDNAME# user menu."
+msgstr ""
+"Por favor, selecione dentre a lista de usuários de todo o sistema os "
+"usuários que devem obter um menu de usuário do #CDDNAME#."
+
+#. Type: select
+#. Choices
+#: ../config.templates:10
+msgid "Each package installation, End of installation, Never"
+msgstr "A cada instalação de pacote, Ao final da instalação, Nunca"
+
+#. Type: select
+#. Description
+#: ../config.templates:12
+msgid "Build user menus at:"
+msgstr "Construir menus de usuários :"
+
+#. Type: select
+#. Description
+#: ../config.templates:12
+msgid ""
+"The meta packages of the #CDDNAME# Custom Debian Distribution contain extra "
+"role based menus for users. These will be built when a user who is "
+"registered to a given role uses the \"update-menus\" utility. This can be "
+"done automatically for all users who are registered for #CDDNAME# after "
+"installation of each single meta package, at the end of the whole "
+"installation process to save time in case of installing more than one meta "
+"package or just leave the call of \"update-menus\" to the users themselves.\n"
+" * Each package installation : Call \"update-menus\" after each meta "
+"package\n"
+" (time consuming);\n"
+" * End of installation : Call \"update-menus\" only once at the end "
+"of\n"
+" the whole installation/upgrading process;\n"
+" * Never : Do not call \"update-menus\" at all."
+msgstr ""
+"Os meta-pacotes da Distribuição Debian Customizada #CDDNAME# contém "
+"menus extras para usuários com base em suas funções. Tais menus serão "
+"gerados quando um usuário registrado para uma função específica utilizar "
+"o utilitário \"update-menus\". Isso pode ser feito automaticamente para "
+"todos os usuários que estejam registrados para o #CDDNAME# após a "
+"instalação de cada meta-pacote, ao final de todo o processo de instalação "
+"para economizar tempo no caso da instalação de mais de um meta-pacote ou "
+"deixar a execução do utilitário \"update-menus\" por conta dos prórios"
+"usuários.\n"
+" * A cada instalação de pacote : Executa \"update-menus\" após cada meta "
+"pacote\n"
+" (consome muito tempo);\n"
+" * Ao final da instalação : Executa \"update-menus\" uma única vez "
+"no final\n"
+" do processo completo de instalação/atualização;\n"
+" * Nunca : Não executa \"update-menus\"."
Added: cdd/tags/cdd/0.4/templates/po/templates.pot
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/po/templates.pot Mon Aug 27 19:26:15 2007
@@ -0,0 +1,71 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-06-28 15:58+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../config.templates:4
+msgid "#CDDNAME# users:"
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../config.templates:4
+msgid ""
+"Please select, among the whole system user list, users who should get a "
+"#CDDNAME# user menu."
+msgstr ""
+
+#. Type: select
+#. Choices
+#: ../config.templates:10
+msgid "Each package installation, End of installation, Never"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../config.templates:12
+msgid "Build user menus at:"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../config.templates:12
+msgid ""
+"The meta packages of the #CDDNAME# Custom Debian Distribution contain extra "
+"role based menus for users. These will be built when a user who is "
+"registered to a given role uses the \"update-menus\" utility. This can be "
+"done automatically for all users who are registered for #CDDNAME# after "
+"installation of each single meta package, at the end of the whole "
+"installation process to save time in case of installing more than one meta "
+"package or just leave the call of \"update-menus\" to the users themselves.\n"
+" * Each package installation : Call \"update-menus\" after each meta "
+"package\n"
+" (time consuming);\n"
+" * End of installation : Call \"update-menus\" only once at the end "
+"of\n"
+" the whole installation/upgrading process;\n"
+" * Never : Do not call \"update-menus\" at all."
+msgstr ""
Added: cdd/tags/cdd/0.4/templates/postinst
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/postinst Mon Aug 27 19:26:15 2007
@@ -0,0 +1,46 @@
+#!/bin/bash -e
+
+# This is the default postinst file from the cdd-dev package which is used
+# in all meta packages. If there is a certain need to provide extra
+# postinst files for some meta packages this template will be appended. Thus
+# it will be checked whether debconf was just initialized.
+#
+# You should not insert the _DEBHELPER_ template in the special postscript
+# file because it is in the end of this template anyway.
+
+test -x /usr/sbin/cdd-update-menus && /usr/sbin/cdd-update-menus -d #CDD#
+
+# Initialize debconf if not yet done
+if [ _"$DEBCONF_REDIR" = _"" ]; then
+ . /usr/share/debconf/confmodule
+ db_version 2.0
+fi
+
+. /etc/cdd/cdd.conf
+if [ -s /etc/cdd/#CDD#/#CDD#.conf ] ; then . /etc/cdd/#CDD#/#CDD#.conf ; fi
+
+case "$1" in
+ abort-deconfigure|abort-remove|abort-upgrade)
+ ;;
+ configure|upgrade)
+ db_get "shared/#CDD#-config/usermenus" || true
+ case "$RET" in
+ "Each package installation")
+ /usr/sbin/cdd-update-usermenus #CDD#
+ ;;
+ "End of installation")
+ touch /var/run/#CDD#-config.usermenu
+ ;;
+ esac
+ ;;
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+db_stop
+
+#DEBHELPER#
+
+exit 0
Added: cdd/tags/cdd/0.4/templates/postrm
==============================================================================
--- (empty file)
+++ cdd/tags/cdd/0.4/templates/postrm Mon Aug 27 19:26:15 2007
@@ -0,0 +1,48 @@
+#!/bin/bash -e
+
+# This is the default postrm file from the cdd-dev package which is used
+# in all meta packages. If there is a certain need to provide extra
+# postrm files for some meta packages this template will be appended. Thus
+# it will be checked whether debconf was just initialized.
+#
+# You should not insert the _DEBHELPER_ template in the special postscript
+# file because it is in the end of this template anyway.
+
+test -x /usr/sbin/cdd-update-menus && /usr/sbin/cdd-update-menus -d #CDD#
+
+test -s /etc/cdd/cdd.conf && . /etc/cdd/cdd.conf
+test -s /etc/cdd/#CDD#/#CDD#.conf && . /etc/cdd/#CDD#/#CDD#.conf
+
+if [ -x /usr/sbin/cdd-update-usermenus ] ; then
+ # Initialize debconf if not yet done
+ if [ _"$DEBCONF_REDIR" = _"" ]; then
+ . /usr/share/debconf/confmodule
+ db_version 2.0
+ fi
+
+ . /etc/cdd/cdd.conf
+ if [ -s /etc/cdd/#CDD#/#CDD#.conf ] ; then . /etc/cdd/#CDD#/#CDD#.conf ; fi
+
+ case "$1" in
+ abort-install|abort-upgrade|failed-upgrade|upgrade)
+ ;;
+ remove|purge)
+ db_get "shared/#CDD#-config/usermenus" || true
+ case "$RET" in
+ "Each package installation")
+ /usr/sbin/cdd-update-usermenus #CDD#
+ ;;
+ "End of installation")
+ touch /var/run/#CDD#-config.usermenu
+ ;;
+ esac
+ ;;
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+ esac
+fi
+
+
+#DEBHELPER#
More information about the Cdd-commits
mailing list