@@ -83,6 +83,7 @@ usage() {
8383 -s <gzip|lzo|xz> Compression type for the squashfs image (default: xz)
8484 -o <file> Output file name for the ISO image (default: automatic)
8585 -p "<pkg> ..." Install additional packages in the ISO image
86+ -g "<pkg> ..." Ignore packages when building the ISO image
8687 -I <includedir> Include directory structure under given path in the ROOTFS
8788 -S "<service> ..." Enable services in the ISO image
8889 -C "<arg> ..." Add additional kernel command line arguments
@@ -139,6 +140,13 @@ install_packages() {
139140 rm -rf " $ROOTFS " /var/cache/* " $ROOTFS " /run/* " $ROOTFS " /var/run/*
140141}
141142
143+ ignore_packages () {
144+ mkdir -p " $ROOTFS " /etc/xbps.d
145+ for pkg in $IGNORE_PKGS ; do
146+ echo " ignorepkg=$pkg " >> " $ROOTFS " /etc/xbps.d/mklive-ignore.conf
147+ done
148+ }
149+
142150enable_services () {
143151 SERVICE_LIST=" $* "
144152 for service in $SERVICE_LIST ; do
@@ -302,28 +310,29 @@ generate_iso_image() {
302310#
303311# main()
304312#
305- while getopts " a:b:r:c:C:T:Kk:l:i:I:S:s:o:p:v:Vh" opt; do
306- case $opt in
307- a) BASE_ARCH=" $OPTARG " ;;
308- b) BASE_SYSTEM_PKG=" $OPTARG " ;;
309- r) XBPS_REPOSITORY=" --repository=$OPTARG $XBPS_REPOSITORY " ;;
310- c) XBPS_CACHEDIR=" $OPTARG " ;;
311- K) readonly KEEP_BUILDDIR=1;;
312- k) KEYMAP=" $OPTARG " ;;
313- l) LOCALE=" $OPTARG " ;;
314- i) INITRAMFS_COMPRESSION=" $OPTARG " ;;
315- I) INCLUDE_DIRS+=(" $OPTARG " );;
316- S) SERVICE_LIST=" $SERVICE_LIST $OPTARG " ;;
317- s) SQUASHFS_COMPRESSION=" $OPTARG " ;;
318- o) OUTPUT_FILE=" $OPTARG " ;;
319- p) PACKAGE_LIST=" $PACKAGE_LIST $OPTARG " ;;
320- C) BOOT_CMDLINE=" $OPTARG " ;;
321- T) BOOT_TITLE=" $OPTARG " ;;
322- v) LINUX_VERSION=" $OPTARG " ;;
323- V) version; exit 0;;
324- h) usage; exit 0;;
325- * ) usage >&2 ; exit 1;;
326- esac
313+ while getopts " a:b:r:c:C:T:Kk:l:i:I:S:s:o:p:g:v:Vh" opt; do
314+ case $opt in
315+ a) BASE_ARCH=" $OPTARG " ;;
316+ b) BASE_SYSTEM_PKG=" $OPTARG " ;;
317+ r) XBPS_REPOSITORY=" --repository=$OPTARG $XBPS_REPOSITORY " ;;
318+ c) XBPS_CACHEDIR=" $OPTARG " ;;
319+ g) IGNORE_PKGS=" $IGNORE_PKGS $OPTARG " ;;
320+ K) readonly KEEP_BUILDDIR=1;;
321+ k) KEYMAP=" $OPTARG " ;;
322+ l) LOCALE=" $OPTARG " ;;
323+ i) INITRAMFS_COMPRESSION=" $OPTARG " ;;
324+ I) INCLUDE_DIRS+=(" $OPTARG " );;
325+ S) SERVICE_LIST=" $SERVICE_LIST $OPTARG " ;;
326+ s) SQUASHFS_COMPRESSION=" $OPTARG " ;;
327+ o) OUTPUT_FILE=" $OPTARG " ;;
328+ p) PACKAGE_LIST=" $PACKAGE_LIST $OPTARG " ;;
329+ C) BOOT_CMDLINE=" $OPTARG " ;;
330+ T) BOOT_TITLE=" $OPTARG " ;;
331+ v) LINUX_VERSION=" $OPTARG " ;;
332+ V) version; exit 0;;
333+ h) usage; exit 0;;
334+ * ) usage >&2 ; exit 1;;
335+ esac
327336done
328337shift $(( OPTIND - 1 ))
329338XBPS_REPOSITORY=" $XBPS_REPOSITORY --repository=https://repo-default.voidlinux.org/current --repository=https://repo-default.voidlinux.org/current/musl"
@@ -372,6 +381,7 @@ GRUB_DIR="$BOOT_DIR/grub"
372381CURRENT_STEP=0
373382STEP_COUNT=10
374383[ " ${# INCLUDE_DIRS[@]} " -gt 0 ] && STEP_COUNT=$(( STEP_COUNT+ 1 ))
384+ [ -n " ${IGNORE_PKGS} " ] && STEP_COUNT=$(( STEP_COUNT+ 1 ))
375385
376386: ${SYSLINUX_DATADIR:= " $VOIDHOSTDIR " / usr/ lib/ syslinux}
377387: ${GRUB_DATADIR:= " $VOIDHOSTDIR " / usr/ share/ grub}
@@ -420,6 +430,11 @@ mkdir -p "$ROOTFS"/etc
420430[ -s data/motd ] && cp data/motd " $ROOTFS " /etc
421431[ -s data/issue ] && cp data/issue " $ROOTFS " /etc
422432
433+ if [ -n " $IGNORE_PKGS " ]; then
434+ print_step " Ignoring packages in the rootfs: ${IGNORE_PKGS} ..."
435+ ignore_packages
436+ fi
437+
423438print_step " Installing void pkgs into the rootfs: ${PACKAGE_LIST} ..."
424439install_packages
425440
0 commit comments