Skip to content

Commit 9d12ceb

Browse files
committed
Added option --extra-packages
1 parent 2eac6c6 commit 9d12ceb

File tree

8 files changed

+57
-18
lines changed

8 files changed

+57
-18
lines changed

include/bootstrap/alpine/deploy.sh

+6-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ then
1414
esac
1515
fi
1616

17-
[ -n "${SOURCE_PATH}" ] || SOURCE_PATH="http://dl-cdn.alpinelinux.org/alpine/"
17+
[ -n "${SOURCE_PATH}" ] || SOURCE_PATH="http://dl-cdn.alpinelinux.org/alpine/"
1818

1919
apk_install()
2020
{
@@ -41,8 +41,8 @@ do_install()
4141

4242
component_exec core/emulator core/mnt core/net
4343

44-
msg "Installing extra packages: "
45-
apk_install shadow sudo tzdata
44+
msg "Installing packages: "
45+
apk_install shadow sudo tzdata ${EXTRA_PACKAGES}
4646
is_ok || return 1
4747

4848
return 0
@@ -60,5 +60,8 @@ cat <<EOF
6060
--source-path="${SOURCE_PATH}"
6161
Installation source, can specify address of the repository or path to the rootfs archive.
6262
63+
--extra-packages="${EXTRA_PACKAGES}"
64+
List of optional installation packages, separated by spaces.
65+
6366
EOF
6467
}

include/bootstrap/archlinux/deploy.sh

+6-3
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ do_install()
7171
local core_files=$(wget -q -O - "${repo_url}/core.db.tar.gz" | tar xOz | grep '.pkg.tar.xz$' | grep -v -e '^linux-' -e '^grub-' -e '^efibootmgr-' -e '^openssh-' | sort)
7272
is_ok "fail" "done" || return 1
7373

74-
msg "Retrieving core packages: "
74+
msg "Retrieving packages: "
7575
local fs_file=$(echo ${core_files} | grep -m1 '^filesystem-')
7676
for pkg_file in ${fs_file} ${core_files}
7777
do
@@ -94,8 +94,8 @@ do_install()
9494
pacman_repository
9595
is_ok "fail" "done"
9696

97-
msg "Installing base packages: "
98-
pacman_install base $(echo ${core_files} | sed 's/-[0-9].*$//')
97+
msg "Installing packages: "
98+
pacman_install base $(echo ${core_files} | sed 's/-[0-9].*$//') ${EXTRA_PACKAGES}
9999
is_ok || return 1
100100

101101
msg -n "Clearing cache ... "
@@ -114,5 +114,8 @@ cat <<EOF
114114
--source-path="${SOURCE_PATH}"
115115
Installation source, can specify address of the repository or path to the rootfs archive.
116116
117+
--extra-packages="${EXTRA_PACKAGES}"
118+
List of optional installation packages, separated by spaces.
119+
117120
EOF
118121
}

include/bootstrap/centos/deploy.sh

+13-4
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ do_install()
6565

6666
msg ":: Installing ${COMPONENT} ... "
6767

68-
local base_packages="audit-libs basesystem bash bzip2-libs ca-certificates chkconfig coreutils cpio cracklib cracklib-dicts cryptsetup-libs curl cyrus-sasl-lib dbus dbus-libs diffutils elfutils-libelf elfutils-libs expat file-libs filesystem gawk gdbm glib2 glibc glibc-common gmp gnupg2 gpgme grep gzip info keyutils-libs kmod kmod-libs krb5-libs libacl libassuan libattr libblkid libcap libcap-ng libcom_err libcurl libdb libdb-utils libffi libgcc libgcrypt libgpg-error libidn libmount libpwquality libselinux libsemanage libsepol libssh2 libstdc++ libtasn1 libuuid libverto libxml2 lua lz4 ncurses ncurses-base ncurses-libs nspr nss nss-pem nss-softokn nss-softokn-freebl nss-sysinit nss-tools nss-util openldap openssl-libs p11-kit p11-kit-trust pam pcre pinentry pkgconfig popt pth pygpgme pyliblzma python python-iniparse python-libs python-pycurl python-urlgrabber pyxattr qrencode-libs readline rootfiles rpm rpm-build-libs rpm-libs rpm-python sed setup shadow-utils shared-mime-info sqlite sudo systemd systemd-libs tzdata ustr util-linux vim-minimal which xz-libs yum yum-metadata-parser yum-plugin-fastestmirror yum-utils zlib"
68+
local core_packages="audit-libs basesystem bash bzip2-libs ca-certificates chkconfig coreutils cpio cracklib cracklib-dicts cryptsetup-libs curl cyrus-sasl-lib dbus dbus-libs diffutils elfutils-libelf elfutils-libs expat file-libs filesystem gawk gdbm glib2 glibc glibc-common gmp gnupg2 gpgme grep gzip info keyutils-libs kmod kmod-libs krb5-libs libacl libassuan libattr libblkid libcap libcap-ng libcom_err libcurl libdb libdb-utils libffi libgcc libgcrypt libgpg-error libidn libmount libpwquality libselinux libsemanage libsepol libssh2 libstdc++ libtasn1 libuuid libverto libxml2 lua lz4 ncurses ncurses-base ncurses-libs nspr nss nss-pem nss-softokn nss-softokn-freebl nss-sysinit nss-tools nss-util openldap openssl-libs p11-kit p11-kit-trust pam pcre pinentry pkgconfig popt pth pygpgme pyliblzma python python-iniparse python-libs python-pycurl python-urlgrabber pyxattr qrencode-libs readline rootfiles rpm rpm-build-libs rpm-libs rpm-python sed setup shadow-utils shared-mime-info sqlite sudo systemd systemd-libs tzdata ustr util-linux vim-minimal which xz-libs yum yum-metadata-parser yum-plugin-fastestmirror yum-utils zlib"
6969
local repo_url="${SOURCE_PATH%/}/${SUITE}/os/${ARCH}"
7070

