From 41a290ce22844ac6b1d021b04df5f7659547cc56 Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Thu, 3 May 2012 14:14:42 -0400 Subject: mkinitcpio: remove --basedir option This option is just a bad idea. Initramfs creation is too important to get wrong, and running it from outside the root FS has too many gotchas, the worst of them being: - where do you pull hooks from? - how do you resolve binary dependencies within the root? In general, dealing with the extra luggage of the base directory makes the codebase more complicated than it needs to be (see all the '_' prefixed functions which are called from add functions). In favor of simplifying the code, and making it more maintainable, kill this off and force the sane option of chroot'ing into an install if the need arises. Signed-off-by: Dave Reisner --- install/autodetect | 4 ++-- install/consolefont | 8 ++++---- install/fsck | 4 ++-- install/keymap | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) (limited to 'install') diff --git a/install/autodetect b/install/autodetect index 4ed7ccf..1daa429 100644 --- a/install/autodetect +++ b/install/autodetect @@ -25,7 +25,7 @@ build() { auto_modules >"$MODULE_FILE" # detect filesystem for root - if rootfstype=$(findmnt -uno fstype "${BASEDIR:-/}"); then + if rootfstype=$(findmnt -uno fstype '/'); then add_if_avail "$rootfstype" else error "failed to detect root filesystem" @@ -33,7 +33,7 @@ build() { fi # detect filesystem for separate /usr - if usrfstype=$(findmnt -snero fstype --tab-file "$BASEDIR/etc/fstab" /usr); then + if usrfstype=$(findmnt -snero fstype --tab-file '/etc/fstab' /usr); then add_if_avail "$usrfstype" fi diff --git a/install/consolefont b/install/consolefont index 2d2d8ea..cefbc45 100644 --- a/install/consolefont +++ b/install/consolefont @@ -5,20 +5,20 @@ build() { # subshell to avoid namespace pollution ( - for cfg in etc/{rc,vconsole}.conf; do - [[ -s $BASEDIR/$cfg ]] && . "$BASEDIR/$cfg" + for cfg in /etc/{rc,vconsole}.conf; do + [[ -s $cfg ]] && . "$cfg" done [[ $FONT ]] && CONSOLEFONT=$FONT if [[ $CONSOLEFONT ]]; then - for file in "$BASEDIR/usr/share/kbd/consolefonts/$CONSOLEFONT".psf?(u)?(.gz); do + for file in "/usr/share/kbd/consolefonts/$CONSOLEFONT".psf?(u)?(.gz); do if [[ -e $file ]]; then [[ $file =~ \.(psfu?)(\.gz)?$ ]] && ext=${BASH_REMATCH[1]} if [[ $file = *.gz ]]; then gzip -cd "$file" > "$BUILDROOT/consolefont.$ext" else - add_file "${file#$BASEDIR}" "/consolefont.$ext" + add_file "$file" "/consolefont.$ext" fi exit 0 fi diff --git a/install/fsck b/install/fsck index baf1c3d..e8b5ea3 100644 --- a/install/fsck +++ b/install/fsck @@ -21,9 +21,9 @@ build() { add_fsck $usrfstype && (( ++added )) fi else - for fsck in "$BASEDIR"/{usr/,}{s,}bin/fsck.*; do + for fsck in /{usr/,}{s,}bin/fsck.*; do [[ -f $fsck ]] || continue - add_binary "${fsck#$BASEDIR}" && (( ++added )) + add_binary "$fsck" && (( ++added )) done fi diff --git a/install/keymap b/install/keymap index fe5e459..1dc25aa 100644 --- a/install/keymap +++ b/install/keymap @@ -7,8 +7,8 @@ build() { l=$LANG unset LANG - for cfg in etc/{rc,vconsole,locale}.conf; do - [[ -s $BASEDIR/$cfg ]] && . "$BASEDIR/$cfg" + for cfg in /etc/{rc,vconsole,locale}.conf; do + [[ -s $cfg ]] && . "$cfg" done [[ $LANG ]] && LOCALE=$LANG -- cgit v1.2.3-24-g4f1b