diff --git a/Makefile b/Makefile index 11aaf152..3547134a 100755 --- a/Makefile +++ b/Makefile @@ -66,9 +66,6 @@ endif ifndef DOJIGDO export DOJIGDO=0 endif -ifndef JIGDOSCRIPT -JIGDOSCRIPT=$(BASEDIR)/tools/jigdo_header -endif # Netinst/businesscard CD have different udeb_include and udeb_exclude files ifndef UDEB_INCLUDE @@ -111,6 +108,9 @@ strip_nonus_bin=$(BASEDIR)/tools/strip-nonUS-bin add_secured=$(BASEDIR)/tools/add_secured md5sum=md5sum fastsums=$(BASEDIR)/tools/fast_sums +jigdo_cleanup=$(BASEDIR)/tools/jigdo_cleanup +grab_md5=$(BASEDIR)/tools/grab_md5 +dedicated-src=$(BASEDIR)/tools/dedicated_source BDIR=$(TDIR)/$(CODENAME)-$(ARCH) ADIR=$(APTTMP)/$(CODENAME)-$(ARCH) @@ -181,13 +181,6 @@ ifndef NONUS @echo If we have FORCENONUSONCD1 set, we must also have NONUS set; false endif endif -ifneq "$(DOJIGDO)" "0" -ifndef JIGDOCMD - @echo JIGDOCMD undefined -- set up CONF.sh; false -endif -else -export JIGDOCMD=false -endif ## INITIALIZATION ## @@ -223,11 +216,11 @@ bin-clean: $(Q)rm -rf $(BDIR)/*_NONUS $(Q)rm -f $(BDIR)/*.filelist* $(Q)rm -f $(BDIR)/packages-stamp $(BDIR)/bootable-stamp \ - $(BDIR)/upgrade-stamp $(BDIR)/secured-stamp + $(BDIR)/upgrade-stamp $(BDIR)/secured-stamp $(BDIR)/md5-check src-clean: $(Q)rm -rf $(SDIR)/CD[1234567890]* $(Q)rm -rf $(SDIR)/*_NONUS - $(Q)rm -rf $(SDIR)/sources-stamp $(SDIR)/secured-stamp + $(Q)rm -rf $(SDIR)/sources-stamp $(SDIR)/secured-stamp $(SDIR)/md5-check # Completely cleans the current arch tree realclean: distclean @@ -236,11 +229,9 @@ bin-distclean: $(Q)echo "Cleaning the binary build directory" $(Q)rm -rf $(BDIR) $(Q)rm -rf $(ADIR) - $(Q)rm -rf $(TDIR)/jigdofilelist src-distclean: $(Q)echo "Cleaning the source build directory" $(Q)rm -rf $(SDIR) - $(Q)rm -rf $(TDIR)/jigdofilelist ## STATUS and APT ## @@ -767,6 +758,12 @@ $(BDIR)/upgrade-stamp: fi $(Q)touch $(BDIR)/upgrade-stamp +dedicated-src: ok + $(Q)if [ -e $(BASEDIR)/data/$(CODENAME)/$(ARCH)/extra-sources ]; then \ + echo "Adding extra sources for $(ARCH) onto the last binary disc".; \ + $(Q)$(dedicated-src) $(BDIR) $(ARCH) $(BASEDIR) $(CODENAME) $(MIRROR); \ + fi + ## EXTRAS ## # Launch the extras scripts correctly for customizing the CDs @@ -868,43 +865,16 @@ $(SDIR)/secured-stamp: done $(Q)touch $(SDIR)/secured-stamp -# Make file list for jigdo (if DOJIGDO>0) -# "Fake" depend on the unstable Packages.gz to make sure we only regenerate -# this list when really necessary (saves many minutes per run). -# Don't depend on anything else as this will not work as intended, so -# make $(TDIR) ourselves just to be sure. -$(TDIR)/jigdofilelist: $(MIRROR)/dists/$(CODENAME)/main/binary-$(ARCH)/Packages.gz - @echo "Generating file list for jigdo (if requested) ..." - $(Q)set -e; \ - if [ "$(DOJIGDO)" != 0 ]; then \ - mkdir -p $(TDIR); \ - find $(MIRROR)//dists/$(CODENAME)/main/disks-$(ARCH) \ - $(MIRROR)//dists/$(CODENAME) \ - $(MIRROR)//doc $(MIRROR)//indices \ - $(MIRROR)//pool $(MIRROR)//project $(MIRROR)//tools \ - -type f \ - | egrep -v '/Contents|/README|INDEX$$|/Maintainers|/Release$$|/debian-keyring\.tar\.gz$$|/ls-lR|//doc/[^/]+/?[^/]*\.(txt|html)$$' \ - > $(TDIR)/jigdofilelist; \ - if [ -n "$(NONUS)" ]; then \ - find $(NONUS)//dists/$(CODENAME) $(NONUS)// -type f \ - | egrep -v '/Contents|/README|INDEX$$|/Maintainers|/Release$$|/debian-keyring\.tar\.gz$$|/ls-lR|//doc/[^/]+/?[^/]*\.(txt|html)$$' \ - >> $(TDIR)/jigdofilelist; \ - fi; \ - fi - # Generates all the images images: bin-images src-images -# DOJIGDO postboot actions (source has the appropriate subset) -# 0 no isofile -# 0 yes isofile post -# 1 no isofile jigdo jigdoadd -# 1 yes isofile post jigdo jigdoadd -# 2 no isojigdo jigdoadd -# 2 yes isofile post jigdo jigdoadd rmiso +# DOJIGDO actions (for both binaries and source) +# 0 isofile +# 1 isofile + jigdo, cleanup_jigdo +# 2 jigdo, cleanup_jigdo # -bin-images: ok bin-md5list $(OUT) $(TDIR)/jigdofilelist - @echo "Generating the binary iso images ..." +bin-images: ok bin-md5list $(OUT) + @echo "Generating the binary iso/jigdo images ..." $(Q)set -e; \ for file in $(BDIR)/*.packages; do \ dir=$${file%%.packages}; \ @@ -916,41 +886,39 @@ bin-images: ok bin-md5list $(OUT) $(TDIR)/jigdofilelist volid=`cat $(BDIR)/$$n.volid`; \ relname=`echo $(DEBVERSION) | sed -e 's/[. ]//g'`; \ rm -f $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.raw; \ + if [ "$(DOJIGDO)" = "0" ]; then \ + $(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \ + -o $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.raw $$opts CD$$n; \ + elif [ "$(DOJIGDO)" = "1" ]; then \ + $(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \ + -o $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.raw \ + -jigdo-jigdo $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.jigdo \ + -jigdo-template $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.template \ + -jigdo-map Debian=$(MIRROR)/ \ + -jigdo-exclude boot$$n \ + -md5-list $(BDIR)/md5-check \ + $(JIGDO_OPTS) $$opts CD$$n; \ + elif [ "$(DOJIGDO)" = "2" ]; then \ + $(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \ + -o /dev/null -v \ + -jigdo-jigdo $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.jigdo \ + -jigdo-template $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.template \ + -jigdo-map Debian=$(MIRROR)/ \ + -jigdo-exclude boot$$n \ + -md5-list $(BDIR)/md5-check \ + $(JIGDO_OPTS) $$opts CD$$n; \ + fi; \ if [ "$(DOJIGDO)" != "0" ]; then \ - $(JIGDOSCRIPT) \ - debian-$$relname-$(ARCH)-binary-$$n.iso \ - "`echo "$(JIGDOTEMPLATEURL)" | sed -e 's|%ARCH%|$(ARCH)|g'`debian-$$relname-$(ARCH)-binary-$$n.template" \ - $(BINDISKINFOND) \ - > $(TDIR)/debian-$$relname-$(ARCH).jigdo; \ - fi; \ - if [ "$(DOJIGDO)" != "2" -o -f $(BASEDIR)/tools/boot/$(DI_CODENAME)/post-boot-$(ARCH) ]; then \ - $(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \ - -o $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.raw $$opts CD$$n ; \ - if [ -f $(BASEDIR)/tools/boot/$(DI_CODENAME)/post-boot-$(ARCH) ]; then \ - $(BASEDIR)/tools/boot/$(DI_CODENAME)/post-boot-$(ARCH) $$n $$dir \ - $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.raw; \ - fi; \ - if [ "$(DOJIGDO)" != "0" ]; then \ - $(BASEDIR)/tools/jigdo_create $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.raw \ - $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.jigdo \ - $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.template \ - $(TDIR)/debian-$$relname-$(ARCH).jigdo; \ - fi; \ - else \ - $(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \ - $$opts CD$$n \ - | $(BASEDIR)/tools/jigdo_create "-" \ - $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.jigdo \ - $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.template \ - $(TDIR)/debian-$$relname-$(ARCH).jigdo; \ - fi; \ - if [ "$(DOJIGDO)" = "2" ]; then \ - rm -f $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.raw; \ + $(jigdo_cleanup) $(OUT)/debian-$$relname-$(ARCH)-binary-$$n.jigdo \ + debian-$$relname-$(ARCH)-binary-$$n.iso $(BDIR)/CD$$n \ + "`echo "$(JIGDOTEMPLATEURL)" | sed -e 's|%ARCH%|$(ARCH)|g'`debian-$$relname-$(ARCH)-binary-$$n.template" \ + $(BINDISKINFOND) \ + $(JIGDOFALLBACKURLS) ; \ fi; \ done - rm -f $(TDIR)/debian-$$relname-$(ARCH).jigdo -src-images: ok src-md5list $(OUT) $(TDIR)/jigdofilelist - @echo "Generating the source iso images ..." + +src-images: ok src-md5list $(OUT) + @echo "Generating the source iso/jigdo images ..." $(Q)set -e; \ for file in $(SDIR)/*.sources; do \ dir=$${file%%.sources}; \ @@ -961,40 +929,34 @@ src-images: ok src-md5list $(OUT) $(TDIR)/jigdofilelist opts=`cat $(SDIR)/$$n.mkisofs_opts`; \ volid=`cat $(SDIR)/$$n.volid`; \ relname=`echo $(DEBVERSION) | sed -e 's/[. ]//g'`; \ - rm -f $(OUT)/debian-$$relname-$(ARCH)-source-$$n.raw; \ + rm -f $(OUT)/debian-$$relname-source-$$n.raw; \ + if [ "$(DOJIGDO)" = "0" ]; then \ + $(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \ + -o $(OUT)/debian-$$relname-source-$$n.raw $$opts CD$$n ; \ + elif [ "$(DOJIGDO)" = "1" ]; then \ + $(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \ + -o $(OUT)/debian-$$relname-source-$$n.raw \ + -jigdo-jigdo $(OUT)/debian-$$relname-source-$$n.jigdo \ + -jigdo-template $(OUT)/debian-$$relname-source-$$n.template \ + -jigdo-map Debian=$(MIRROR)/ \ + -md5-list $(SDIR)/md5-check \ + $(JIGDO_OPTS) $$opts CD$$n ; \ + elif [ "$(DOJIGDO)" = "2" ]; then \ + $(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \ + -o /dev/null \ + -jigdo-jigdo $(OUT)/debian-$$relname-source-$$n.jigdo \ + -jigdo-template $(OUT)/debian-$$relname-source-$$n.template \ + -jigdo-map Debian=$(MIRROR)/ \ + -md5-list $(SDIR)/md5-check \ + $(JIGDO_OPTS) $$opts CD$$n ; \ + fi; \ if [ "$(DOJIGDO)" != "0" ]; then \ - $(JIGDOSCRIPT) \ - debian-$$relname-source-$$n.iso \ + $(jigdo_cleanup) $(OUT)/debian-$$relname-source-$$n.jigdo \ + debian-$$relname-source-$$n.iso $(SDIR)/CD$$n \ "`echo "$(JIGDOTEMPLATEURL)" | sed -e 's|%ARCH%|source|g'`debian-$$relname-source-$$n.template" \ $(SRCDISKINFOND) \ - > $(TDIR)/debian-$$relname-source.jigdo; \ + $(JIGDOFALLBACKURLS) ; \ fi; \ - if [ "$(DOJIGDO)" != "2" ]; then \ - $(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \ - -o $(OUT)/debian-$$relname-source-$$n.raw $$opts CD$$n ; \ - if [ "$(DOJIGDO)" != "0" ]; then \ - $(BASEDIR)/tools/jigdo_create $(OUT)/debian-$$relname-source-$$n.raw \ - $(OUT)/debian-$$relname-source-$$n.jigdo \ - $(OUT)/debian-$$relname-source-$$n.template \ - $(TDIR)/debian-$$relname-source.jigdo; \ - fi; \ - else \ - $(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \ - $$opts CD$$n \ - | $(BASEDIR)/tools/jigdo_create "-" \ - $(OUT)/debian-$$relname-source-$$n.jigdo \ - $(OUT)/debian-$$relname-source-$$n.template \ - $(TDIR)/debian-$$relname-source.jigdo; \ - fi; \ - done - rm -f $(TDIR)/debian-$$relname-source.jigdo - -# Generate the *.list files for the Pseudo Image Kit -pi-makelist: - $(Q)set -e; \ - cd $(OUT); for file in `find * -name \*.raw`; do \ - $(BASEDIR)/tools/pi-makelist \ - $$file > $${file%%.raw}.list; \ done # Generate only one image number $(CD) @@ -1053,8 +1015,26 @@ readme: conf: sensible-editor $(BASEDIR)/CONF.sh -mirrorcheck: ok apt-update - $(Q)$(apt) cache dumpavail | $(mirrorcheck) +mirrorcheck-binary: ok + rm -f $(BDIR)/md5-check + $(Q)$(grab_md5) $(MIRROR) $(ARCH) $(CODENAME) $(BDIR)/md5-check + if [ -n "$(NONUS)" ]; then \ + $(grab_md5) $(NONUS) $(ARCH) $(CODENAME) $(BDIR)/md5-check; \ + fi + $(Q)if [ -e $(BASEDIR)/data/$(CODENAME)/$(ARCH)/extra-sources ]; then \ + echo "Extra dedicated source added; need to grab source MD5 info too"; \ + $(Q)$(grab_md5) $(MIRROR) source $(CODENAME) $(BDIR)/md5-check; \ + if [ -n "$(NONUS)" ]; then \ + $(grab_md5) $(NONUS) source $(CODENAME) $(BDIR)/md5-check; \ + fi; \ + fi + +mirrorcheck-source: ok + rm -f $(SDIR)/md5-check + $(Q)$(grab_md5) $(MIRROR) source $(CODENAME) $(SDIR)/md5-check + if [ -n "$(NONUS)" ]; then \ + $(grab_md5) $(NONUS) source $(CODENAME) $(SDIR)/md5-check; \ + fi update-popcon: rm -f popcon-inst @@ -1077,7 +1057,7 @@ update-popcon: # Little trick to simplify things official_images: bin-official_images src-official_images -bin-official_images: ok bootable upgrade bin-images +bin-official_images: ok bootable upgrade dedicated-src bin-images src-official_images: ok src-doc src-images $(CODENAME)_status: ok init diff --git a/README b/README index caaf00aa..c700a6ca 100644 --- a/README +++ b/README @@ -25,8 +25,6 @@ Software: - the perl Digest::MD5 module - lynx (for text version of README.html) and todos from sysutils to convert docs to DOS format (although you can rip that out, too) -- if you want to generate .list files: tempfile, as included in debianutils - >= 1.6 (not absolutely necessary, workaround described in tools/pi-makelist) - if you want to generate jigdo files: jigdo-file (see below) Other: - lots of free space on your disks @@ -274,21 +272,6 @@ instead of MIRROR when looking for local packages. Additional targets ================== -Pseudo Image Kit ----------------- -Those of you who will make images available to people for download may -consider using the Pseudo Image Kit. See http://www.debian.org/CD/pik/ -for more information on the PIK. - -You can launch "make pi-makelist" in order to generate -the *.list files for the images you've just generated. - -The tools/pi-makelist script needs the isoinfo binary. You can get the -sources from http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html - -Alternatively (and certainly simpler for people using Debian system), the -isoinfo binary is in the mkisofs package (since Debian potato at least). - Jigdo ----- You may also want to make the CD images available in jigdo format.