Bug#594968: Support mksquashfs -e by prepending (not appending) to MKSQUASHFS_OPTIONS.
Package: live-build
Version: 2.0~a23-1
Severity: minor
File: /usr/share/live/build/scripts/build/binary_rootfs
Images based on Emdebian Grip are smaller than images based on Squeeze
because the packages exclude directories like /usr/share/man/.
I found that I can achieve equally small images with Squeeze by
excluding those directories at the mksquashfs step:
# Using -regex below simply means that -e foo/ excludes everything
# below foo, but NOT foo/ itself. This is important for /tmp &c.
mksquashfs $t $t/boot/filesystem.squashfs -root-becomes ... \
-regex -e \
tmp/ \
usr/share/info/ \
usr/share/locale/ \
usr/share/man/ \
[...]
I want to duplicate these exclusions in images built by live-build.
It *looks* like I can simply add a line to config/binary like this:
MKSQUASHFS_OPTIONS='-regex -e boot/ tmp/ [...]'
Unfortunately, this results in a mksquashfs call where -no-progress,
-info and -sort squashfs.sort are supplied *after* -e, causing
mksquashfs to treat them as exclusions -- effectively ignoring them.
I believe the simplest way to work around this is to have
binary_rootfs prepend (instead of appending) arguments to
MKSQUASHFS_OPTIONS (below, untested). Another option might be to say
"live-build doesn't allow -e, you must use -ef" (also untested).
diff -ud /usr/share/live/build/scripts/build/binary_rootfs /tmp/buffer-content-1378JMi
--- /usr/share/live/build/scripts/build/binary_rootfs 2010-08-15 04:56:37.000000000 +1000
+++ /tmp/buffer-content-1378JMi 2010-08-31 17:23:12.685375975 +1000
@@ -296,16 +296,16 @@
# Remove stale squashfs image
rm -f chroot/filesystem.squashfs
- MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -no-progress"
+ MKSQUASHFS_OPTIONS="-no-progress ${MKSQUASHFS_OPTIONS}"
if [ "${_VERBOSE}" = "true" ]
then
- MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -info"
+ MKSQUASHFS_OPTIONS="-info ${MKSQUASHFS_OPTIONS}"
fi
if [ -f config/binary_rootfs/squashfs.sort ]
then
- MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -sort squashfs.sort"
+ MKSQUASHFS_OPTIONS="-sort squashfs.sort ${MKSQUASHFS_OPTIONS}"
cp config/binary_rootfs/squashfs.sort chroot #FIXME
fi
Diff finished. Tue Aug 31 17:23:12 2010
-- Package-specific info:
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.35 (SMP w/2 CPU cores)
Locale: LANG=en_AU.utf8, LC_CTYPE=en_AU.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages live-build depends on:
ii debootstrap 1.0.23 Bootstrap a basic Debian system
Versions of packages live-build recommends:
ii cpio 2.11-4 GNU cpio -- a program to manage ar
ii gettext-base 0.18.1.1-1 GNU Internationalization utilities
ii gnu-fdisk 1.2.4-3+b1 Linux fdisk replacement based on l
Versions of packages live-build suggests:
pn dosfstools <none> (no description available)
ii fakeroot 1.14.4-1 Gives a fake root environment
pn genisoimage <none> (no description available)
pn memtest86+ | memtest86 <none> (no description available)
pn mtools <none> (no description available)
ii parted 2.3-2 The GNU Parted disk partition resi
ii squashfs-tools 1:4.0-8 Tool to create and append to squas
ii sudo 1.7.2p7-1 Provide limited super user privile
pn syslinux | grub <none> (no description available)
pn uuid-runtime <none> (no description available)
pn win32-loader <none> (no description available)
-- no debconf information
-- debsums errors found:
debsums: changed file /usr/share/live/build/functions/defaults.sh (from live-build package)
debsums: changed file /usr/share/live/build/scripts/build/bootstrap (from live-build package)
debsums: changed file /usr/share/live/build/scripts/build/chroot_sources (from live-build package)
Reply to: