diff options
author | Dave Reisner <dreisner@archlinux.org> | 2012-05-03 20:14:42 +0200 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2012-05-12 15:30:32 +0200 |
commit | 41a290ce22844ac6b1d021b04df5f7659547cc56 (patch) | |
tree | fb39185340dec265d0cc7f603718a3fa779f8521 /install | |
parent | b317b01465d81b2adadd5f8d964e59622a6a7a32 (diff) | |
download | mkinitcpio-41a290ce22844ac6b1d021b04df5f7659547cc56.tar.gz mkinitcpio-41a290ce22844ac6b1d021b04df5f7659547cc56.tar.xz |
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 <dreisner@archlinux.org>
Diffstat (limited to 'install')
-rw-r--r-- | install/autodetect | 4 | ||||
-rw-r--r-- | install/consolefont | 8 | ||||
-rw-r--r-- | install/fsck | 4 | ||||
-rw-r--r-- | install/keymap | 4 |
4 files changed, 10 insertions, 10 deletions
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 |