Backport PARALLEL_MAKE_IMAGE support

Add support for running the final make_image step in parallel

to make best use of larger machines with SSD storage. Use
PARALLEL_MAKE_IMAGE=<n> to specify how many to build in parallel.
This commit is contained in:
Steve McIntyre 2020-12-12 03:13:53 +00:00
parent b60845a775
commit 6d8619a0e6
4 changed files with 21 additions and 1 deletions

View File

@ -428,6 +428,11 @@ if [ -d "/etc/ssl/ca-debian" ]; then
fi fi
export WGET="wget $WGET_OPTS" export WGET="wget $WGET_OPTS"
# Run the make_image step in parallel? Specify the number of calls to
# use in parallel here if desired. Don't go too high - this *will*
# thrash your IO!
#export PARALLEL_MAKE_IMAGE=4
# Set this to force the Release file(s) to say "stable". Used in first # Set this to force the Release file(s) to say "stable". Used in first
# Etch builds to allow us to build before the archive updated # Etch builds to allow us to build before the archive updated
#EARLY_BUILD_HACK=1 #EARLY_BUILD_HACK=1

View File

@ -491,6 +491,12 @@ image-trees: ok genlist
images: ok $(OUT) $(BDIR)/md5-check images: ok $(OUT) $(BDIR)/md5-check
$(Q)$(make_image) "$(BDIR)" "$(ARCHES)" "$(OUT)" "$(DEBVERSION)" "$(MIRROR)" "$(MKISOFS)" "$(MKISOFS_OPTS)" "$(JIGDO_OPTS)" "$(jigdo_cleanup)" $(Q)$(make_image) "$(BDIR)" "$(ARCHES)" "$(OUT)" "$(DEBVERSION)" "$(MIRROR)" "$(MKISOFS)" "$(MKISOFS_OPTS)" "$(JIGDO_OPTS)" "$(jigdo_cleanup)"
parallel_images: $(subst volid,image,$(notdir $(wildcard $(BDIR)/*.volid)))
echo $^
%.image: ok $(OUT) $(BDIR)/checksum-check
$(Q)CD=$(subst .image,,$@) $(make_image) "$(BDIR)" "$(ARCHES)" "$(OUT)" "$(DEBVERSION)" "$(MIRROR)" "$(MKISOFS)" "$(MKISOFS_OPTS)" "$(JIGDO_OPTS)" "$(jigdo_cleanup)"
check-number-given: check-number-given:
@test -n "$(CD)" || (echo "Give me a CD=<num> parameter !" && false) @test -n "$(CD)" || (echo "Give me a CD=<num> parameter !" && false)

View File

@ -80,7 +80,12 @@ else
fi fi
echo "Building $NUMJIGDOS jigdos and $NUMISOS isos for $ARCHES $DISKTYPE" echo "Building $NUMJIGDOS jigdos and $NUMISOS isos for $ARCHES $DISKTYPE"
if [ "$IMAGETARGET" = "official_images" ] && [ ! -z "$PARALLEL_MAKE_IMAGE" ]; then
make ok init packagelists image-trees
make -j $PARALLEL_MAKE_IMAGE parallel_images
else
make $IMAGETARGET make $IMAGETARGET
fi
if [ "$IMAGESUMS"x = 1x ]; then if [ "$IMAGESUMS"x = 1x ]; then
make imagesums make imagesums

4
debian/changelog vendored
View File

@ -11,6 +11,10 @@ debian-cd (3.1.26-buster) UNRELEASED; urgency=medium
+ tools/generate_di_list: Only include kernel udebs for the + tools/generate_di_list: Only include kernel udebs for the
highest ABI we know about. Don't waste space on new installation highest ABI we know about. Don't waste space on new installation
media with older udebs from the archive. media with older udebs from the archive.
+ Add support for running the final make_image step in parallel to
make best use of larger machines with SSD storage. Use
PARALLEL_MAKE_IMAGE=<n> to specify how many to build in
parallel.
-- Samuel Thibault <sthibault@debian.org> Fri, 23 Aug 2019 21:51:50 +0200 -- Samuel Thibault <sthibault@debian.org> Fri, 23 Aug 2019 21:51:50 +0200