[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#960507: debian-cd: undefined $size_check causes 'make image-trees' to fail



Package: debian-cd
Version: 3.1.25
Severity: normal
Tags: d-i newcomer patch

Dear Maintainer,

* What led up to the situation?

Making a custom sized iso for writing to an extra large BluRay disk (up
to 100gb)

* What exactly did you do (or not do) that was effective (or ineffective)?

I set the following properties in CONF.sh

export NONFREE=1
export FORCE_FIRMWARE=1
export DISKTYPE=CUSTOM
export CUSTOMSIZE=47304704

CONF.sh
make distclean
make status
make packagelists TASK=Debian-generic COMPLETE=1
make image-trees

* What was the outcome of this action?

This failed with:

----
  Done: read 647 entries for 1 languages
Starting to lay out packages into images:
Can't exec "/home/steve/debian-cd/tmp/buster/CD1": Permission denied at /home/steve/debian-cd/tools/make_disc_trees.pl line 284, <INLIST> line 75939.
Use of uninitialized value $size in scalar chomp at /home/steve/debian-cd/tools/make_disc_trees.pl line 285, <INLIST> line 75939.
Use of uninitialized value $size in concatenation (.) or string at /home/steve/debian-cd/tools/make_disc_trees.pl line 286, <INLIST> line 75939.
----
This error is because $size_check` is an empty string, as definied on line 1485 in make_disc_trees.pl:
my $size_check = "";

When like 916 is executed it tries to execute the contents of $cddir which is a directory:
            $size = `$size_check $cddir`;

To fix this a copied the definition of $size_check from line 1485:
        $size_check = "$mkisofs_check $mkisofs_opts $mkisofs_dirs";

to before line 916. Re-running these commands now works as expected:

make distclean
make status
make packagelists TASK=Debian-generic COMPLETE=1
make image-trees

I don't pretend to understand the code, but the same problem might exist elsewhere, e.g. line 284.

I created a diff like this:
$ diff -u make_disc_trees.pl.orig make_disc_trees.pl
--- make_disc_trees.pl.orig     2020-05-12 18:44:16.036773037 +0200
+++ make_disc_trees.pl  2020-05-12 18:44:16.068771699 +0200
@@ -913,6 +913,7 @@
                $error == 0 || die "DISC_END_HOOK failed with error $error\n";
        }

+    $size_check = "$mkisofs_check $mkisofs_opts $mkisofs_dirs";
        $size = `$size_check $cddir`;
        chomp $size;
        $bytes = $size * $blocksize;

I hope this is of some use and apologise if I've omitted useful information or it's user error.

Cheers,
Steve


-- System Information:
Debian Release: 10.2
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-6-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages debian-cd depends on:
ii  apt                        1.8.2
ii  bc                         1.07.1-2+b1
ii  bzip2                      1.0.6-9.2~deb10u1
ii  cpp                        4:8.3.0-1
ii  curl                       7.64.0-4+deb10u1
ii  dctrl-tools [grep-dctrl]   2.24-3
ii  dpkg-dev                   1.19.7
ii  genisoimage                9:1.1.11-3+b2
pn  libcompress-zlib-perl      <none>
pn  libdigest-md5-perl         <none>
ii  libdpkg-perl               1.19.7
ii  lynx                       2.8.9rel.1-3
ii  make                       4.2.1-1.2
ii  perl [libdigest-sha-perl]  5.28.1-6
ii  tofrodos                   1.7.13+ds-4
ii  wget                       1.20.1-1.1
ii  xorriso                    1.5.0-1

Versions of packages debian-cd recommends:
ii  dosfstools       4.1-2
ii  hfsutils         3.2.6-14
ii  isolinux         3:6.04~git20190206.bf6db5b4+dfsg1-1
ii  mtools           4.0.23-1
ii  netpbm           2:10.0-15.3+b2
ii  syslinux-common  3:6.04~git20190206.bf6db5b4+dfsg1-1
ii  syslinux-utils   3:6.04~git20190206.bf6db5b4+dfsg1-1

debian-cd suggests no packages.

-- Configuration Files:
/etc/debian-cd/conf.sh changed:
if [ "$DEBIAN_CD_CONF_SOURCED" = true ]; then
	return 0
fi
unset NONFREE           || true
unset CONTRIB           || true
unset EXTRANONFREE      || true
unset LOCAL             || true
unset LOCALDEBS         || true
unset SECURITY          || true
unset PROPOSED_UPDATES  || true
unset UNRELEASED        || true
unset BOOTDIR           || true
unset SYMLINK           || true
unset COPYLINK          || true
unset MKISOFS           || true
unset MKISOFS_OPTS      || true
unset ISOLINUX          || true
unset EXCLUDE           || true
unset NORECOMMENDS      || true
unset NOSUGGESTS        || true
unset IMAGESUMS         || true
unset JIGDOTEMPLATEURL  || true
unset JIGDOFALLBACKURLS || true
unset JIGDOINCLUDEURLS  || true
unset JIGDOSCRIPT       || true
unset JIGDO_OPTS        || true
unset PUBLISH_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
unset MAXCDS            || true
unset MAXISOS           || true
unset MAXJIGDOS         || true
unset SPLASHPNG         || true
unset OMIT_MANUAL	 || true
unset OMIT_RELEASE_NOTES || true
unset OMIT_DOC_TOOLS     || true
unset MAX_PKG_SIZE       || true
unset DEBOOTSTRAP_OPTS   || true
unset ARCHIVE_KEYRING_PACKAGE || true
unset ARCHIVE_KEYRING_FILE    || true
export BASEDIR=`pwd`
export CODENAME=buster
if [ -z "$DI_CODENAME" ]; then
	export DI_CODENAME=$CODENAME
fi
export DEBVERSION="10.0.0"
export OFFICIAL="Unofficial"
if [ -z "$ARCHES" ]; then
	CPU=`dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null || true`
	if [ -z "$CPU" ]; then
		CPU=`dpkg-architecture -qDEB_HOST_ARCH`
	fi
	KERNEL=`dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null || true`
	if [ -z "$KERNEL" ]; then
		KERNEL=linux
	fi
	if [ $KERNEL = linux ] ; then
		ARCHES=$CPU
	else
		ARCHES="$KERNEL-$CPU"
	fi
	export ARCHES
fi
export MIRROR=/srv/mirror/debian
export TDIR=/srv/mirror/tmp
export OUT=/srv/mirror/debian-cd-test
export APTTMP=/srv/mirror/tmp/apt
export NONFREE=1
export CONTRIB=1
export FORCE_FIRMWARE=1
export ISOLINUX=1
export MAX_PKG_SIZE=600000000
ATTEMPT_FALLBACK=yes
export DISKTYPE=CUSTOM
export CUSTOMSIZE=47304704
export VARIANTS=
export IMAGESUMS=1
export JIGDOINCLUDEURLS="http://cdimage.debian.org/debian-cd/debian-servers.jigdo";
export PUBLISH_URL="http://cdimage.debian.org/jigdo-area";
export PUBLISH_PATH="/home/jigdo-area/"
export JIGDO_EXCLUDE="'README*' /doc/ /md5sum.txt /.disk/ /pics/ 'Release*' 'Packages*' 'Sources*'"
export JIGDO_INCLUDE="/pool/"
export JIGDO_OPTS="-jigdo-min-file-size 1024"
for EXCL in $JIGDO_EXCLUDE; do
	JIGDO_OPTS="$JIGDO_OPTS -jigdo-exclude $EXCL"
done
for INCL in $JIGDO_INCLUDE; do
	JIGDO_OPTS="$JIGDO_OPTS -jigdo-force-md5 $INCL"
done
export SNAPURL=Debian=http://snapshot.debian.org/archive/debian/SNAPDATETIME/
export OMIT_RELEASE_NOTES=1
case "$OFFICIAL" in
    "Official")
	export OFFICIAL_VAL=2
	;;
    "Official Beta")
	export OFFICIAL_VAL=1
	;;
    *)
	export OFFICIAL_VAL=0
	;;
esac
if [ -d "/etc/ssl/ca-debian" ]; then
	export WGET_OPTS="--ca-directory /etc/ssl/ca-debian/"
fi
export WGET="wget $WGET_OPTS"


-- no debconf information


Reply to: