Skip to content

Commit e0805d4

Browse files
committed
mklive: add option to ignore packages
fixes #290
1 parent 0783160 commit e0805d4

2 files changed

Lines changed: 38 additions & 22 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mklive.sh

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
142150
enable_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
327336
done
328337
shift $((OPTIND - 1))
329338
XBPS_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"
372381
CURRENT_STEP=0
373382
STEP_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+
423438
print_step "Installing void pkgs into the rootfs: ${PACKAGE_LIST} ..."
424439
install_packages
425440

0 commit comments

Comments
 (0)