* 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
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=

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
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/<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
===================

12
debian/CONF.sh vendored
View File

@ -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=

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
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 <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

6
debian/control vendored
View File

@ -2,17 +2,17 @@ Source: debian-cd
Section: contrib/admin
Priority: extra
Maintainer: Raphael Hertzog <hertzog@debian.org>
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.

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 \
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

View File

@ -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

View File

@ -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;
}

View File

@ -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)) {

View File

@ -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";

View File

@ -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

View File

@ -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