# HG changeset patch # User Pascal Bellard # Date 1251287518 -7200 # Node ID 530fd66414e77b5f6c751d769903c503b18424d9 # Parent 32c4a55011df9046453816183ceea35619d01264 busybox/rpm2cpio: add bz2 support diff -r 32c4a55011df -r 530fd66414e7 busybox-pam/receipt --- a/busybox-pam/receipt Wed Aug 26 01:38:30 2009 +0200 +++ b/busybox-pam/receipt Wed Aug 26 13:51:58 2009 +0200 @@ -43,6 +43,7 @@ ionice.u syslogd.u iptunnel.u +rpm2cpio.u EOT cp $WOK/$SOURCE/stuff/$SOURCE-$VERSION.config .config sed -i 's/# CONFIG_PAM is not set/CONFIG_PAM=y/' .config diff -r 32c4a55011df -r 530fd66414e7 busybox/receipt --- a/busybox/receipt Wed Aug 26 01:38:30 2009 +0200 +++ b/busybox/receipt Wed Aug 26 13:51:58 2009 +0200 @@ -41,6 +41,7 @@ ionice.u syslogd.u iptunnel.u +rpm2cpio.u EOT cp ../stuff/$PACKAGE-$VERSION.config .config make oldconfig diff -r 32c4a55011df -r 530fd66414e7 busybox/stuff/busybox-1.12.0-rpm2cpio.u --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/busybox/stuff/busybox-1.12.0-rpm2cpio.u Wed Aug 26 13:51:58 2009 +0200 @@ -0,0 +1,33 @@ +Add bz2 support +--- busybox-1.12.0/archival/rpm2cpio.c ++++ busybox-1.12.0/archival/rpm2cpio.c +@@ -55,6 +55,7 @@ + struct rpm_lead lead; + int rpm_fd; + unsigned char magic[2]; ++ USE_DESKTOP(long long) int FAST_FUNC (*unpack)(int src_fd, int dst_fd); + + if (argc == 1) { + rpm_fd = STDIN_FILENO; +@@ -75,11 +76,19 @@ + skip_header(rpm_fd); + + xread(rpm_fd, &magic, 2); ++ unpack = unpack_gz_stream; + if ((magic[0] != 0x1f) || (magic[1] != 0x8b)) { +- bb_error_msg_and_die("invalid gzip magic"); ++ if (!ENABLE_FEATURE_SEAMLESS_BZ2 ++ || magic[0] != 'B' || magic[1] != 'Z' ++ ) { ++ bb_error_msg_and_die("invalid gzip" ++ USE_FEATURE_SEAMLESS_BZ2("/bzip2") ++ " magic"); ++ } ++ unpack = unpack_bz2_stream; + } + +- if (unpack_gz_stream(rpm_fd, STDOUT_FILENO) < 0) { ++ if (unpack(rpm_fd, STDOUT_FILENO) < 0) { + bb_error_msg("error inflating"); + } +