* 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.
This commit is contained in:
Raphaël Hertzog 2000-03-07 18:59:31 +00:00
parent 93f96e4f49
commit 92504f2149
13 changed files with 114 additions and 10 deletions

10
CONF.sh
View File

@ -12,11 +12,14 @@ export CODENAME=potato
# ... for arch # ... for arch
export ARCH=i386 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 # Paths to the mirrors
export MIRROR=/ftp/debian export MIRROR=/ftp/debian
# Comment the following line if you don't have/want non-US # Comment the following line if you don't have/want non-US
export NONUS=/ftp/debian-non-US export NONUS=/ftp/debian-non-US
# Path of the temporary directory # Path of the temporary directory
export TDIR=/ftp/tmp export TDIR=/ftp/tmp
@ -26,6 +29,11 @@ export OUT=/rack/debian-cd
# Do I want to have NONFREE # 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) # Sparc only : bootdir (location of cd.b and second.b)
#export BOOTDIR= #export BOOTDIR=

20
README
View File

@ -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 have to build them one after the other (you may use a shell
script for this). 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) : - now we'll check if your mirror is ok (with good Packages files) :
$ make mirrorcheck $ make mirrorcheck
@ -160,6 +165,21 @@ The process of building a CD is decomposed as follow :
$ make imagesums $ 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/<section>.
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 Additionnal targets
=================== ===================

10
debian/CONF.sh vendored
View File

@ -11,11 +11,14 @@ export CODENAME=potato
# ... for arch # ... for arch
export ARCH=`dpkg --print-installation-architecture` 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 # Paths to the mirrors
export MIRROR=/home/ftp/debian export MIRROR=/home/ftp/debian
# Comment the following line if you don't have/want non-US # Comment the following line if you don't have/want non-US
# export NONUS=/home/ftp/debian-non-US # export NONUS=/home/ftp/debian-non-US
# Path of the temporary directory # Path of the temporary directory
export TDIR=/home/ftp/tmp export TDIR=/home/ftp/tmp
@ -25,6 +28,11 @@ export OUT=/home/ftp/debian-cd
# Do I want to have NONFREE # 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) # Sparc only : bootdir (location of cd.b and second.b)
#export BOOTDIR= #export BOOTDIR=

8
debian/changelog vendored
View File

@ -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 -> This change will have to be removed when all arch will have synced
boot floppies. boot floppies.
* Changes to tools/potato/boot-i386 for support of the 2.2.3 bootdisks. * 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 * In Makefile, if there are multiple versions of the
bootdisks in the source tree, the section "boot:" seems to get bootdisks in the source tree, the section "boot:" seems to get
confused. Not fixed. Temporary solution, move old i386 boot 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 * 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 is on CVS and that patch should apply on the CVS tree not on the
source package available on the Debian FTP. 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 <hertzog@debian.org> Sat, 19 Feb 2000 18:32:22 +0100 -- Raphael Hertzog <hertzog@debian.org> Tue, 7 Mar 2000 19:03:44 +0100
debian-cd (2.1.91) unstable; urgency=low debian-cd (2.1.91) unstable; urgency=low

6
debian/control vendored
View File

