Skip to content

Commit 5010920

Browse files
committed
Avoid copying files to temporary root
Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com>
1 parent a8b613f commit 5010920

File tree

19 files changed

+161
-212
lines changed

19 files changed

+161
-212
lines changed

features/kickstart/bin/get-ks-configs

Lines changed: 0 additions & 12 deletions
This file was deleted.

features/kickstart/rules.mk

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
22

3-
$(call assgin-shell-once,KICKSTART_DIRS,$(FEATURESDIR)/kickstart/bin/get-ks-configs)
4-
53
FAT_MODULES = fs-vfat /fs/nls/
64
ZFS_MODULES = zfs
75

@@ -10,6 +8,13 @@ MODULES_TRY_ADD += $(FAT_MODULES)
108
MODULES_TRY_ADD += $(ZFS_MODULES)
119

1210
PUT_FEATURE_FILES += $(KICKSTART_FILES)
13-
PUT_FEATURE_DIRS += $(KICKSTART_DATADIR) $(KICKSTART_DIRS)
11+
PUT_FEATURE_DIRS += $(KICKSTART_DATADIR)
1412
PUT_FEATURE_PROGS += $(KICKSTART_PROGS)
1513
PUT_FEATURE_PROGS_WILDCARD += $(KICKSTART_PROGS_PATTERNS)
14+
15+
kickstart: create
16+
@$(VMSG) "Adding kickstart configs..."
17+
@mkdir -p -- "$(ROOTDIR)/etc/ks.conf.d"
18+
@[ -z "$(KICKSTART_CONFIGS)" ] || cp -f -- $(KICKSTART_CONFIGS) "$(ROOTDIR)"/etc/ks.conf.d
19+
20+
pack: kickstart

features/luks/bin/get-data

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
. shell-error
88
. "$FEATURESDIR"/luks/data/bin/crypttab-sh-functions
99

10-
DIR="$WORKDIR/root"
10+
DIR="$ROOTDIR"
1111
unsupported=()
1212

1313
join_by()
@@ -110,5 +110,3 @@ shell_foreach_crypttab "$LUKS_CRYPTTAB" crypttab_entry ||:
110110
if [ "${#unsupported[@]}" -gt 0 ]; then
111111
message "luks: $(join_by , "${unsupported[@]}") from crypttab is not supported."
112112
fi
113-
114-
printf '%s\n' "$DIR"

features/luks/rules.mk

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
2-
LUKS_CRYPTTAB_DATA =
3-
4-
ifneq ($(LUKS_CRYPTTAB),)
5-
$(call assgin-shell-once,LUKS_CRYPTTAB_DATA,$(FEATURESDIR)/luks/bin/get-data)
6-
endif
72

83
MODULES_LOAD += $(LUKS_MODULES)
94

10-
PUT_FEATURE_DIRS += $(LUKS_DATADIR) $(LUKS_CRYPTTAB_DATA)
5+
PUT_FEATURE_DIRS += $(LUKS_DATADIR)
116
PUT_FEATURE_PROGS += $(CRYPTSETUP_BIN)
7+
8+
ifneq ($(LUKS_CRYPTTAB),)
9+
luks-crypttab: create
10+
@$(VMSG) "Adding LUKS crypttab..."
11+
@$(FEATURESDIR)/luks/bin/get-data
12+
13+
pack: luks-crypttab
14+
endif

features/mdadm/bin/generate-udev-rules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
. sh-functions
55

6-
DIR="$WORKDIR/root"
6+
DIR="$ROOTDIR"
77

88
if [ "${1-}" = dirs ]; then
99
mkdir -p -- "$DIR/etc/initrd/md"

features/mdadm/rules.mk

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
22

33
$(call assgin-shell-once,MDADM_UDEV_RULES,$(FEATURESDIR)/mdadm/bin/generate-udev-rules)
4-
$(call assgin-shell-once,MDADM_DIRS, $(FEATURESDIR)/mdadm/bin/generate-udev-rules dirs)
54

65
PUT_UDEV_RULES += $(MDAMD_RULES_OLD) $(MDAMD_RULES) $(MDADM_UDEV_RULES)
7-
PUT_FEATURE_DIRS += $(MDADM_DATADIR) $(MDADM_DIRS)
6+
PUT_FEATURE_DIRS += $(MDADM_DATADIR)
87
PUT_FEATURE_FILES += $(MDADM_FILES)
98
PUT_FEATURE_PROGS += $(MDADM_PROGS) $(MDADM_EXTRA_PROGS)
9+
10+
mdadm: create
11+
@$(VMSG) "Adding mdadm uuids..."
12+
@$(FEATURESDIR)/mdadm/bin/generate-udev-rules dirs
13+
14+
pack: mdadm

features/rdshell/bin/add-login

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,18 @@ if [ -n "${RDSHELL_PASSWORD-}" ] && [ -n "${RDSHELL_COPY_PASSWORD_FROM_USER-}" ]
77
fatal 'Options "RDSHELL_PASSWORD" and "RDSHELL_COPY_PASSWORD_FROM_USER" are mutually exclusive'
88
fi
99

10+
DIR="$ROOTDIR"
1011

11-
case "${1-}" in
12-
files)
13-
;;
14-
dirs)
15-
DIR="$WORKDIR/root"
12+
mkdir -p -- "$DIR/etc/sysconfig"
1613

