public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Richard Yao" <ryao@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/genkernel:ryao commit in: /
Date: Sun,  9 Jun 2013 10:05:59 +0000 (UTC)	[thread overview]
Message-ID: <1370772318.141fcef83e97dddc7f538035d96c88484f35ee14.ryao@gentoo> (raw)

commit:     141fcef83e97dddc7f538035d96c88484f35ee14
Author:     Richard Yao <ryao <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  6 03:14:18 2013 +0000
Commit:     Richard Yao <ryao <AT> gentoo <DOT> org>
CommitDate: Sun Jun  9 10:05:18 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/genkernel.git;a=commit;h=141fcef8

Remove duplicate files from initramfs

genkernel's initramfs image is built incrementally by appending to the
cpio file. The introduction of copy_binaries resulted in copying
libraries from the host system, which causes the cpio to include certain
libraries multiple times whenever different stages depended upon the
same library. We address this by extracting the cpio to a temporary
directory and then compressing it again to "finalize" it. The extraction
eliminates the duplicate files.

This makes generated initramfs images slightly smaller and in theory,
should make the initramfs load slightly faster.

Signed-off-by: Richard Yao <ryao <AT> gentoo.org>

---
 gen_initramfs.sh | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/gen_initramfs.sh b/gen_initramfs.sh
index 9b354a4..f53f528 100755
--- a/gen_initramfs.sh
+++ b/gen_initramfs.sh
@@ -800,6 +800,20 @@ create_initramfs() {
 		append_data 'overlay'
 	fi
 
+	# Finalize cpio by removing duplicate files
+	print_info 1 "        >> Finalizing cpio..."
+	local TDIR="${TEMP}/initramfs-final"
+	mkdir -p "${TDIR}"
+	cd "${TDIR}"
+
+	cpio --quiet -i -F "${CPIO}" 2> /dev/null \
+		|| gen_die "extracting cpio for finalization"
+	find . -print | cpio ${CPIO_ARGS} -F "${CPIO}" 2>/dev/null \
+		|| gen_die "recompressing cpio"
+
+	cd "${TEMP}"
+	rm -r "${TDIR}"
+
 	if isTrue "${INTEGRATED_INITRAMFS}"
 	then
 		# Explicitly do not compress if we are integrating into the kernel.


             reply	other threads:[~2013-06-09 10:06 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-09 10:05 Richard Yao [this message]
  -- strict thread matches above, loose matches on Subject: below --
2013-10-02 12:43 [gentoo-commits] proj/genkernel:ryao commit in: / Richard Yao
2013-10-02 12:43 Richard Yao
2013-10-02 12:43 Richard Yao
2013-06-09 13:57 Richard Yao
2013-06-09 13:57 [gentoo-commits] proj/genkernel:master " Richard Yao
2013-06-09 13:57 ` [gentoo-commits] proj/genkernel:ryao " Richard Yao
2013-06-09 13:57 Richard Yao
2013-06-09 13:33 Richard Yao
2013-06-09 13:33 Richard Yao
2013-06-09 13:17 Richard Yao
2013-06-09 13:17 Richard Yao
2013-06-09 10:05 Richard Yao
2013-06-09 10:02 Richard Yao
2013-06-09 10:02 Richard Yao
2013-06-09  9:58 Richard Yao
2013-06-09  9:58 Richard Yao
2013-06-09  9:57 Richard Yao
2013-06-09  9:53 Richard Yao
2013-06-09  9:51 Richard Yao
2013-06-09  9:49 Richard Yao
2013-06-09  8:32 Richard Yao
2013-06-09  8:32 Richard Yao
2013-06-09  8:32 Richard Yao
2013-06-09  8:32 Richard Yao
2013-06-09  8:32 Richard Yao
2013-06-09  8:16 Richard Yao
2013-06-09  7:58 Richard Yao
2013-06-09  6:43 Richard Yao
2013-06-06  6:09 Richard Yao
2013-06-06  5:57 Richard Yao
2013-06-06  5:54 Richard Yao
2013-06-06  3:52 Richard Yao
2013-06-06  3:36 Richard Yao
2013-06-06  3:36 Richard Yao
2013-06-06  3:36 Richard Yao
2013-06-06  3:36 Richard Yao
2013-06-03 23:49 [gentoo-commits] proj/genkernel:master " Richard Yao
2013-06-06  3:36 ` [gentoo-commits] proj/genkernel:ryao " Richard Yao
2013-06-03 23:49 Richard Yao
2013-06-03 23:47 Richard Yao
2013-06-03 23:43 Richard Yao
2013-06-03 23:35 Richard Yao
2013-06-03 23:34 Richard Yao
2013-06-03 23:34 Richard Yao
2012-11-11 18:04 Richard Yao
2012-11-11 17:32 Richard Yao
2012-11-05 18:42 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-11-05 18:30 Richard Yao
2012-08-25  1:44 Richard Yao
2012-08-25  1:36 Richard Yao
2012-08-25  1:19 Richard Yao
2012-08-25  1:04 Richard Yao
2012-08-16 18:33 Richard Yao
2012-08-16 18:33 Richard Yao
2012-08-16 18:33 Richard Yao

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=1370772318.141fcef83e97dddc7f538035d96c88484f35ee14.ryao@gentoo \
    --to=ryao@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox