[gnome-sdk-images] Fix build with linux-user-chroot
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-sdk-images] Fix build with linux-user-chroot
- Date: Tue, 24 Mar 2015 10:12:36 +0000 (UTC)
commit c585c16a1a88070fbc3ff77009812c7f19033e04
Author: Alexander Larsson <alexl redhat com>
Date: Tue Mar 24 11:01:58 2015 +0100
Fix build with linux-user-chroot
build.sh | 64 +++++++++++++++++++-------------------------------
packages/.rpmmacros | 4 +-
setup.sh | 7 ++++-
setup_root.sh | 22 ++++++++++++----
4 files changed, 47 insertions(+), 50 deletions(-)
---
diff --git a/build.sh b/build.sh
index 2473de4..006c27f 100755
--- a/build.sh
+++ b/build.sh
@@ -1,53 +1,37 @@
#!/bin/sh
-ROOT=`pwd`/build/root
-VAR=`pwd`/build/var
-APP=`pwd`/packages
+BUILD=`pwd`/build
+CHROOT=$BUILD/chroot
+ROOT=$BUILD/root
+VAR=$BUILD/var
SRC=`pwd`/
HELPER=`which linux-user-chroot`
declare -x LC_ALL=en_US.utf8
-declare -x HOME=/self
+declare -x HOME=/self/packages
unset ACLOCAL_FLAGS
-declare -x ACLOCAL_PATH="/self/share/aclocal"
-declare -x CPLUS_INCLUDE_PATH="/self/include"
-declare -x C_INCLUDE_PATH="/self/include"
-declare -x GI_TYPELIB_PATH="/self/lib/girepository-1.0"
-declare -x LDFLAGS="-L/self/lib "
-declare -x LD_LIBRARY_PATH="/self/lib"
-declare -x PATH="/usr/bin:/self/bin"
-declare -x PKG_CONFIG_PATH="/self/lib/pkgconfig:/self/share/pkgconfig"
-declare -x XDG_CONFIG_DIRS="/self/etc/xdg:/etc/xdg"
-declare -x XDG_DATA_DIRS="/self/share:/usr/share"
-if test -d packages/.ccache; then
- declare -x PATH="/self/bin/ccache:$PATH"
-fi
-unset PYTHONPATH
+unset ACLOCAL_PATH
+unset CPLUS_INCLUDE_PATH
+unset C_INCLUDE_PATH
+unset GI_TYPELIB_PATH
unset INSTALL
+unset LDFLAGS
+unset LD_LIBRARY_PATH
unset PERL5LIB
+unset PKG_CONFIG_PATH
+unset PYTHONPATH
+unset XDG_CONFIG_DIRS
+unset XDG_DATA_DIRS
+declare -x PATH="/usr/bin:/self/packages/bin"
+if test -d packages/.ccache; then
+ declare -x PATH="/self/packages/bin/ccache:$PATH"
+fi
-CHROOT=`mktemp -d`
-mkdir $CHROOT/var
-mkdir $CHROOT/usr
-mkdir $CHROOT/tmp
-mkdir $CHROOT/self
-mkdir $CHROOT/proc
-mkdir $CHROOT/dev
-mkdir $CHROOT/src
-ln -s usr/lib $CHROOT/lib
-ln -s usr/bin $CHROOT/bin
-ln -s usr/sbin $CHROOT/sbin
-ln -s usr/etc $CHROOT/etc
-
-cp -a $ROOT/usr/etc/passwd $CHROOT
-cp -a $ROOT/usr/etc/group $CHROOT
-cp /etc/passwd $ROOT/usr/etc/
-cp /etc/group $ROOT/usr/etc/
-
-$HELPER --unshare-ipc --unshare-pid --unshare-net --mount-bind /dev /dev --mount-proc /proc --mount-bind
$ROOT/usr /usr --mount-bind $VAR /var --mount-bind $APP /self --mount-bind $SRC /src --chdir /src $CHROOT
"$@"
+echo "builduser:x:`id -u`:`id -u`:Build user:/self/packages:/sbin/nologin" >> $ROOT/usr/etc/passwd
+echo "builduser:x:`id -g`:" >> $ROOT/usr/etc/group
-cp -a $CHROOT/passwd $ROOT/usr/etc/
-cp -a $CHROOT/group $ROOT/usr/etc/
+$HELPER --unshare-ipc --unshare-pid --unshare-net --mount-bind /dev /dev --mount-proc /proc --mount-bind
$ROOT/usr /usr --mount-bind $VAR /var --mount-bind $SRC /self --chdir /self $CHROOT "$@"
-rm -rf $CHROOT
+cp -a $BUILD/passwd.orig $ROOT/usr/etc/passwd
+cp -a $BUILD/group.orig $ROOT/usr/etc/group
diff --git a/packages/.rpmmacros b/packages/.rpmmacros
index 0c95ace..8572ac8 100644
--- a/packages/.rpmmacros
+++ b/packages/.rpmmacros
@@ -1,5 +1,5 @@
-%_topdir /self
-%_srcrpmdir /self/SRPMS
+%_topdir /self/packages
+%_srcrpmdir /self/packages/SRPMS
%_buildrootdir %{_topdir}/BUILDROOT
%_builddir %{_topdir}/BUILD_XXXXX
diff --git a/setup.sh b/setup.sh
index 420a5eb..84f885a 100755
--- a/setup.sh
+++ b/setup.sh
@@ -1,6 +1,9 @@
#!/bin/sh
+mkdir -p packages/RPMS/noarch
+mkdir -p packages/RPMS/x86_64
+
./setup_root.sh $1
./build.sh smart channel -y --add mydb type=rpm-sys name="RPM Database"
-./build.sh smart channel -y --add noarch type=rpm-dir name="RPM Database" path=/self/RPMS/noarch
-./build.sh smart channel -y --add x86_64 type=rpm-dir name="RPM Database" path=/self/RPMS/x86_64/
+./build.sh smart channel -y --add noarch type=rpm-dir name="RPM Database" path=/self/packages/RPMS/noarch
+./build.sh smart channel -y --add x86_64 type=rpm-dir name="RPM Database" path=/self/packages/RPMS/x86_64/
diff --git a/setup_root.sh b/setup_root.sh
index 7db5992..3e4c26b 100755
--- a/setup_root.sh
+++ b/setup_root.sh
@@ -6,12 +6,22 @@ else
mkdir -p build
fi
-ROOT=`pwd`/build/root
-VAR=`pwd`/build/var
+BUILD=`pwd`/build
+CHROOT=$BUILD/chroot
+ROOT=$BUILD/root
+VAR=$BUILD/var
IMAGE=`readlink -f $1`
-rm -rf $ROOT
-mkdir -p $ROOT
-rm -rf $VAR
-mkdir -p $VAR
+rm -rf $ROOT $VAR $CHROOT
+mkdir -p $ROOT $VAR $CHROOT
+
+mkdir -p $CHROOT/var $CHROOT/usr $CHROOT/tmp $CHROOT/self $CHROOT/proc $CHROOT/dev
+ln -s usr/lib $CHROOT/lib
+ln -s usr/bin $CHROOT/bin
+ln -s usr/sbin $CHROOT/sbin
+ln -s /usr/etc $CHROOT/etc
+
(cd $ROOT; tar xvf $IMAGE > /dev/null; mv etc usr; mkdir -p $VAR/lib; mv var/lib/rpm $VAR/lib)
+
+cp -a $ROOT/usr/etc/passwd $BUILD/passwd.orig
+cp -a $ROOT/usr/etc/group $BUILD/group.orig
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]