17-
mkdir -p -- "$DIR/etc/sysconfig"
14+
hash="${RDSHELL_PASSWORD-}"
15+
[ -z "${RDSHELL_COPY_PASSWORD_FROM_USER-}" ] ||
16+
hash="$(getent shadow "${RDSHELL_COPY_PASSWORD_FROM_USER-}" |cut -d: -f2)"
1817

19-
hash="${RDSHELL_PASSWORD-}"
20-
[ -z "${RDSHELL_COPY_PASSWORD_FROM_USER-}" ] ||
21-
hash="$(getent shadow "${RDSHELL_COPY_PASSWORD_FROM_USER-}" |cut -d: -f2)"
18+
for n in passwd shadow; do
19+
touch "$DIR/etc/$n"
20+
sed -i -e '/^root:/d' "$DIR/etc/$n"
21+
done
2222

23-
for n in passwd shadow; do
24-
touch "$DIR/etc/$n"
25-
sed -i -e '/^root:/d' "$DIR/etc/$n"
26-
done
27-
28-
printf 'root:x:0:0::/home/root:/bin/sh\n' >> "$DIR/etc/passwd"
29-
printf 'root:%s:13957::::::\n' "$hash" >> "$DIR/etc/shadow"
30-
31-
printf '%s\n' "$DIR"
32-
;;
33-
esac
23+
printf 'root:x:0:0::/home/root:/bin/sh\n' >> "$DIR/etc/passwd"
24+
printf 'root:%s:13957::::::\n' "$hash" >> "$DIR/etc/shadow"

features/rdshell/rules.mk

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,14 @@ endif
55

66
ifneq ($(RDSHELL_PASSWORD)$(RDSHELL_COPY_PASSWORD_FROM_USER),)
77
RDSHELL = login
8-
$(call assign-shell-once,RHSHELL_DIRS,$(FEATURESDIR)/rdshell/bin/add-login dirs)
9-
PUT_FEATURE_DIRS += $(RHSHELL_DIRS)
108
endif
119

1210
$(call set-sysconfig,rdshell,RDSHELL_MODE,$(RDSHELL))
11+
12+
ifneq ($(RDSHELL_PASSWORD)$(RDSHELL_COPY_PASSWORD_FROM_USER),)
13+
rdshell: create
14+
@$(VMSG) "Adding root password..."
15+
@$(FEATURESDIR)/rdshell/bin/add-login
16+
17+
pack: rdshell
18+
endif

features/rootfs/bin/create-fstab

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,22 @@
66
export LIBMOUNT_FSTAB="${FSTAB:-$SYSCONFDIR/fstab}"
77
export LIBMOUNT_MTAB="${PROC_MOUNTS:-$PROCFS_PATH/mounts}"
88

9-
case "${1-}" in
10-
files)
11-
;;
12-
dirs)
13-
DIR="$WORKDIR/root"
9+
DIR="$ROOTDIR"
1410

15-
mkdir -p -- "$DIR"/etc
11+
mkdir -p -- "$DIR"/etc
1612

17-
for d in ${MOUNTPOINTS-}; do
18-
out="$(sys_findmnt -n -o TARGET,FSTYPE,OPTIONS --target "$d")" ||
19-
continue
13+
for d in ${MOUNTPOINTS-}; do
14+
out="$(sys_findmnt -n -o TARGET,FSTYPE,OPTIONS --target "$d")" ||
15+
continue
2016

21-
src="$(sys_findmnt -n -o UUID --target "$d")"
22-
prefix='UUID='
17+
src="$(sys_findmnt -n -o UUID --target "$d")"
18+
prefix='UUID='
2319

24-
[ -n "$src" ] || { src="$(sys_findmnt -n -o LABEL --target "$d")"; prefix='LABEL='; }
25-
[ -n "$src" ] || { src="$(sys_findmnt -n -o SOURCE --target "$d")"; prefix=''; }
26-
[ -n "$src" ] || continue
20+
[ -n "$src" ] || { src="$(sys_findmnt -n -o LABEL --target "$d")"; prefix='LABEL='; }
21+
[ -n "$src" ] || { src="$(sys_findmnt -n -o SOURCE --target "$d")"; prefix=''; }
22+
[ -n "$src" ] || continue
2723

28-
printf '%s%s %s 0 0\n' "$prefix" "$src" "$out"
29-
done >"$DIR"/etc/fstab
24+
printf '%s%s %s 0 0\n' "$prefix" "$src" "$out"
25+
done >"$DIR"/etc/fstab
3026

31-
sort -uo "$DIR"/etc/fstab "$DIR"/etc/fstab
32-
33-
printf '%s\n' "$DIR"
34-
;;
35-
esac
27+
sort -uo "$DIR"/etc/fstab "$DIR"/etc/fstab

features/rootfs/rules.mk

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# SPDX-License-Identifier: GPL-3.0-or-later
22

3-
$(call assgin-shell-once,ROOTFS_DIRS,$(FEATURESDIR)/rootfs/bin/create-fstab dirs)
4-
5-
PUT_FEATURE_DIR += $(ROOTFS_DIRS)
6-
73
$(call set-sysconfig,init,QUIET,$(RUNTIME_QUIET))
84
$(call set-sysconfig,init,LOGLEVEL,$(RUNTIME_DMESG_LOGLEVEL))
5+
6+
rootfs-fstab: create
7+
@$(VMSG) "Generating fstab..."
8+
@$(FEATURESDIR)/rootfs/bin/create-fstab
9+
10+
pack: rootfs-fstab

0 commit comments

Comments
 (0)