From: David Gibson <david@gibson.dropbear.id.au>
To: Stefano Brivio <sbrivio@redhat.com>
Cc: passt-dev@passt.top, lvivier@redhat.com,
David Gibson <david@gibson.dropbear.id.au>
Subject: [PATCH v2 4/4] Remove unnecessary cpio_init function
Date: Fri, 26 Apr 2024 12:01:08 +1000 [thread overview]
Message-ID: <20240426020108.1522375-5-david@gibson.dropbear.id.au> (raw)
In-Reply-To: <20240426020108.1522375-1-david@gibson.dropbear.id.au>
The cpio_init function is now only every called with the "discard" option.
But, moreover, what it does is create an initial mostly empty archive which
will just get overwritten by the final archive.
So, it's entirely unnecessary except for one subtlety. Our use of realpath
when generating the final output requires that a file already exist in the
output location. We can fix that by shuffling some things out of a
subshell, removing the need for realpath.
This removes functionality to modify an existing initramfs image. However
that was already broken in a several ways. Just remove it, and update the
help messages to match.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
mbuto | 39 +++++++--------------------------------
1 file changed, 7 insertions(+), 32 deletions(-)
diff --git a/mbuto b/mbuto
index eb559fb..247b63d 100755
--- a/mbuto
+++ b/mbuto
@@ -544,28 +544,6 @@ subopts_get() {
### CPIO #######################################################################
-# cpio_init() - Source existing CPIO archive, or create if needed
-# $1: Path to CPIO archive, might exist, might be discarded if existing
-cpio_init() {
- if [ -f "${OUT}" ] && [ "${1}" != "discard" ]; then
- info "Sourcing CPIO archive from ${OUT}"
-
- if ! "${GZIP}" -dfc "${OUT}" |
- "${CPIO}" --quiet -iD "${wd}"; then
- err "Invalid CPIO archive ${OUT}"
- fi
- else
- info "Creating new CPIO archive"
-
- if [ -z "${OUT}" ]; then
- OUT="$("${MKTEMP}")"
- notice "Creating image: ${OUT}"
- else
- OUT="$("${REALPATH}" "${OUT}")"
- fi
- fi
-}
-
# compress_select() - Try compressors and pick the fastest to decompress image
# $1: Existing CPIO archive
compress_select() {
@@ -987,7 +965,6 @@ pkg_add() {
# build() - Build a new image, sourcing contents
build() {
- cpio_init discard
kmod_init
for __d in ${DIRS}; do
@@ -1083,11 +1060,11 @@ cmds() {
[ "${NOSTRIP}" != "y" ] && strip_all
- ( __out="$("${REALPATH}" "${OUT}")"
+ (
"${CD}" "${wd}"
- "${FIND}" . | "${CPIO}" --create -H newc --quiet > "${OUT}"
- cpio_compress "${__out}"
- )
+ "${FIND}" . | "${CPIO}" --create -H newc --quiet
+ ) > "${OUT}"
+ cpio_compress "${OUT}"
stats
@@ -1139,9 +1116,9 @@ usage() {
echo " -v: verbose"
echo " -h: show this help"
echo
- echo "Build initramfs image unless an existing one is passed."
- echo "Additional programs, kernel modules, device nodes, generic files"
- echo "can be passed as a list of ADD_ON parameters."
+ echo "Build initramfs image. Additional programs, kernel modules,"
+ echo "device nodes, generic files can be passed as a list of ADD_ON"
+ echo "parameters."
echo
echo "Distribution packages (deb and RPM currently supported) can be"
echo "added too, but they will simply be extracted, not installed."
@@ -1173,8 +1150,6 @@ usage() {
echo " Build a base image as a temporary file"
echo " ${0} grep"
echo " Build a new image including grep and needed libraries"
- echo " ${0} -f kata.img zsh_5.6.2-3_amd64.deb"
- echo " Install zsh package to pre-existing kata.img"
echo " ${0} -v -f kata.img -p kata_debug -c lz4"
echo " Use lz4 compression, run a shell before proceeding"
exit 1
--
@@ -544,28 +544,6 @@ subopts_get() {
### CPIO #######################################################################
-# cpio_init() - Source existing CPIO archive, or create if needed
-# $1: Path to CPIO archive, might exist, might be discarded if existing
-cpio_init() {
- if [ -f "${OUT}" ] && [ "${1}" != "discard" ]; then
- info "Sourcing CPIO archive from ${OUT}"
-
- if ! "${GZIP}" -dfc "${OUT}" |
- "${CPIO}" --quiet -iD "${wd}"; then
- err "Invalid CPIO archive ${OUT}"
- fi
- else
- info "Creating new CPIO archive"
-
- if [ -z "${OUT}" ]; then
- OUT="$("${MKTEMP}")"
- notice "Creating image: ${OUT}"
- else
- OUT="$("${REALPATH}" "${OUT}")"
- fi
- fi
-}
-
# compress_select() - Try compressors and pick the fastest to decompress image
# $1: Existing CPIO archive
compress_select() {
@@ -987,7 +965,6 @@ pkg_add() {
# build() - Build a new image, sourcing contents
build() {
- cpio_init discard
kmod_init
for __d in ${DIRS}; do
@@ -1083,11 +1060,11 @@ cmds() {
[ "${NOSTRIP}" != "y" ] && strip_all
- ( __out="$("${REALPATH}" "${OUT}")"
+ (
"${CD}" "${wd}"
- "${FIND}" . | "${CPIO}" --create -H newc --quiet > "${OUT}"
- cpio_compress "${__out}"
- )
+ "${FIND}" . | "${CPIO}" --create -H newc --quiet
+ ) > "${OUT}"
+ cpio_compress "${OUT}"
stats
@@ -1139,9 +1116,9 @@ usage() {
echo " -v: verbose"
echo " -h: show this help"
echo
- echo "Build initramfs image unless an existing one is passed."
- echo "Additional programs, kernel modules, device nodes, generic files"
- echo "can be passed as a list of ADD_ON parameters."
+ echo "Build initramfs image. Additional programs, kernel modules,"
+ echo "device nodes, generic files can be passed as a list of ADD_ON"
+ echo "parameters."
echo
echo "Distribution packages (deb and RPM currently supported) can be"
echo "added too, but they will simply be extracted, not installed."
@@ -1173,8 +1150,6 @@ usage() {
echo " Build a base image as a temporary file"
echo " ${0} grep"
echo " Build a new image including grep and needed libraries"
- echo " ${0} -f kata.img zsh_5.6.2-3_amd64.deb"
- echo " Install zsh package to pre-existing kata.img"
echo " ${0} -v -f kata.img -p kata_debug -c lz4"
echo " Use lz4 compression, run a shell before proceeding"
exit 1
--
2.44.0
next prev parent reply other threads:[~2024-04-26 2:01 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-26 2:01 [PATCH v2 0/4] mbuto: Assorted fixes and simplifications David Gibson
2024-04-26 2:01 ` [PATCH v2 1/4] ${wd} is always set, no need to test for it David Gibson
2024-04-26 2:01 ` [PATCH v2 2/4] Remove stale archivemount support David Gibson
2024-04-26 2:01 ` [PATCH v2 3/4] Split "auto" compression mode into its own path David Gibson
2024-04-26 2:01 ` David Gibson [this message]
2024-04-26 6:14 ` [PATCH v2 0/4] mbuto: Assorted fixes and simplifications Stefano Brivio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240426020108.1522375-5-david@gibson.dropbear.id.au \
--to=david@gibson.dropbear.id.au \
--cc=lvivier@redhat.com \
--cc=passt-dev@passt.top \
--cc=sbrivio@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://passt.top/passt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).