Date: Thu, 14 May 1998 09:29:11 +0200 From: Andreas Jellinghaus <aj@dungeon.inka.de> To: debian-devel@lists.debian.org Subject: new debian-cd scripts i rewrote the old debian-cd scripts to a new all improved makefile. here is my version 0.1. Features : - will work without the "-x" exclude option of mkisofs. This option was removed in newer mkisofs version (which have now joilet fs - could be usefull). - support for adding non-free, non-US and other stuff. The official debian cdrom should not include this, but many cd vendors want to add non-US and parts of non-free. They will do it anyway, so we should make sure, that these cdroms will not be broken. - all cd's are bootable Content : "binary" hamm/hamm/binary-ARCH,binary-all,disks-ARCH hamm/source/x11, doc/, tools/ "source" hamm/source/ (without x11 - everything did not fit) "misc" hamm/contrib/binary-ARCH,binary-all,disks-ARCH,source project/, indices/ optional : non-US optional : non-free (selected packages) optional : mirror/ (a dir where things could be like kernel source (2.0 + 2.1), netscape, mozilla, kde, whatever-you-want-to-include) TODO: - write a script to check mirrors (all files present ? with correct md5sum ? Packages = Packages.gz ? ...) - oops there are bugs in the contrib/ and non-free/ section, which will include all architectures present. - improve the readme files (not included in this posting :-(( my goal is tp get rid of the current, ugly shell scripts, and to create a better way to create cdroms. debian cd's may not be broken, and we can write software to make sure they are ok. problems : can dselect/apt handle a machine with one cdrom drive, but two binary cds ? not even main+contrib will fit on one cd. and at least non-US will be included by european distributors. andreas ---- Makefile include Configuration SHELL=/bin/sh binary: .mkisofs rm -rf $(TMPDIR) mkdir $(TMPDIR) $(bootdir) mkdir $(TMPDIR)/debian (cd $(ARCHIVE); cp -dpRPl dists $(TMPDIR)/debian); (cd $(ARCHIVE); cp -dpRPl $(CODENAME)/$(CODENAME)/binary-$(ARCH)\ $(TMPDIR)/debian); (cd $(ARCHIVE); cp -dpRPl $(CODENAME)/$(CODENAME)/binary-all\ $(TMPDIR)/debian); (cd $(ARCHIVE); cp -dpRPl $(CODENAME)/$(CODENAME)/disks-$(ARCH)\ $(TMPDIR)/debian); (cd $(ARCHIVE); cp -dpRPl tools $(TMPDIR)/debian); (cd $(ARCHIVE); cp -dpRPl doc $(TMPDIR)/debian); (cd $(ARCHIVE); cp -dpRPl README* $(TMPDIR)/debian); # did not fit on the source cdrom (cd $(ARCHIVE); cp -dpRPl $(CODENAME)/$(CODENAME)/source/x11 $(TMPDIR)/debian) todos < text/binary-cd/README.txt > $(TMPDIR)/README.txt $(MKISOFS) -V "$(VOLI) Binary" \ -b boot/resc1440.bin -c boot/boot.catalog \ -o $(IMAGEPATH)/binary.iso $(TMPDIR) rm -rf $(TMPDIR) source: .mkisofs rm -rf $(TMPDIR) mkdir $(TMPDIR) $(bootdir) mkdir $(TMPDIR)/debian (cd $(ARCHIVE); cp -dpRPl $(CODENAME)/$(CODENAME)/source\ $(TMPDIR)/debian); # everything did not fit rm -rf $(TMPDIR)/debian/$(CODENAME)/$(CODENAME)/source/x11 todos < text/source-cd/README.txt > $(TMPDIR)/README.txt $(MKISOFS) -V "$(VOLI) Source" \ -b boot/resc1440.bin -c boot/boot.catalog \ -o $(IMAGEPATH)/source.iso $(TMPDIR) rm -rf $(TMPDIR) misc: .mkisofs rm -rf $(TMPDIR) mkdir $(TMPDIR) $(bootdir) mkdir $(TMPDIR)/debian mkdir $(TMPDIR)/debian/$(CODENAME) (cd $(ARCHIVE); cp -dpRPl dists $(TMPDIR)/debian); (cd $(ARCHIVE); cp -dpRPl project $(TMPDIR)/debian) (cd $(ARCHIVE); cp -dpRPl indices $(TMPDIR)/debian) (cd $(ARCHIVE); cp -dpRPl $(CODENAME)/contrib $(TMPDIR)/debian) # optional : include non-US ifneq "$(NON-US)" "" mkdir $(TMPDIR)/debian/$(CODENAME)/non-US (cd $(NON-US); cp -dpRl * $(TMPDIR)/debian/$(CODENAME)/non-US) endif # optional : include non-free ifneq "$(NON-FREE)" "" (cd $(ARCHIVE); \ cp -dpRPl $(foreach pkg,$(NON-FREE),$(CODENAME)/non-free/binary-$(ARCH)/*/$(pkg)_*) $(TMPDIR)/debian) cp -dpRPl $(foreach pkg,$(NON-FREE),$(CODENAME)/non-free/binary-all/*/$(pkg)_*) $(TMPDIR)/debian) cp -dpRPl $(foreach pkg,$(NON-FREE),$(CODENAME)/non-free/source/*/$(pkg)_*) $(TMPDIR)/debian) (cd $(TMPDIR)/debian/$(CODENAME)/non-free; dpkg-scanpackages . . \ dists/$(CODENAME) > binary-$(ARCH)/Packages; \ cat binary-$(ARCH)/Packages |gzip -9 \ > binary-$(ARCH)/Packages.gz) endif ifneq "$(MIRROR)" "" mkdir $(TMPDIR)/mirror (cd $(MIRROR); cp -dpRPl * $(TMPDIR)/mirror) endif todos < text/plus-cd/README.txt > $(TMPDIR)/README.txt $(MKISOFS) -V "$(VOLI) Misc" \ -b boot/resc1440.bin -c boot/boot.catalog \ -o $(IMAGEPATH)/misc.iso $(TMPDIR) rm -rf $(TMPDIR) .mkisofs: echo ABST="$(ABST)" >> .mkisofs echo APPI="$(APPI)" > .mkisofs echo BIBL="$(BIBL)" >> .mkisofs echo COPY="$(COPY)" >> .mkisofs echo PREP="$(PREP)" >> .mkisofs echo PUBL="$(PUBL)" >> .mkisofs echo SYSI="$(SYSI)" >> .mkisofs echo VOLS="$(VOLS)" >> .mkisofs define bootdir -mkdir -m 755 $(TMPDIR)/boot cp $(RELEASE)/$(CODENAME)/disks-$(ARCH)/current/linux \ $(TMPDIR)/boot cp $(RELEASE)/$(CODENAME)/disks-$(ARCH)/current/root.bin \ $(TMPDIR)/boot cp $(RELEASE)/$(CODENAME)/disks-$(ARCH)/current/resc1440.bin \ $(TMPDIR)/boot rm -rf tmp (mkdir tmp; cd tmp; unzip $(ARCHIVE)/tools/lodlin*.zip) cp tmp/*/*.EXE $(TMPDIR)/boot rm -rf tmp (echo "@ echo off" ; \ echo "rem Flush any write-cached disk blocks before we leave DOS. " ; \ echo "smartdrv /c" ; \ echo "loadlin.exe linux root=/dev/ram ro initrd=root.bin" ; \ )|todos > $(TMPDIR)/boot/boot.bat cp $(RELEASE)/$(CODENAME)/disks-$(ARCH)/current/install* $(TMPDIR) endef ---- Configuration # Architecture ARCH=i386 # TMPDIR, must be on the same partition as your ftp mirror TMPDIR=/export/mirror/tmpdir # Pathname to the archive. ARCHIVE=/export/mirror/debian # Code-name of the release. CODENAME=hamm # Pathname to the release. RELEASE=$(ARCHIVE)/$(CODENAME) # Pathname to the target directory, where the ISO filesystems will be placed. #IMAGEPATH=/export/samba/admin IMAGEPATH=/nethome/data # Program to create the image, with parameters # -K is a kludge to add 16K to the end. This makes up for a # Linux read-ahead problem that still exists as of 2.1.30 using # the loop mount, and maybe off of CD as well. MKISOFS=mkisofs -K -a -r -T -v # optional : include non-US NON-US=/export/mirror/debian-non-US/$(CODENAME) # optional : include packages from non-free #NON-FREE=amp biss chimera chktex circus cthugha cucipop dgs dgs-dev doc++ \ doc-html-w3 dvi2tty epan ethiop ezlm-source festival festlex-cmu \ festlex-oald festlex-poslex festvox-don festvox-kdlpc16k festvox-kdlpc8k \ fftw1 gfont giftrans gravitywars gs-aladdin html2latex hwb lclint \ libcgic1 libcgic1-altdev libcgicg1 libcgicg1-dev libgd-perl libgd1 \ libgd1-altdev libgd1g libgd1g-dev libjpeg-gif mcvert mirror mpg123 musixtex \ musixtex-doc mysql-base mysql-bench mysql-dev mysql-doc mysql-manual \ mysql-server ncftp ncompress nedit netpbm-nonfree newsgate noweb ocal \ optimizer opustex pdl qmail-src qt-doc qt1g qt1g qt1g-dev serialmail-src \ snns snns-doc swi-prolog tatctae tetex-french tgif tkdiff tripwire \ ucbmpeg ucbmpg-play unarj wwwcount xacc-smotif xanim xautolock \ xfractint xpostitplus xtrkcad xzx zoo # optional : include some other files on the third cdrom in /mirror MIRROR=/export/mirror/mirror # CDROM INFORMATION # ABST The abstract information, often the name of a file # on the disc containing an abstract. There is space # in the disc for 37 characters of information. ABST=README.txt # APPI The application identifier should describe the # application that will be on the disc. There is # space on the disc for 128 characters of informa # tion. May be overridden using the -A command line # option. APPI=Debian GNU/Linux 2.0 # BIBL The bibliographic information, often the name of a # file on the disc containing a bibliography. There # is space in the disc for 37 characters of information. BIBL= # COPY The copyright information, often the name of a file # on the disc containing the copyright notice. There # is space in the disc for 37 characters of informa # tion. COPY=Copyrighted by SPI and others. # PREP This should describe the preparer of the CDROM, # usually with a mailing address and phone number. # There is space on the disc for 128 characters of # information. May be overridden using the -p com # mand line option. PREP=Andreas Jellinghaus <aj@dungeon.inka.de> # PUBL This should describe the publisher of the CDROM, # usually with a mailing address and phone number. # There is space on the disc for 128 characters of # information. PUBL=Andreas Jellinghaus <aj@dungeon.inka.de> # SYSI The System Identifier. There is space on the disc # for 32 characters of information. SYSI=Linux # VOLI The Volume Identifier. There is space on the disc # for 32 characters of information. VOLI= # VOLS The Volume Set Name. There is space on the disc # for 278 characters of information. VOLS=Debian GNU/Linux 2.0 . A distribution of a free-software Linux system. \ For information, please see http://www.debian.org/ . \ Sun Apr 26 12:19:04 CEST 1998 -- To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org