Problems controlling the content on CD one 

http://groups.google.com/group/linux.debian.devel.cd/browse_thread/thread/7f2235181923c938

Newsgroups: linux.debian.devel.cd
Date: Fri, 16 Nov 2001

I'm building a custum debian CD for the norwegian linux for schools project, and am using debian-cd to do this. I've had some problems getting the build system to do what I want, but hoped I had this under control, Alas, something went wrong a few days ago. The CD I made yesterday do not boot (this could be a problem with the burning, so I'll investigate more), but a more serious problem is the fact that the CDs no longer contain all the packages I list in my task file. I've modified debian-cd like this:

Is there any reason why the packages listed in tasks/skolelinux would be missing on the first CD? Is there something I do wrong?

Notice, the directories in our local APT source had to be named dists/woody/local/binary-i386/non-official/. Is the non-official/ name really nesessary? I was unable to get it to work if I placed the packages in directories with other names.

 Index: build.sh
RCS file: /var/lib/cvs/skolelinux/src/debian-cd/build.sh,v
retrieving revision 1.1.1.1
retrieving revision 1.4
diff -u -3 -p -u -r1.1.1.1 -r1.4
--- build.sh    26 Aug 2001 11:45:50 -0000      1.1.1.1
+++ build.sh    11 Nov 2001 11:27:30 -0000      1.4
@@ -25,10 +25,10 @@ for CD in 1 2 3 4; do
        size=`eval echo '$'"BOOT_SIZE_${CD}"`
        [ "$size" = "" ] && size=0
        [ $CD = "1" ] && size=$(($size + $disks))
-       SIZE_ARGS="$SIZE_ARGS SIZELIMIT${CD}=$(((630 - $size) * 1024 *1024))"
+       SIZE_ARGS="$SIZE_ARGS SIZELIMIT${CD}=$(((593 - $size) * 1024 *1024))"
 done
-make list COMPLETE=1 $SIZE_ARGS SRCSIZELIMIT=$((635 * 1024 * 1024))
+make list COMPLETE=1 $SIZE_ARGS SRCSIZELIMIT=$((635 * 1024 * 1024)) TASK=tasks/skolelinux
 echo " ... building the images"
-make official_images
+make bin-official_images

 make imagesums
 Index: CONF.sh
RCS file: /var/lib/cvs/skolelinux/src/debian-cd/CONF.sh,v
retrieving revision 1.1.1.2
retrieving revision 1.12
diff -u -3 -p -u -r1.1.1.2 -r1.12
--- CONF.sh     21 Oct 2001 21:08:08 -0000      1.1.1.2
+++ CONF.sh     16 Nov 2001 17:44:15 -0000      1.12
@@ -27,7 +27,7 @@ export BASEDIR=`pwd`
 export CODENAME=woody

 # Version number, "2.2 r0", "2.2 r1" etc.
-export DEBVERSION="3.0 beta"
+export DEBVERSION="3.0 skole pr8"

 # Official or non-official set.
 # NOTE: THE "OFFICIAL" DESIGNATION IS ONLY ALLOWED FOR IMAGES AVAILABLE
@@ -45,10 +45,12 @@ export ARCH=`dpkg --print-installation-a
 #            images, however. Also, if you are using an NFS partition for
 #            some part of this, you must use this option.
 # Paths to the mirrors
-export MIRROR=/ftp/debian
+#export MIRROR=/ftp/debian
+export MIRROR=/skolelinux/developer/local0/debian/debian

 # Comment the following line if you don't have/want non-US
 #export NONUS=/ftp/debian-non-US
+export NONUS=/skolelinux/developer/local0/debian/debian-non-US

 # And this option will make you 2 copies of CD1 - one with all the
 # non-US packages on it, one with none. Useful if you're likely to
@@ -56,17 +58,20 @@ export MIRROR=/ftp/debian
 #export FORCENONUSONCD1=1

 # Path of the temporary directory
-export TDIR=/ftp/tmp
+#export TDIR=/ftp/tmp
+export TDIR=/skolelinux/developer/local0/ftp/tmp

 # Path where the images will be written
-export OUT=/rack/debian-cd
+#export OUT=/rack/debian-cd
+export OUT=/skolelinux/developer/local0/ftp/debian-cd

 # Where we keep the temporary apt stuff.
 # This cannot reside on an NFS mount.
-export APTTMP=/ftp/tmp/apt
+#export APTTMP=/ftp/tmp/apt
+export APTTMP=/skolelinux/developer/local0/ftp/tmp/apt

 # Do I want to have NONFREE merged in the CD set
-# export NONFREE=1
+export NONFREE=1

 # Do I want to have NONFREE on a separate CD (the last CD of the CD set)
 # WARNING: Don't use NONFREE and EXTRANONFREE at the same time !
@@ -75,12 +80,12 @@ export APTTMP=/ftp/tmp/apt
 # 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
+export LOCAL=1

 # If your local packages are not under $MIRROR, but somewhere else,
 # you can uncomment this line and edit to to point to a directory
-# containing dists/$CODENAME/local/binary-$ARCH
-# export LOCALDEBS=/home/joey/debian/va/debian
+# containing dists/$CODENAME/local/binary-$ARCH/non-official
+export LOCALDEBS=/local/ftp/skolelinux

 # If you want a <codename>-secured tree with a copy of the signed
 # Release.gpg and files listed by this Release file, then
@@ -102,6 +107,8 @@ export APTTMP=/ftp/tmp/apt
 # export MKISOFS=/usr/bin/mkisofs
 # export MKISOFS_OPTS="-r -T"          #For normal users
 # export MKISOFS_OPTS="-r -F . -T"     #For symlink farmers
+
+export MKISOFS=/usr/bin/mkhybrid

 # uncomment this to if you want to see more of what the Makefile is doing
 #export VERBOSE_MAKE=1

Petter Reinholdtsen

Problems controlling the content on CD one 

> I'll investigate more), but a more serious problem is the fact that
> the CDs no longer contain all the packages I list in my task file.

Packages will get dropped if they depend on some other pkg you don't have, or depend on a newer version of some pkg. Maybe an extra depend got added to a pkg or something.

Richard Hirst

Problems controlling the content on CD one 

> The following packages are now missing from the CD.  I have no idea
> why.

Did you include the packages in ../tasks/Debian_potato?

Philip Charles

Problems controlling the content on CD one 

> That might explain some of the packages missing, but not all of them.
> Some of the packages we make ourselves are missing.  Most of these
> packages do not depend on anything.

Check in the temporary dir for a file called log.list2cds, and check its content. Look for the name of missing packages … and read what is explained. You may find why your package wasn't included.

Raphael Hertzog

Problems controlling the content on CD one 

> Check in the temporary dir for a file called log.list2cds, and check its
> content. Look for the name of missing packages ... and read what is
> explained. You may find why your package wasn't included.

Thank you very much. Finally a way to debug this situation.

> You also have to make sure, that the indicated package are referenced
> in the Packages files (the local one I guess for your own packages).

This seem to be OK.

> Are you sure they disappeared, haven't they simply moved (from CD1
> to CD3 for example) ?

If I read the file log.list2cds correctly, the packages where moved to CD2. I'm not sure why, but I believe CD1 was full. What decide in which order the packages are added to the CDs? Which list of packages are used and in which order? I want to make sure our task list is used first.

Perhaps I need to reduce the list of "standard, required, important and base packages". I do not see the need for both v2.95 and v3.0 of GCC. Three different kernel versions (2.2.19, 2.2.10 and 2.4.12), paired with pcmcia-modules for completely different kernels (2.2.17 and 2.2.18-pre21) do not seem like a good idea.

Again, thank you for pointing me to the log file. :-)

Petter Reinholdtsen

Problems controlling the content on CD one 

> If I read the file log.list2cds correctly, the packages where moved to
> CD2.  I'm not sure why, but I believe CD1 was full.  What decide in
> which order the packages are added to the CDs?  Which list of packages
> are used and in which order?  I want to make sure our task list is
> used first.

The list is generated with the task file. The order is respected. However the dependency verification will always include the required dependencies before including the concerned package.

> Perhaps I need to reduce the list of "standard, required, important
> and base packages".  I do not see the need for both v2.95 and v3.0 of
> GCC.  Three different kernel versions (2.2.19, 2.2.10 and 2.4.12),
> paired with pcmcia-modules for completely different kernels (2.2.17
> and 2.2.18-pre21) do not seem like a good idea.

Yes, you can use an exclude file to limit the standard packages included.

Raphael Hertzog

Problems controlling the content on CD one 

> > Did you include the packages in ../tasks/Debian_potato?
> No.  I added a new file tasks/skolelinux, and modified build.sh to
> calle make like this:
>   make list COMPLETE=1 $SIZE_ARGS SRCSIZELIMIT=$((635 * 1024 * 1024)) \
>         TASK=tasks/skolelinux
> I'm btw using Woody packages, not potato.

This may help.

export EXCLUDE="$BASEDIR"/tasks/exclude-woody
export UNEXCLUDE2="$BASEDIR"/tasks/exclude-woody
(This will put the excluded packages on CD2)

Philip Charles

Building sid images with debian-cd 

http://groups.google.com/group/linux.debian.devel.cd/browse_thread/thread/9b7006b4628245cf

Newsgroups: linux.debian.devel.cd
Date: Mon, 19 Jan 2004

I'm trying to build sid isos but I'm unable to make them bootable since tools/boot/sid/boot-i386 is not present.

Are You able to produce sid bootable images ? If so can You please send me your CONF.sh and the proper sequence of make targets ?

Here's what I try:

make distclean
make mirrorcheck
make status
make bin-list TASK=tasks/Debian_sid
#make bootable
make packages
make bin-image CD=1

Here's CONF.sh

#
# This file will have to be sourced where needed
#

# Unset all optional variables first to start from a clean state
unset NONUS             || true
unset FORCENONUSONCD1   || true
unset NONFREE           || true
unset CONTRIB           || true
unset EXTRANONFREE      || true
unset LOCAL             || true
unset LOCALDEBS         || true
unset SECURED           || true
unset SECURITY          || true
unset BOOTDIR           || true
unset BOOTDISKS         || true
unset SYMLINK           || true
unset COPYLINK          || true
unset MKISOFS           || true
unset MKISOFS_OPTS      || true
unset ISOLINUX          || true
unset EXCLUDE           || true
unset SRCEXCLUDE        || true
unset NORECOMMENDS      || true
unset NOSUGGESTS        || true
unset DOJIGDO           || true
unset JIGDOCMD          || true
unset JIGDOTEMPLATEURL  || true
unset JIGDOFALLBACKURLS || true
unset JIGDOINCLUDEURLS  || true
unset JIGDOSCRIPT       || true
unset DEFBINSIZE        || true
unset DEFSRCSIZE        || true
unset FASTSUMS          || true
unset PUBLISH_URL       || true
unset PUBLISH_NONUS_URL || true
unset PUBLISH_PATH      || true
unset UDEB_INCLUDE      || true
unset UDEB_EXCLUDE      || true
unset BASE_INCLUDE      || true
unset BASE_EXCLUDE      || true
unset INSTALLER_CD      || true

# The debian-cd dir
# Where I am (hoping I'm in the debian-cd dir)
export BASEDIR=`pwd`

# Building woody cd set ...
export CODENAME=sid

# Version number, "2.2 r0", "2.2 r1" etc.
export DEBVERSION="3.0"

# Official or non-official set.
# NOTE: THE "OFFICIAL" DESIGNATION IS ONLY ALLOWED FOR IMAGES AVAILABLE
# ON THE OFFICIAL DEBIAN CD WEBSITE http://cdimage.debian.org[]
export OFFICIAL="Unofficial"
#export OFFICIAL="Official"
#export OFFICIAL="Official Beta"

# ... for arch
export ARCH="i386"

# IMPORTANT : The 4 following paths must be on the same partition/device.
#             If they aren't then you must set COPYLINK below to 1. This
#             takes a lot of extra room to create the sandbox for the ISO
#             images, however. Also, if you are using an NFS partition for
#             some part of this, you must use this option.
# Paths to the mirrors
export MIRROR=/data/mirrors/debian

# Comment the following line if you don't have/want non-US
#export NONUS=/ftp/debian-non-US

# And this option will make you 2 copies of CD1 - one with all the
# non-US packages on it, one with none. Useful if you're likely to
# need both.
#export FORCENONUSONCD1=1

# Path of the temporary directory
export TDIR=/data/mirrors/debian-tmp

# Path where the images will be written
export OUT=/data/mirrors/debian-cd

# Where we keep the temporary apt stuff.
# This cannot reside on an NFS mount.
export APTTMP=/data/mirrors/debian-tmp/apt

# Do I want to have NONFREE merged in the CD set
# export NONFREE=1

# Do I want to have CONTRIB merged in the CD set
export CONTRIB=1

# Do I want to have NONFREE on a separate CD (the last CD of the CD set)
# WARNING: Don't use NONFREE and EXTRANONFREE at the same time !
# export EXTRANONFREE=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

# If your local packages are not under $MIRROR, but somewhere else,
# you can uncomment this line and edit to to point to a directory
# containing dists/$CODENAME/local/binary-$ARCH
# export LOCALDEBS=/home/joey/debian/va/debian

# If you want a <codename>-secured tree with a copy of the signed
# Release.gpg and files listed by this Release file, then
# uncomment this line
# export SECURED=1

# Where to find the security patches.  This directory should be the
# top directory of a security.debian.org mirror.
#export SECURITY="$TOPDIR"/debian/debian-security

# Sparc only : bootdir (location of cd.b and second.b)
# export BOOTDIR=/boot

# Symlink farmers should uncomment this line :
# export SYMLINK=1

# Use this to force copying the files instead of symlinking or hardlinking
# them. This is useful if your destination directories are on a different
# partition than your source files.
# export COPYLINK=1

# Options
export MKISOFS=/usr/bin/mkisofs
export MKISOFS_OPTS="-r -T"             #For normal users
# export MKISOFS_OPTS="-r -F . -T"      #For symlink farmers

# ISOLinux support for multiboot on CD1 for i386
export ISOLINUX=1

# uncomment this to if you want to see more of what the Makefile is doing
export VERBOSE_MAKE=1

# uncoment this to make build_all.sh try to build a simple CD image if
# the proper official CD run does not work
ATTEMPT_FALLBACK=yes

# Set your disk size here in MB. Used in calculating package and
# source file layouts in build.sh and build_all.sh. Defaults are for
# CD-R, try ~4600 for DVD-R.
export DEFBINSIZE=630
export DEFSRCSIZE=635

# We don't want certain packages to take up space on CD1...
#export EXCLUDE="$BASEDIR"/tasks/exclude-potato
# ...but they are okay for other CDs (UNEXCLUDEx == may be included on CD >= x)
#export UNEXCLUDE2="$BASEDIR"/tasks/unexclude-CD2-potato
# Any packages listed in EXCLUDE but not in any UNEXCLUDE will be
# excluded completely.

# We also exclude some source packages
#export SRCEXCLUDE="$BASEDIR"/tasks/exclude-src-potato

# Set this if the recommended packages should be skipped when adding
# package on the CD.  The default is 'false'.
#export NORECOMMENDS=1

# Set this if the suggested packages should be skipped when adding
# package on the CD.  The default is 'true'.
#export NOSUGGESTS=1

# Produce jigdo files:
# 0/unset = Don't do jigdo at all, produce only the full iso image.
# 1 = Produce both the iso image and jigdo stuff.
# 2 = Produce ONLY jigdo stuff by piping mkisofs directly into jigdo-file,
#     no temporary iso image is created (saves lots of disk space).
#     NOTE: The no-temp-iso will not work for (at least) alpha and powerpc
#     since they need the actual .iso to make it bootable. For these archs,
#     the temp-iso will be generated, but deleted again immediately after the
#     jigdo stuff is made; needs temporary space as big as the biggest image.
#export DOJIGDO=2
#
# jigdo-file command & options
# Note: building the cache takes hours, so keep it around for the next run
#export JIGDOCMD="/usr/local/bin/jigdo-file --cache=$HOME/jigdo-cache.db"
#
# HTTP/FTP URL for directory where you intend to make the templates
# available. You should not need to change this; the default value ""
# means "template in same dir as the .jigdo file", which is usually
# correct. If it is non-empty, it needs a trailing slash. "%ARCH%"
# will be substituted by the current architecture.
#export JIGDOTEMPLATEURL=""
#
# Name of a directory on disc to create data for a fallback server in.
# Should later be made available by you at the URL given in
# JIGDOFALLBACKURLS. In the directory, two subdirs named "Debian" and
# "Non-US" will be created, and filled with hard links to the actual
# files in your FTP archive. Because of the hard links, the dir must
# be on the same partition as the FTP archive! If unset, no fallback
# data is created, which may cause problems - see README.
#export JIGDOFALLBACKPATH="$(OUT)/snapshot/"
#
# Space-separated list of label->URL mappings for "jigdo fallback
# server(s)" to add to .jigdo file. If unset, no fallback URL is
# added, which may cause problems - see README.
#export JIGDOFALLBACKURLS="Debian=http://myserver/snapshot/Debian/[] Non-US=http://myserver/snapshot/Non-US/[]"
#
# Space-separated list of "include URLs" to add to the .jigdo file.
# The included files are used to provide an up-to-date list of Debian
# mirrors to the jigdo _GUI_application_ (_jigdo-lite_ doesn't support
# "[Include ...]").
export JIGDOINCLUDEURLS="http://cdimage.debian.org/debian-cd/debian-servers.jigdo[]"
#
# $JIGDOTEMPLATEURL and $JIGDOINCLUDEURLS are passed to
# "tools/jigdo_header", which is used by default to generate the
# [Image] and [Servers] sections of the .jigdo file. You can provide
# your own script if you need the .jigdo file to contain different
# data.
#export JIGDOSCRIPT="myscript"

# If set, use the md5sums from the main archive, rather than calculating
# them locally
export FASTSUMS=1

# A couple of things used only by publish_cds, so it can tweak the
# jigdo files, and knows where to put the results.
# You need to run publish_cds manually, it is not run by the Makefile.
export PUBLISH_URL="http://cdimage.debian.org/jigdo-area[]"
export PUBLISH_NONUS_URL="http://non-US.cdimage.debian.org/jigdo-area[]"
export PUBLISH_PATH="/home/jigdo-area/"

# Where to find the boot disks
#export BOOTDISKS=$TOPDIR/ftp/skolelinux/boot-floppies

# File with list of packages to include when fetching modules for the
# first stage installer (debian-installer). One package per line.
# Lines starting with '#' are comments.  The package order is
# important, as the packages will be installed in the given order.
#export UDEB_INCLUDE="$BASEDIR"/data/$CODENAME/udeb_include

# File with list of packages to exclude as above.
#export UDEB_EXCLUDE="$BASEDIR"/data/$CODENAME/udeb_exclude

# File with list of packages to include when running debootstrap from
# the first stage installer (currently only supported in
# debian-installer). One package per line.  Lines starting with '#'
# are comments.  The package order is important, as the packages will
# be installed in the given order.
#export BASE_INCLUDE="$BASEDIR"/data/$CODENAME/base_include

# File with list of packages to exclude as above.
#export BASE_EXCLUDE="$BASEDIR"/data/$CODENAME/base_exclude

# Only put the installer onto the cd (set NORECOMMENDS,... as well).
# INSTALLER_CD=0: nothing special (default)
# INSTALLER_CD=1: just add debian-installer (use TASK=tasks/debian-installer)
# INSTALLER_CD=2: add d-i and base (use TASK=tasks/debian-installer+kernel)
#export INSTALLER_CD=0

Delian Krustev

Note No answer. T

documented on: 2006.06.06