From 92504f21498e3e244d3d67e43b780ec79f843b1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Hertzog?= Date: Tue, 7 Mar 2000 18:59:31 +0000 Subject: [PATCH] * Many modifications to support the inclusion of local packages available in dists/$CODENAME/local/binary-$ARCH. * Updated documentation in several places. * Updated CONF.sh. * Added an empty task. --- CONF.sh | 10 +++++++++- README | 20 ++++++++++++++++++++ debian/CONF.sh | 12 ++++++++++-- debian/changelog | 8 ++++++-- debian/control | 6 +++--- tasks/empty | 1 + tools/add_dirs | 8 ++++++-- tools/apt-selection | 5 +++++ tools/cds2src | 6 ++++++ tools/link.pl | 13 +++++++++++++ tools/list2cds | 1 + tools/scanpackages | 29 +++++++++++++++++++++++++++++ tools/scansources | 5 +++++ 13 files changed, 114 insertions(+), 10 deletions(-) create mode 100644 tasks/empty diff --git a/CONF.sh b/CONF.sh index 5b9b60f6..7ba02924 100644 --- a/CONF.sh +++ b/CONF.sh @@ -12,11 +12,14 @@ export CODENAME=potato # ... for arch export ARCH=i386 +# IMPORTANT : The 3 following paths must be on the same partition/device +# or you won't be able to use debian-cd in the standard way. +# If really you can't then, you can try with the symlink farm, +# read the README for more information about this. # Paths to the mirrors export MIRROR=/ftp/debian # Comment the following line if you don't have/want non-US export NONUS=/ftp/debian-non-US - # Path of the temporary directory export TDIR=/ftp/tmp @@ -26,6 +29,11 @@ export OUT=/rack/debian-cd # Do I want to have NONFREE # export NONFREE=1 +# If you have a $MIRROR/dists/$CODENAME/local/binary-$ARCH dir with +# local packages that you want to put on the CD set then +# uncomment the following line +#export LOCAL=1 + # Sparc only : bootdir (location of cd.b and second.b) #export BOOTDIR= diff --git a/README b/README index 6601d947..990610a8 100644 --- a/README +++ b/README @@ -67,6 +67,11 @@ The process of building a CD is decomposed as follow : have to build them one after the other (you may use a shell script for this). + Note that the temporary dir must be on the same device than the + mirror because debian-cd uses hardlinks for generating an image + tree. If you can't do this, you'll have to use the symlink farm. + The symlink farm is explained at the end of this README. + - now we'll check if your mirror is ok (with good Packages files) : $ make mirrorcheck @@ -160,6 +165,21 @@ The process of building a CD is decomposed as follow : $ make imagesums +Local packages +============== + +If you provide some custom made packages and you want to put them on +Debian CD set you can do it. Simply put your packages in +$MIRROR/dists/$CODENAME/local/binary-$ARCH/
. +The organization of this sub-tree is the same than what you can find +in the main, contrib or non-free part. You may use different section +names if you want. Be sure to create Packages files (and Sources.gz if you +include sources). + +To include local packages, the LOCAL environment variable must be set +to "1" while building the CDs. + + Additionnal targets =================== diff --git a/debian/CONF.sh b/debian/CONF.sh index 9cc29b43..a37b6d4e 100644 --- a/debian/CONF.sh +++ b/debian/CONF.sh @@ -11,11 +11,14 @@ export CODENAME=potato # ... for arch export ARCH=`dpkg --print-installation-architecture` +# IMPORTANT : The 3 following paths must be on the same partition/device +# or you won't be able to use debian-cd in the standard way. +# If really you can't then, you can try with the symlink farm, +# read the README for more information about this. # Paths to the mirrors export MIRROR=/home/ftp/debian # Comment the following line if you don't have/want non-US # export NONUS=/home/ftp/debian-non-US - # Path of the temporary directory export TDIR=/home/ftp/tmp @@ -23,7 +26,12 @@ export TDIR=/home/ftp/tmp export OUT=/home/ftp/debian-cd # Do I want to have NONFREE -# export NONFREE=1 +#export NONFREE=1 + +# If you have a $MIRROR/dists/$CODENAME/local/binary-$ARCH dir with +# local packages that you want to put on the CD set then +# uncomment the following line +#export LOCAL=1 # Sparc only : bootdir (location of cd.b and second.b) #export BOOTDIR= diff --git a/debian/changelog b/debian/changelog index 512a17a5..1b2a63b9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,7 +7,7 @@ debian-cd (2.1.92) frozen unstable; urgency=low -> This change will have to be removed when all arch will have synced boot floppies. * Changes to tools/potato/boot-i386 for support of the 2.2.3 bootdisks. - Closes: #53529 + Closes: #53529 #58304 * In Makefile, if there are multiple versions of the bootdisks in the source tree, the section "boot:" seems to get confused. Not fixed. Temporary solution, move old i386 boot @@ -22,8 +22,12 @@ debian-cd (2.1.92) frozen unstable; urgency=low * Updated README and README.devel. Explained that the main source is on CVS and that patch should apply on the CVS tree not on the source package available on the Debian FTP. + * Added possibility to include local packages on the CD set. Documented + it. Closes: #50640 + * Documented the fact that TMP path must be on the same partition than + the mirror. Closes: #59524 - -- Raphael Hertzog Sat, 19 Feb 2000 18:32:22 +0100 + -- Raphael Hertzog Tue, 7 Mar 2000 19:03:44 +0100 debian-cd (2.1.91) unstable; urgency=low diff --git a/debian/control b/debian/control index c2e53e8e..81c7eed9 100644 --- a/debian/control +++ b/debian/control @@ -2,17 +2,17 @@ Source: debian-cd Section: contrib/admin Priority: extra Maintainer: Raphael Hertzog -Standards-Version: 3.0.1 +Standards-Version: 3.1.1 Package: debian-cd Architecture: all -Depends: perl5 | perl, libdigest-md5-perl | libmd5-perl, sysutils, apt (>= 0.3.11.1), dpkg-dev (>= 1.4.1.6), dpkg-multicd, make +Depends: perl5 | perl, libdigest-md5-perl | libmd5-perl, sysutils, apt (>= 0.3.11.1), dpkg-dev (>= 1.4.1.6), dpkg-multicd, make, mkhybrid | mkisofs Recommends: lha, unzip Description: Tools for building (Official) Debian CD set This package was formerly called YACS (for Yet Another CD Script). . - It's the official way of building CD for the potato release. + It's the official way of building CD since the potato release. . Its goal is to facilitate the creation of customized Debian CD set. diff --git a/tasks/empty b/tasks/empty new file mode 100644 index 00000000..0b3a9968 --- /dev/null +++ b/tasks/empty @@ -0,0 +1 @@ +/* The empty task */ diff --git a/tools/add_dirs b/tools/add_dirs index dcc1fd5d..54fa47fc 100755 --- a/tools/add_dirs +++ b/tools/add_dirs @@ -4,7 +4,7 @@ SECTIONS="admin base comm devel doc editors electronics games graphics \ hamradio interpreters libs mail math misc net news oldlibs \ - otherosfs shells sound tex text utils web x11" + otherosfs science shells sound tex text utils web x11" set -e @@ -29,6 +29,11 @@ do mkdir -p dists/$CODENAME/non-free/binary-all/$i mkdir -p dists/$CODENAME/non-free/source/$i fi + if [ -n "$LOCAL" ]; then + mkdir -p dists/$CODENAME/local/binary-$ARCH/$i + mkdir -p dists/$CODENAME/local/binary-all/$i + mkdir -p dists/$CODENAME/local/source/$i + fi done if [ -n "$NONUS" -a "$CODENAME" != "slink" ]; then @@ -52,4 +57,3 @@ fi mkdir .disk - diff --git a/tools/apt-selection b/tools/apt-selection index 67d0d9cc..fb64f267 100755 --- a/tools/apt-selection +++ b/tools/apt-selection @@ -51,6 +51,11 @@ if [ ! -e "$TDIR/$CODENAME-$ARCH/apt/sources.list" ]; then >> $TDIR/$CODENAME-$ARCH/apt/sources.list fi fi + # Local packages ... + if [ -n "$LOCAL" ]; then + echo "deb file:$MIRROR $CODENAME local" \ + >> $TDIR/$CODENAME-$ARCH/apt/sources.list + fi fi temp=$TDIR/$CODENAME-$ARCH/temp.apt-selection diff --git a/tools/cds2src b/tools/cds2src index 26f2f3d7..def22628 100755 --- a/tools/cds2src +++ b/tools/cds2src @@ -17,6 +17,7 @@ my $limit = $ENV{'SRCSIZELIMIT1'} || $deflimit; my $nonfree = $ENV{'NONFREE'}; my $nonus = $ENV{'NONUS'} || 0; my $complete = $ENV{'COMPLETE'} || 0; +my $local = $ENV{'LOCAL'} || 0; my $bdir = "$ENV{'TDIR'}/$ENV{'CODENAME'}-$ENV{'ARCH'}"; my $sdir = "$ENV{'TDIR'}/$ENV{'CODENAME'}-src"; @@ -63,6 +64,11 @@ if ($nonus and ($codename eq "slink")) { push @SOURCES, "$nonus/dists/$codename/non-US/source/Sources.gz"; } +if ($local and -e "$mirror/dists/$codename/local/source/Sources.gz") +{ + push @SOURCES, "$mirror/dists/$codename/local/source/Sources.gz"; +} + foreach (@SOURCES) { die "File `$_' cannot be found ..." if not -f; } diff --git a/tools/link.pl b/tools/link.pl index d9e49df9..88468875 100755 --- a/tools/link.pl +++ b/tools/link.pl @@ -7,6 +7,19 @@ my $link_verbose = $ENV{'VERBOSE'} || 0; sub good_link ($$) { my ($src, $dest) = @_; + + # Check if the destination directory does exist + my $ddir = $dest; + $ddir =~ s#/?[^/]+$##g; + if ($ddir eq "") + { + $ddir = "."; + } + if (! -d $ddir) # Create it if not + { + system("mkdir -p $ddir"); + } + # Link the files if ($symlink_farm) { print "Symlink: $dest => $src\n" if ($link_verbose >= 3); if (not symlink ($src, $dest)) { diff --git a/tools/list2cds b/tools/list2cds index 5c531a7a..4001100d 100755 --- a/tools/list2cds +++ b/tools/list2cds @@ -16,6 +16,7 @@ my $limit = $ENV{'SIZELIMIT1'} || $deflimit; my $nonfree = $ENV{'NONFREE'} || 0; my $nonus = $ENV{'NONUS'} || 0; +my $local = $ENV{'LOCAL'} || 0; my $complete = $ENV{'COMPLETE'} || 0; my $exclude = $ENV{'EXCLUDE'} || "$list.exclude"; diff --git a/tools/scanpackages b/tools/scanpackages index e432c842..2bd21e35 100755 --- a/tools/scanpackages +++ b/tools/scanpackages @@ -79,6 +79,29 @@ if [ -n "$NONUS" -a "$CODENAME" = "slink" ]; then done fi +if [ -n "$LOCAL" ]; then + if [ -e $MIRROR/dists/$CODNAME/local/binary-$ARCH/Release ]; then + cp $MIRROR/dists/$CODENAME/local/binary-$ARCH/Release \ + dists/$CODENAME/local/binary-$ARCH/ + fi + grep -v ^X-Medium $PREFIX.Packages-local \ + >dists/$CODENAME/local/binary-$ARCH/Packages + grep -v ^X-Medium $PREFIX.Packages-local | gzip --best \ + >dists/$CODENAME/local/binary-$ARCH/Packages.gz + + for i in $TDIR/$CODENAME-$ARCH/*.packages; do + dir=${i%%.packages} + n=${dir##$TDIR/$CODENAME-$ARCH/} + if [ $n -le $NUM ]; then + cat $dir.Packages-local \ + >>dists/$CODENAME/local/binary-$ARCH/Packages.cd + cat $dir.Packages-local | gzip --best \ + >>dists/$CODENAME/local/binary-$ARCH/Packages.cd.gz + fi + done +fi + + fi # Creates the temp Packages-$SECT files @@ -110,4 +133,10 @@ if [ -n "$NONUS" -a "$CODENAME" = "slink" ]; then > $PREFIX.Packages-non-US fi +if [ -n "$LOCAL" ]; then + dpkg-scanpackages -m "`cat .disk/info`" \ + dists/$CODENAME/local/binary-$ARCH \ + /dev/null > $PREFIX.Packages-local +fi + exit 0 diff --git a/tools/scansources b/tools/scansources index 17577585..d336c942 100755 --- a/tools/scansources +++ b/tools/scansources @@ -35,4 +35,9 @@ if [ -n "$NONUS" -a "$CODENAME" = "slink" ]; then | gzip --best > dists/$CODENAME/non-US/source/Sources.gz fi +if [ -n "$LOCAL" ]; then + dpkg-scansources dists/$CODENAME/local/source \ + | gzip --best > dists/$CODENAME/local/source/Sources.gz +fi + exit 0