@ -2,17 +2,17 @@ Source: debian-cd
Section: contrib/admin Section: contrib/admin
Priority: extra Priority: extra
Maintainer: Raphael Hertzog <hertzog@debian.org> Maintainer: Raphael Hertzog <hertzog@debian.org>
Standards-Version: 3.0.1 Standards-Version: 3.1.1
Package: debian-cd Package: debian-cd
Architecture: all 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 Recommends: lha, unzip
Description: Tools for building (Official) Debian CD set Description: Tools for building (Official) Debian CD set
This package was formerly called YACS (for Yet Another CD This package was formerly called YACS (for Yet Another CD
Script). 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 Its goal is to facilitate the creation of customized Debian
CD set. CD set.

1
tasks/empty Normal file
View File

@ -0,0 +1 @@
/* The empty task */

View File

@ -4,7 +4,7 @@
SECTIONS="admin base comm devel doc editors electronics games graphics \ SECTIONS="admin base comm devel doc editors electronics games graphics \
hamradio interpreters libs mail math misc net news oldlibs \ 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 set -e
@ -29,6 +29,11 @@ do
mkdir -p dists/$CODENAME/non-free/binary-all/$i mkdir -p dists/$CODENAME/non-free/binary-all/$i
mkdir -p dists/$CODENAME/non-free/source/$i mkdir -p dists/$CODENAME/non-free/source/$i
fi 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 done
if [ -n "$NONUS" -a "$CODENAME" != "slink" ]; then if [ -n "$NONUS" -a "$CODENAME" != "slink" ]; then
@ -52,4 +57,3 @@ fi
mkdir .disk mkdir .disk

View File

@ -51,6 +51,11 @@ if [ ! -e "$TDIR/$CODENAME-$ARCH/apt/sources.list" ]; then
>> $TDIR/$CODENAME-$ARCH/apt/sources.list >> $TDIR/$CODENAME-$ARCH/apt/sources.list
fi fi
fi fi
# Local packages ...
if [ -n "$LOCAL" ]; then
echo "deb file:$MIRROR $CODENAME local" \
>> $TDIR/$CODENAME-$ARCH/apt/sources.list
fi
fi fi
temp=$TDIR/$CODENAME-$ARCH/temp.apt-selection temp=$TDIR/$CODENAME-$ARCH/temp.apt-selection

View File

@ -17,6 +17,7 @@ my $limit = $ENV{'SRCSIZELIMIT1'} || $deflimit;
my $nonfree = $ENV{'NONFREE'}; my $nonfree = $ENV{'NONFREE'};
my $nonus = $ENV{'NONUS'} || 0; my $nonus = $ENV{'NONUS'} || 0;
my $complete = $ENV{'COMPLETE'} || 0; my $complete = $ENV{'COMPLETE'} || 0;
my $local = $ENV{'LOCAL'} || 0;
my $bdir = "$ENV{'TDIR'}/$ENV{'CODENAME'}-$ENV{'ARCH'}"; my $bdir = "$ENV{'TDIR'}/$ENV{'CODENAME'}-$ENV{'ARCH'}";
my $sdir = "$ENV{'TDIR'}/$ENV{'CODENAME'}-src"; 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"; 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) { foreach (@SOURCES) {
die "File `$_' cannot be found ..." if not -f; die "File `$_' cannot be found ..." if not -f;
} }

View File

@ -7,6 +7,19 @@ my $link_verbose = $ENV{'VERBOSE'} || 0;
sub good_link ($$) { sub good_link ($$) {
my ($src, $dest) = @_; 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) { if ($symlink_farm) {
print "Symlink: $dest => $src\n" if ($link_verbose >= 3); print "Symlink: $dest => $src\n" if ($link_verbose >= 3);
if (not symlink ($src, $dest)) { if (not symlink ($src, $dest)) {

View File

@ -16,6 +16,7 @@ my $limit = $ENV{'SIZELIMIT1'} || $deflimit;
my $nonfree = $ENV{'NONFREE'} || 0; my $nonfree = $ENV{'NONFREE'} || 0;
my $nonus = $ENV{'NONUS'} || 0; my $nonus = $ENV{'NONUS'} || 0;
my $local = $ENV{'LOCAL'} || 0;
my $complete = $ENV{'COMPLETE'} || 0; my $complete = $ENV{'COMPLETE'} || 0;
my $exclude = $ENV{'EXCLUDE'} || "$list.exclude"; my $exclude = $ENV{'EXCLUDE'} || "$list.exclude";

View File

@ -79,6 +79,29 @@ if [ -n "$NONUS" -a "$CODENAME" = "slink" ]; then
done done
fi 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 fi
# Creates the temp Packages-$SECT files # Creates the temp Packages-$SECT files
@ -110,4 +133,10 @@ if [ -n "$NONUS" -a "$CODENAME" = "slink" ]; then
> $PREFIX.Packages-non-US > $PREFIX.Packages-non-US
fi fi
if [ -n "$LOCAL" ]; then
dpkg-scanpackages -m "`cat .disk/info`" \
dists/$CODENAME/local/binary-$ARCH \
/dev/null > $PREFIX.Packages-local
fi
exit 0 exit 0

View File

@ -35,4 +35,9 @@ if [ -n "$NONUS" -a "$CODENAME" = "slink" ]; then
| gzip --best > dists/$CODENAME/non-US/source/Sources.gz | gzip --best > dists/$CODENAME/non-US/source/Sources.gz
fi fi
if [ -n "$LOCAL" ]; then
dpkg-scansources dists/$CODENAME/local/source \
| gzip --best > dists/$CODENAME/local/source/Sources.gz
fi
exit 0 exit 0