resync with 2.1.90
This commit is contained in:
parent
e83ef58217
commit
da0a22f23c
|
@ -0,0 +1,181 @@
|
|||
YACS - Yet Another CD Script :-)
|
||||
================================
|
||||
|
||||
Copyright 1999 Raphaël Hertzog <hertzog@debian.org>
|
||||
This set of tools is licensed under the General Public License
|
||||
version 2 or any later version. You can find it in
|
||||
/usr/share/common-licenses/GPL on a Debian GNU system.
|
||||
|
||||
Thanks to Steve McIntyre <stevem@chiark.greenend.org.uk> for his
|
||||
work on slink_cd/debian_cd. Some ideas come from his script.
|
||||
|
||||
What is needed ?
|
||||
================
|
||||
Software :
|
||||
- the apt-get (>= 0.3.11.1) tool
|
||||
- perl (>= 5.004)
|
||||
- bash (or another POSIX shell)
|
||||
- make
|
||||
- mkisofs/mkhybrid
|
||||
- dpkg-multicd package (for dpkg-scanpackages with -m option)
|
||||
- the perl MD5 module
|
||||
- dpkg-dev (>= 1.4.1.6) (for dpkg-scansources)
|
||||
Other :
|
||||
- lots of free space on your disks
|
||||
- a Debian mirror (on a partition where you can write, if you can't write
|
||||
on it then you may try to use a symlink farm but it's not the
|
||||
recommended way to build Debian CDs)
|
||||
|
||||
-------------------------------
|
||||
- GENERATING DEBIAN CD IMAGES -
|
||||
-------------------------------
|
||||
|
||||
For people that do not have time, here's the quick explanation :
|
||||
================================================================
|
||||
|
||||
Edit the CONF.sh and change the PATHs for the mirror and so on.
|
||||
$ vim CONF.sh
|
||||
$ . CONF.sh
|
||||
$ make potato_status
|
||||
$ make list COMPLETE=1 SIZELIMIT1=576716800
|
||||
$ make official_images
|
||||
[ or if you want only binary images :
|
||||
$ make bin-official_images ]
|
||||
|
||||
But you really should consider reading further for more information.
|
||||
|
||||
How to build a CD set - step by step
|
||||
====================================
|
||||
|
||||
If not yet done, first decompact the archive and cd to the "yacs" directory.
|
||||
|
||||
The process of building a CD is decomposed as follow :
|
||||
|
||||
- first configure what is needed in CONF.sh and source it
|
||||
in your shell
|
||||
$ . CONF.sh
|
||||
The exported environment variables will be used by all the
|
||||
tools involved here (Makefiles, perl scripts, shell scripts).
|
||||
|
||||
If you want to build CD images for more than one arch, you will
|
||||
have to build them one after the other (you may use a shell
|
||||
script for this).
|
||||
|
||||
- now we'll check if your mirror is ok (with good Packages files) :
|
||||
$ make mirrorcheck
|
||||
|
||||
- then you will have to launch this for initializing the
|
||||
temporary directory used for the build :
|
||||
$ make status
|
||||
If this has failed then you'll have to launch :
|
||||
$ make correctstatus
|
||||
However note that make status should never fail if it is
|
||||
used for building a CD set for the stable release ...
|
||||
|
||||
NOTE: Actually (11/7/99) potato is in a bad state, I advise you
|
||||
to use the potato.status file in the data dir as your status file,
|
||||
to do so you can launch :
|
||||
$ make potato_status
|
||||
|
||||
- now you can decide what you want on your CDs
|
||||
$ make list TASK=tasks/debian-2.2 COMPLETE=1
|
||||
or
|
||||
$ make list TASK=tasks/gnome COMPLETE=0 SIZELIMIT=576716800
|
||||
or
|
||||
$ export NONFREE=1; make list TASK=tasks/kde COMPLETE=1
|
||||
or for something like an official image for the USA :
|
||||
$ make COMPLETE=1 NONUS=0 NONFREE=0 SIZELIMIT1=576716800
|
||||
.... take a look at the file tasks/* to see the options you can have :)
|
||||
|
||||
You can change the behaviour of this command with the following
|
||||
variables :
|
||||
- if NONUS is set, then packages from non-US will be allowed (remember
|
||||
that the value of NONUS must be the path to the non-US mirror
|
||||
if you have one)
|
||||
- if NONFREE is set, then packages from non-free will be allowed
|
||||
(NONFREE must be exported to all sub-shells)
|
||||
- if COMPLETE is set, all packages that are not listed in the
|
||||
selected task file will be included at the end
|
||||
- if SIZELIMIT is set, it will be used as the maximum size that
|
||||
we can put into each CD
|
||||
- if SIZELIMIT<X> (with <X> beeing a integer) is set, it will be used
|
||||
as the maximum size of the X'th binary CD. SIZELIMIT<X> overrides
|
||||
SIZELIMIT ...
|
||||
- if SRCSIZELIMIT is set, it's used as the maximum size for source CD
|
||||
- if SRCSIZELIMIT<X> (with <X> beeing an integer) is set, it will be
|
||||
used as the maximum size of the X'th source CD
|
||||
|
||||
This target calls the targets "bin-list" and "src-list" that can be used to
|
||||
build only binary CDs or only source CDs.
|
||||
|
||||
- it may be time to add the disks-arch stuff and to make the CDs bootable
|
||||
$ make bootable
|
||||
This does affect only the binary CDs.
|
||||
|
||||
- now, we'll add the binary packages to the temporary tree :
|
||||
$ make packages
|
||||
|
||||
- and we'll add the sources to the temporary tree :
|
||||
$ make sources
|
||||
|
||||
- if you want to install additional files :
|
||||
make bin-extras CD=1 ROOTSRC=/home/ftp/ DIR=goodies/wordperfect
|
||||
make src-extras CD=3 ROOTSRC=/home/ftp/ DIR=goodies/kernel-2.3
|
||||
|
||||
The first will copy /home/ftp/goodies/wordperfect/ on the first binary
|
||||
CD. It will be in <root of the cd>/goodies/wordperfect ... you can call
|
||||
make extras multiple times if you need more. Please note that
|
||||
the files to be copied should be on the same partition than
|
||||
your mirror (unless you use a symlink farm).
|
||||
|
||||
If you want to do customize your CD even more, you can use the hook
|
||||
system. Read below about them.
|
||||
|
||||
- We can add an md5sum.txt file on each CD to enable users to check their
|
||||
files :
|
||||
$ make md5list
|
||||
This does call the targets 'bin-md5list' and 'src-md5list'. You can
|
||||
choose to call only bin-md5list if you're building only binary images.
|
||||
|
||||
- now we can create the images
|
||||
$ make images
|
||||
If you don't have enough space for all images, you can generate
|
||||
only one image (of the second binary CD for example) with :
|
||||
$ make bin-image CD=2
|
||||
Of course if you want to build all binary images you'll use :
|
||||
$ make bin-images
|
||||
And "make src-images" will generate the sources images.
|
||||
|
||||
|
||||
About the hook system
|
||||
=====================
|
||||
|
||||
A hook script can be executed at different times. You can specify the
|
||||
script by setting the HOOK variable to the script filename. It will
|
||||
get 2 arguments, the first is the CD number. The second depends on
|
||||
where/when the hook script is called. It can be 'before-scanpackages'
|
||||
or 'before-mkisofs' (their values are explicit ...). When the script
|
||||
is called, the current directory will be the temporary directory used for
|
||||
the build (aka $TDIR/$CODENAME-$ARCH).
|
||||
|
||||
There are hooks only for binary CDs at the present time. If HOOK is not
|
||||
set, it will look for a script $BASEDIR/tools/$CODENAME.hook.
|
||||
|
||||
|
||||
About the symlink farm
|
||||
======================
|
||||
|
||||
If you don't have write access on the disk where you have the mirror
|
||||
or if for another reason hardlink cannot be used, you can try to
|
||||
use a symlink farm. Instead of having real files, your temporary tree
|
||||
will be filled with symlinks that mkhybrid will change into files when
|
||||
it will build the image. You'll need to use a special options. You
|
||||
have 2 lines of options in CONF.sh as examples.
|
||||
|
||||
I've never tested the symlink farm ... it may well generate unusable
|
||||
images. Don't use it for ISO images that will used by many users.
|
||||
|
||||
Note that you will also need a patched mkhybrid that does support the
|
||||
-F option. Have a look here about it :
|
||||
http://www.chiark.greenend.org.uk/~stevem/DebianCD/
|
||||
|
Loading…
Reference in New Issue