7171
msg -n "Preparing for deployment ... "
@@ -81,15 +81,15 @@ do_install()
8181
exit 0)
8282
is_ok "fail" "done" || return 1
8383

84-
msg "Retrieving base packages: "
84+
msg "Retrieving packages: "
8585
local package i pkg_url pkg_file pkg_arch
8686
case "${ARCH}" in
8787
i386) pkg_arch="-e i686 -e noarch" ;;
8888
x86_64) pkg_arch="-e x86_64 -e noarch" ;;
8989
armhfp) pkg_arch="-e armv7hl -e noarch" ;;
9090
aarch64) pkg_arch="-e aarch64 -e noarch" ;;
9191
esac
92-
for package in ${base_packages}
92+
for package in ${core_packages}
9393
do
9494
msg -n "${package} ... "
9595
pkg_url=$(grep -e "^.*/${package}-[0-9][0-9\.\-].*rpm$" "${pkg_list}" | grep -m1 ${pkg_arch})
@@ -109,7 +109,7 @@ do_install()
109109

110110
component_exec core/emulator
111111

112-
msg "Installing base packages ... "
112+
msg "Installing packages ... "
113113
chroot_exec /bin/rpm -i --force --nosignature --nodeps /tmp/*.rpm
114114
is_ok || return 1
115115

@@ -128,6 +128,12 @@ do_install()
128128
chroot_exec -u root yum-config-manager --disable centos-kernel >/dev/null
129129
is_ok || return 1
130130

131+
if [ -n "${EXTRA_PACKAGES}" ]; then
132+
msg "Installing extra packages: "
133+
yum_install ${EXTRA_PACKAGES}
134+
is_ok || return 1
135+
fi
136+
131137
return 0
132138
}
133139

@@ -144,5 +150,8 @@ cat <<EOF
144150
--source-path="${SOURCE_PATH}"
145151
Installation source, can specify address of the repository or path to the rootfs archive.
146152
153+
--extra-packages="${EXTRA_PACKAGES}"
154+
List of optional installation packages, separated by spaces.
155+
147156
EOF
148157
}

include/bootstrap/debian/deploy.sh

+6
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ do_install()
5454
#selinux_support && include_packages="${include_packages},selinux-basics"
5555

5656
(set -e
57+
if [ -n "${EXTRA_PACKAGES}" ]; then
58+
include_packages="${include_packages},$(echo ${EXTRA_PACKAGES} | tr ' ' ',')"
59+
fi
5760
DEBOOTSTRAP_DIR="$(component_dir bootstrap/debian)/debootstrap"
5861
. "${DEBOOTSTRAP_DIR}/debootstrap" --no-check-gpg --foreign --extractor=ar --arch="${ARCH}" --exclude="${exclude_packages}" --include="${include_packages}" "${SUITE}" "${CHROOT_DIR}" "${SOURCE_PATH}"
5962
exit 0)
@@ -84,5 +87,8 @@ cat <<EOF
8487
--source-path="${SOURCE_PATH}"
8588
Installation source, can specify address of the repository or path to the rootfs archive.
8689
90+
--extra-packages="${EXTRA_PACKAGES}"
91+
List of optional installation packages, separated by spaces.
92+
8793
EOF
8894
}

include/bootstrap/fedora/deploy.sh

+13-4
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ do_install()
5252

5353
msg ":: Installing ${COMPONENT} ... "
5454

55-
local base_packages="audit-libs basesystem bash bash-completion bzip2-libs ca-certificates chkconfig coreutils cpio cracklib crypto-policies cryptsetup-libs curl cyrus-sasl-lib dbus dbus-libs device-mapper-libs dnf dnf-conf dnf-plugins-core dnf-yum elfutils-libelf elfutils-libs expat fedora-gpg-keys fedora-release fedora-repos file-libs filesystem gawk gdbm glib2 glibc glibc-common gmp gnupg2 gnutls gobject-introspection gpgme grep gzip info iptables-libs json-c keyutils-libs kmod-libs krb5-libs libacl libarchive libargon2 libassuan libattr libblkid libcap libcap-ng libcom_err libcomps libcurl libdb libdb-utils libdnf libffi libgcc libgcrypt libgpg-error libidn2 libmetalink libmodulemd libmount libnghttp2 libnsl2 libpcap libpsl libpwquality librepo libreport-filesystem libseccomp libselinux libsemanage libsepol libsigsegv libsmartcols libsolv libssh libtasn1 libtirpc libunistring libutempter libuuid libverto libxcrypt libxml2 libyaml libzstd lua-libs lz4-libs mpfr ncurses ncurses-base ncurses-libs nettle nspr nss nss-softokn nss-softokn-freebl nss-sysinit nss-util openldap openssl-libs p11-kit p11-kit-trust pam pcre pcre2 popt python3 python3-dnf python3-dnf-plugins-core python3-gobject-base python3-gpg python3-hawkey python3-iniparse python3-libcomps python3-librepo python3-libs python3-pip python3-rpm python3-setuptools python3-six python3-smartcols qrencode-libs readline rootfiles rpm rpm-build-libs rpm-libs rpm-plugin-selinux sed setup shadow-utils sqlite-libs sudo systemd systemd-libs tzdata util-linux vim-minimal which xz-libs zlib"
55+
local core_packages="audit-libs basesystem bash bash-completion bzip2-libs ca-certificates chkconfig coreutils cpio cracklib crypto-policies cryptsetup-libs curl cyrus-sasl-lib dbus dbus-libs device-mapper-libs dnf dnf-conf dnf-plugins-core dnf-yum elfutils-libelf elfutils-libs expat fedora-gpg-keys fedora-release fedora-repos file-libs filesystem gawk gdbm glib2 glibc glibc-common gmp gnupg2 gnutls gobject-introspection gpgme grep gzip info iptables-libs json-c keyutils-libs kmod-libs krb5-libs libacl libarchive libargon2 libassuan libattr libblkid libcap libcap-ng libcom_err libcomps libcurl libdb libdb-utils libdnf libffi libgcc libgcrypt libgpg-error libidn2 libmetalink libmodulemd libmount libnghttp2 libnsl2 libpcap libpsl libpwquality librepo libreport-filesystem libseccomp libselinux libsemanage libsepol libsigsegv libsmartcols libsolv libssh libtasn1 libtirpc libunistring libutempter libuuid libverto libxcrypt libxml2 libyaml libzstd lua-libs lz4-libs mpfr ncurses ncurses-base ncurses-libs nettle nspr nss nss-softokn nss-softokn-freebl nss-sysinit nss-util openldap openssl-libs p11-kit p11-kit-trust pam pcre pcre2 popt python3 python3-dnf python3-dnf-plugins-core python3-gobject-base python3-gpg python3-hawkey python3-iniparse python3-libcomps python3-librepo python3-libs python3-pip python3-rpm python3-setuptools python3-six python3-smartcols qrencode-libs readline rootfiles rpm rpm-build-libs rpm-libs rpm-plugin-selinux sed setup shadow-utils sqlite-libs sudo systemd systemd-libs tzdata util-linux vim-minimal which xz-libs zlib"
5656

5757
local repo_url
5858
if [ "${ARCH}" = "i386" ]
@@ -73,15 +73,15 @@ do_install()
7373
exit 0)
7474
is_ok "fail" "done" || return 1
7575

76-
msg "Retrieving base packages: "
76+
msg "Retrieving packages: "
7777
local package i pkg_url pkg_file pkg_arch
7878
case "${ARCH}" in
7979
i386) pkg_arch="-e i686 -e noarch" ;;
8080
x86_64) pkg_arch="-e x86_64 -e noarch" ;;
8181
armhfp) pkg_arch="-e armv7hl -e noarch" ;;
8282
aarch64) pkg_arch="-e aarch64 -e noarch" ;;
8383
esac
84-
for package in ${base_packages}
84+
for package in ${core_packages}
8585
do
8686
msg -n "${package} ... "
8787
pkg_url=$(grep -e "^.*/${package}-[0-9r][0-9\.\-].*rpm$" "${pkg_list}" | grep -m1 ${pkg_arch})
@@ -101,7 +101,7 @@ do_install()
101101

