[gnome-sdk-images] Fix build with linux-user-chroot



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]