|
@@ -257,8 +257,9 @@ setup-vbootstrap(){
|
|
|
|
|
|
BUILD_ROOT=${VBOOTSTRAP_DIR}/${VERSION}
|
|
|
BUILD_USER=vbuilder
|
|
|
- CACHE_DIR=${VBOOTSTRAP_DIR}/cache/${VERSION}
|
|
|
BUILD_DIR=/home/${BUILD_USER}/rpm
|
|
|
+ ARCHIVES_DIR=${BUILD_ROOT}/var/cache/apt/archives
|
|
|
+ CACHE_DIR=${VBOOTSTRAP_DIR}/cache/${VERSION}/apt/archives
|
|
|
|
|
|
mkdir -p $VBOOTSTRAP_DIR
|
|
|
}
|
|
@@ -347,6 +348,21 @@ mount_vfs(){
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
+## mount ${CACHE_DIR} to ${ARCHIVES_DIR}
|
|
|
+mount_cache_dir(){
|
|
|
+ if [ "$1" = "--umount" ]; then
|
|
|
+ [ -d ${ARCHIVES_DIR} ] || return 1
|
|
|
+ [ -z "$(mount | grep ${ARCHIVES_DIR})" ] || \
|
|
|
+ umount ${ARCHIVES_DIR}
|
|
|
+ else
|
|
|
+ [ -d ${CACHE_DIR} ] || mkdir -p ${CACHE_DIR}
|
|
|
+ [ -d ${ARCHIVES_DIR} ] || mkdir -p ${ARCHIVES_DIR}
|
|
|
+ [ -z "$(mount | grep ${ARCHIVES_DIR})" ] && \
|
|
|
+ mount --bind ${CACHE_DIR} ${ARCHIVES_DIR}
|
|
|
+ [ -d ${ARCHIVES_DIR}/partial ] || mkdir -p ${ARCHIVES_DIR}/partial
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
@@ -356,15 +372,9 @@ Clean(){
|
|
|
# mount_home --umount
|
|
|
# mount_tmp --umount
|
|
|
mount_vfs --umount
|
|
|
+ mount_cache_dir --umount
|
|
|
apt-get-update --host
|
|
|
|
|
|
- if [ -d ${BUILD_ROOT}/var/cache/apt/archives ]; then
|
|
|
- echo -n "Caching RPMs in ${CACHE_DIR}/apt/archives ... "
|
|
|
- [ -d ${CACHE_DIR}/apt/archives ] || mkdir -p ${CACHE_DIR}/apt/archives
|
|
|
- mv -f ${BUILD_ROOT}/var/cache/apt/archives/*.rpm ${CACHE_DIR}/apt/archives/
|
|
|
- echo "done."
|
|
|
- fi
|
|
|
-
|
|
|
if [ -d ${BUILD_ROOT} ]; then
|
|
|
echo -n "Cleaning build root \"${BUILD_ROOT}\" ... "
|
|
|
rm -rf ${BUILD_ROOT}
|
|
@@ -390,16 +400,11 @@ Build(){
|
|
|
/usr/sbin/vbootstrap ${VERSION} ${BUILD_ROOT}
|
|
|
fi
|
|
|
|
|
|
+ mount_cache_dir
|
|
|
mount_vfs
|
|
|
# mount_tmp
|
|
|
# mount_home
|
|
|
|
|
|
- if [ -d ${CACHE_DIR} ]; then
|
|
|
- echo -n "Copying cached RPMs to ${BUILD_ROOT}/var/cache/apt/archives ... "
|
|
|
- cp -f ${CACHE_DIR}/apt/archives/*.rpm ${BUILD_ROOT}/var/cache/apt/archives/
|
|
|
- echo "done."
|
|
|
- fi
|
|
|
-
|
|
|
/usr/sbin/chroot ${BUILD_ROOT} \
|
|
|
/bin/sh -c 'apt-get update && apt-get -y dist-upgrade'
|
|
|
|
|
@@ -430,9 +435,16 @@ Build(){
|
|
|
/usr/sbin/chroot ${BUILD_ROOT} /bin/sh -c '/usr/sbin/pwconv'
|
|
|
/usr/sbin/chroot ${BUILD_ROOT} /bin/sh -c "/usr/sbin/useradd ${BUILD_USER}"
|
|
|
|
|
|
+ ##!! for rpm-4.8.0 or higher
|
|
|
+ ##!! (See http://trac.vinelinux.org/wiki/Vine6/AboutUpdateToolchain)
|
|
|
+ if [ "$(echo ${VERSION} | sed -e "s/\(VineSeed\).*/\1/")" = "VineSeed" ]; then
|
|
|
+ /usr/sbin/chroot ${BUILD_ROOT} /bin/sh -c "sed -i -e 's/^%_topdir/#%_topdir/' /home/${BUILD_USER}/.rpmmacros"
|
|
|
+ fi
|
|
|
+
|
|
|
# mount_home --umount
|
|
|
# mount_tmp --umount
|
|
|
mount_vfs --umount
|
|
|
+ mount_cache_dir --umount
|
|
|
apt-get-update --host
|
|
|
|
|
|
echo "Making a build farm for ${VERSION} done."
|
|
@@ -440,6 +452,7 @@ Build(){
|
|
|
|
|
|
RPM_Remove(){
|
|
|
setup-vbootstrap-rpm
|
|
|
+ mount_cache_dir
|
|
|
mount_vfs
|
|
|
|
|
|
if [ -f $RPM_PKG ]; then
|
|
@@ -450,11 +463,13 @@ RPM_Remove(){
|
|
|
/bin/sh -c "apt-get -y remove $BASE_RPM_PKG"
|
|
|
|
|
|
mount_vfs --umount
|
|
|
+ mount_cache_dir --umount
|
|
|
apt-get-update --host
|
|
|
}
|
|
|
|
|
|
RPM_Install(){
|
|
|
setup-vbootstrap-rpm
|
|
|
+ mount_cache_dir
|
|
|
mount_vfs
|
|
|
apt-get-update --chroot
|
|
|
|
|
@@ -462,11 +477,13 @@ RPM_Install(){
|
|
|
/bin/sh -c "cd ${BUILD_DIR} && apt-get -y install $BASE_RPM_PKG"
|
|
|
|
|
|
mount_vfs --umount
|
|
|
+ mount_cache_dir --umount
|
|
|
apt-get-update --host
|
|
|
}
|
|
|
|
|
|
RPM_Build(){
|
|
|
setup-vbootstrap-rpm
|
|
|
+ mount_cache_dir
|
|
|
mount_vfs
|
|
|
|
|
|
if [ ! -f $RPM_PKG ]; then
|
|
@@ -511,6 +528,7 @@ RPM_Build(){
|
|
|
done
|
|
|
|
|
|
mount_vfs --umount
|
|
|
+ mount_cache_dir --umount
|
|
|
apt-get-update --host
|
|
|
|
|
|
echo "done."
|