102102
component_exec core/emulator
103103

104-
msg "Installing base packages ... "
104+
msg "Installing packages ... "
105105
chroot_exec /bin/rpm -i --force --nosignature --nodeps /tmp/*.rpm
106106
is_ok || return 1
107107

@@ -119,6 +119,12 @@ do_install()
119119
dnf_install @minimal-environment --exclude filesystem,openssh-server
120120
is_ok || return 1
121121

122+
if [ -n "${EXTRA_PACKAGES}" ]; then
123+
msg "Installing extra packages: "
124+
dnf_install ${EXTRA_PACKAGES}
125+
is_ok || return 1
126+
fi
127+
122128
return 0
123129
}
124130

@@ -134,5 +140,8 @@ cat <<EOF
134140
--source-path="${SOURCE_PATH}"
135141
Installation source, can specify address of the repository or path to the rootfs archive.
136142
143+
--extra-packages="${EXTRA_PACKAGES}"
144+
List of optional installation packages, separated by spaces.
145+
137146
EOF
138147
}

include/bootstrap/kali/deploy.sh

+3
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,8 @@ cat <<EOF
2828
--source-path="${SOURCE_PATH}"
2929
Installation source, can specify address of the repository or path to the rootfs archive.
3030
31+
--extra-packages="${EXTRA_PACKAGES}"
32+
List of optional installation packages, separated by spaces.
33+
3134
EOF
3235
}

include/bootstrap/slackware/deploy.sh

+7-4
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ do_install()
6363
esac
6464

6565
local cache_dir="${CHROOT_DIR}/tmp"
66-
local extra_packages="l/glibc l/glibc-i18n l/libtermcap l/ncurses ap/diffutils ap/groff ap/man ap/slackpkg ap/sudo n/gnupg n/wget"
66+
local base_packages="l/glibc l/glibc-i18n l/libtermcap l/ncurses ap/diffutils ap/groff ap/man ap/slackpkg ap/sudo n/gnupg n/wget"
6767

6868
msg -n "Preparing for deployment ... "
6969
(set -e
@@ -75,14 +75,14 @@ do_install()
7575
is_ok "fail" "done" || return 1
7676

7777
msg -n "Retrieving packages list ... "
78-
local base_packages=$(wget -q -O - "${repo_url}/a/tagfile" | grep -v -e 'kernel' -e 'efibootmgr' -e 'lilo' -e 'grub' -e 'devs' | awk -F: '{if ($1!="") print "a/"$1}')
78+
local core_packages=$(wget -q -O - "${repo_url}/a/tagfile" | grep -v -e 'kernel' -e 'efibootmgr' -e 'lilo' -e 'grub' -e 'devs' | awk -F: '{if ($1!="") print "a/"$1}')
7979
local pkg_list="${cache_dir}/packages.list"
8080
wget -q -O - "${repo_url}/FILE_LIST" | grep -o -e '/.*\.\tgz$' -e '/.*\.\txz$' > "${pkg_list}"
8181
is_ok "fail" "done" || return 1
8282

83-
msg "Retrieving base packages: "
83+
msg "Retrieving and installing packages: "
8484
local package i pkg_url pkg_file
85-
for package in ${base_packages} ${extra_packages}
85+
for package in ${core_packages} ${base_packages} ${EXTRA_PACKAGES}
8686
do
8787
msg -n "${package} ... "
8888
pkg_url=$(grep -m1 -e "/${package}\-" "${pkg_list}")
@@ -134,5 +134,8 @@ cat <<EOF
134134
--source-path="${SOURCE_PATH}"
135135
Installation source, can specify address of the repository or path to the rootfs archive.
136136
137+
--extra-packages="${EXTRA_PACKAGES}"
138+
List of optional installation packages, separated by spaces.
139+
137140
EOF
138141
}

include/bootstrap/ubuntu/deploy.sh

+3
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,8 @@ cat <<EOF
5252
--source-path="${SOURCE_PATH}"
5353
Installation source, can specify address of the repository or path to the rootfs archive.
5454
55+
--extra-packages="${EXTRA_PACKAGES}"
56+
List of optional installation packages, separated by spaces.
57+
5558
EOF
5659
}

0 commit comments

Comments
 (0)