Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.2
build
0001-force-use-of-bsdtar-for-VMs.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-force-use-of-bsdtar-for-VMs.diff of Package build
From da60f9f18958fecdb51091dbca4be01b612699f0 Mon Sep 17 00:00:00 2001 From: Michael Schroeder <mls@suse.de> Date: Tue, 7 Dec 2010 18:06:45 +0100 Subject: [PATCH] force use of bsdtar for VMs --- init_buildsystem | 35 ++++++++++++++++++++++++----------- 1 files changed, 24 insertions(+), 11 deletions(-) diff --git a/init_buildsystem b/init_buildsystem index c1c7e33..426fa2b 100755 --- a/init_buildsystem +++ b/init_buildsystem @@ -129,7 +129,20 @@ preinstall() check_exit echo "preinstalling $1..." cd $BUILD_ROOT || cleanup_and_exit 1 - CPIO="cpio --extract --unconditional --preserve-modification-time --make-directories --no-absolute-filenames --quiet" + if test -x /usr/bin/bsdtar ; then + CPIO="/usr/bin/bsdtar --chroot -o --numeric-owner -x -f-" + TAR="/usr/bin/bsdtar --chroot -o --numeric-owner -x" + else + # cpio isn't safe so we require bsdtar for VMs. chroot is + # unsafe anyways so it's ok for that. + if [ -n "$PREPARE_VM" ]; then + echo "Error: setting up a VM requires bsdtar for security reasons." + echo "Please install bsdtar" + cleanup_and_exit 1 + fi + CPIO="cpio --extract --unconditional --preserve-modification-time --make-directories --no-absolute-filenames --quiet" + TAR="tar -x" + fi if test -e "$BUILD_ROOT/.init_b_cache/rpms/$1.rpm" ; then PAYLOADDECOMPRESS=cat case `rpm -qp --nodigest --nosignature --qf "%{PAYLOADCOMPRESSOR}\n" "$BUILD_ROOT/.init_b_cache/rpms/$1.rpm"` in @@ -151,22 +164,22 @@ preinstall() else rpm2cpio "$BUILD_ROOT/.init_b_cache/rpms/$1.rpm" | $PAYLOADDECOMPRESS | $CPIO fi - if test -e .init_b_cache/scripts/$1.run ; then - rpm -qp --nodigest --nosignature --qf "%{PREIN}" "$BUILD_ROOT/.init_b_cache/rpms/$1.rpm" > .init_b_cache/scripts/$1.pre - rpm -qp --nodigest --nosignature --qf "%{POSTIN}" "$BUILD_ROOT/.init_b_cache/rpms/$1.rpm" > .init_b_cache/scripts/$1.post + if test -e ".init_b_cache/scripts/$1.run" ; then + rpm -qp --nodigest --nosignature --qf "%{PREIN}" "$BUILD_ROOT/.init_b_cache/rpms/$1.rpm" > ".init_b_cache/scripts/$1.pre" + rpm -qp --nodigest --nosignature --qf "%{POSTIN}" "$BUILD_ROOT/.init_b_cache/rpms/$1.rpm" > ".init_b_cache/scripts/$1.post" echo -n '(none)' > .init_b_cache/scripts/.none - cmp -s .init_b_cache/scripts/$1.pre .init_b_cache/scripts/.none && rm -f .init_b_cache/scripts/$1.pre - cmp -s .init_b_cache/scripts/$1.post .init_b_cache/scripts/.none && rm -f .init_b_cache/scripts/$1.post + cmp -s ".init_b_cache/scripts/$1.pre" .init_b_cache/scripts/.none && rm -f ".init_b_cache/scripts/$1.pre" + cmp -s ".init_b_cache/scripts/$1.post" .init_b_cache/scripts/.none && rm -f ".init_b_cache/scripts/$1.post" rm -f .init_b_cache/scripts/.none fi elif test -e "$BUILD_ROOT/.init_b_cache/rpms/$1.deb" ; then ar x "$BUILD_ROOT/.init_b_cache/rpms/$1.deb" control.tar.gz data.tar.gz mkdir -p .init_b_cache/scripts/control - tar -C .init_b_cache/scripts/control -xzf control.tar.gz - tar xzf data.tar.gz - if test -e .init_b_cache/scripts/$1.run ; then - test -e .init_b_cache/scripts/control/preinst && mv .init_b_cache/scripts/control/preinst .init_b_cache/scripts/$1.pre - test -e .init_b_cache/scripts/control/postinst && mv .init_b_cache/scripts/control/postinst .init_b_cache/scripts/$1.post + $TAR -C .init_b_cache/scripts/control -z -f control.tar.gz + $TAR -z -f data.tar.gz + if test -e ".init_b_cache/scripts/$1.run" ; then + test -e .init_b_cache/scripts/control/preinst && mv .init_b_cache/scripts/control/preinst ".init_b_cache/scripts/$1.pre" + test -e .init_b_cache/scripts/control/postinst && mv .init_b_cache/scripts/control/postinst ".init_b_cache/scripts/$1.post" fi rm -rf .init_b_cache/scripts/control control.tar.gz data.tar.gz else -- 1.7.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor