|
@@ -1,14 +1,103 @@
|
|
#!/bin/bash
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
+initialize-variables(){
|
|
|
|
+ ## set boolian variables
|
|
|
|
+ with_profile=0
|
|
|
|
+ with_setup_vbootstrap=0
|
|
|
|
+ with_dist_upgrade=0
|
|
|
|
+ with_unionfs=0
|
|
|
|
+ with_sign=0
|
|
|
|
+ with_no_install=0
|
|
|
|
+ with_login=0
|
|
|
|
+ with_debug=0
|
|
|
|
+ with_actions=0
|
|
|
|
+ with_ix86_on_x86_64=0
|
|
|
|
+ with_category_main=0
|
|
|
|
+ with_category_plus=0
|
|
|
|
+ with_category_nonfree=0
|
|
|
|
+ with_category_test=0
|
|
|
|
+ with_category_proposed_updates=0
|
|
|
|
+ with_category_security=0
|
|
|
|
+
|
|
|
|
+ return 0
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+check-parameter(){
|
|
|
|
+ [ -z "$*" ] && Usage && return 1
|
|
|
|
+
|
|
|
|
+ while [ ! -z "$*" ]; do
|
|
|
|
+ case $1 in
|
|
|
|
+ --help|help)
|
|
|
|
+ setup-vbuilder ||:
|
|
|
|
+ Usage
|
|
|
|
+ return 1
|
|
|
|
+ ;;
|
|
|
|
+ --profile)
|
|
|
|
+ shift
|
|
|
|
+ with_profile=1
|
|
|
|
+ PROFILE=$1
|
|
|
|
+ check-next-parameter $1 || return 1
|
|
|
|
+ ;;
|
|
|
|
+ --version|--arch|--category|--fetch-url|--target|--rpmbuild-define|--rpmbuild-with|--rpmbuild-without|--bootstrap-dir|--unionfs-dir|--cache-dir|--built-rpms-dir)
|
|
|
|
+ [ $with_actions -eq 1 ] && \
|
|
|
|
+ echo $"E: You can give no more options after actions" && \
|
|
|
|
+ return 1
|
|
|
|
+ shift
|
|
|
|
+ check-next-parameter $1 || return 1
|
|
|
|
+ ;;
|
|
|
|
+ --dist-upgrade|--unionfs|--with-compat32|--sign|--no-install|--login|--debug)
|
|
|
|
+ [ $with_actions -eq 1 ] && \
|
|
|
|
+ echo $"E: You can give no more options after actions" && \
|
|
|
|
+ return 1
|
|
|
|
+ ;;
|
|
|
|
+ --build-rpm|build-rpm|--install-rpm|install-rpm|--remove-rpm|remove-rpm)
|
|
|
|
+ with_actions=1
|
|
|
|
+ shift
|
|
|
|
+ check-next-parameter $1 || return 1
|
|
|
|
+ ;;
|
|
|
|
+ --build|build|--clean|clean)
|
|
|
|
+ with_actions=1
|
|
|
|
+ ;;
|
|
|
|
+ *)
|
|
|
|
+ echo $"E: Missing some parameters after $1"
|
|
|
|
+ return 1
|
|
|
|
+ ;;
|
|
|
|
+ esac
|
|
|
|
+ shift
|
|
|
|
+ done
|
|
|
|
+
|
|
|
|
+ [ $with_actions -eq 0 ] && \
|
|
|
|
+ echo $"E: You must give at least one action" && return 1
|
|
|
|
+
|
|
|
|
+ return 0
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+check-next-parameter(){
|
|
|
|
+ [ -z "$1" ] && echo $"E: Missing some parameters after $1" && return 1
|
|
|
|
+
|
|
|
|
+ [ $(echo $1 | grep '^-') ] && \
|
|
|
|
+ echo $"E: Missing some parameters after $1" && return 1
|
|
|
|
+
|
|
|
|
+ return 0
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+## NOTE: setup-vbuilder() loads
|
|
|
|
+## - system wide configurations (from /etc/vbootstrap/vbuilder.conf)
|
|
|
|
+## - given profile (from /etc/vbootstrap/profile.d/*.conf)
|
|
|
|
+## - given command-line parameters
|
|
|
|
+## where given command-line parameters override the settings given profile,
|
|
|
|
+## and the settings given profile override system wide settings.
|
|
|
|
+## If you use a profile of vbuilder, you may not override the settings
|
|
|
|
+## given profile.
|
|
setup-vbuilder(){
|
|
setup-vbuilder(){
|
|
## check $SUDO_USER and $USERHELPER_UID
|
|
## check $SUDO_USER and $USERHELPER_UID
|
|
RPM_SIGN_USER=$SUDO_USER
|
|
RPM_SIGN_USER=$SUDO_USER
|
|
if [ -z "${RPM_SIGN_USER}" ]; then
|
|
if [ -z "${RPM_SIGN_USER}" ]; then
|
|
- RPM_SIGN_USER=$(getent passwd $USERHELPER_UID | cut -d":" -f1)
|
|
+ [ -z "${USERHELPER_UID}" ] && \
|
|
- if [ -z "${RPM_SIGN_USER}" ]; then
|
|
+ echo $"W: \$SUDO_USER and \$USERHELPER_UID are empty" && \
|
|
- echo $"W: \$SUDO_USER and \$USERHELPER_UID are empty"
|
|
|
|
return 1
|
|
return 1
|
|
- fi
|
|
+
|
|
|
|
+ RPM_SIGN_USER=$(getent passwd $USERHELPER_UID | cut -d":" -f1)
|
|
fi
|
|
fi
|
|
## get $RPM_SIGN_USER's home directory
|
|
## get $RPM_SIGN_USER's home directory
|
|
HOME=$(getent passwd $RPM_SIGN_USER | cut -d":" -f6)
|
|
HOME=$(getent passwd $RPM_SIGN_USER | cut -d":" -f6)
|
|
@@ -19,10 +108,10 @@ setup-vbuilder(){
|
|
. $VBUILDER_CONF
|
|
. $VBUILDER_CONF
|
|
[ $? -eq 1 ] && return 1
|
|
[ $? -eq 1 ] && return 1
|
|
fi
|
|
fi
|
|
- [ -z "${DEFAULT_VERSION}" ] && \
|
|
|
|
- DEFAULT_VERSION=@@VBUILDER_DEFAULT_VERSION@@
|
|
|
|
[ -z "${CATEGORIES}" ] && \
|
|
[ -z "${CATEGORIES}" ] && \
|
|
CATEGORIES=@@VBUILDER_CATEGORIES@@
|
|
CATEGORIES=@@VBUILDER_CATEGORIES@@
|
|
|
|
+ [ -z "${VBOOTSTRAP_FETCH_URL}" ] && \
|
|
|
|
+ VBOOTSTRAP_FETCH_URL=@@VBUILDER_VBOOTSTRAP_FETCH_URL@@
|
|
[ -z "${VBOOTSTRAP_DIR}" ] && \
|
|
[ -z "${VBOOTSTRAP_DIR}" ] && \
|
|
VBOOTSTRAP_DIR=@@VBUILDER_VBOOTSTRAP_DIR@@
|
|
VBOOTSTRAP_DIR=@@VBUILDER_VBOOTSTRAP_DIR@@
|
|
[ -z "${UNIONFS_DIR}" ] && \
|
|
[ -z "${UNIONFS_DIR}" ] && \
|
|
@@ -33,7 +122,16 @@ setup-vbuilder(){
|
|
BUILT_RPMS_DIR=@@VBUILDER_BUILT_RPMS_DIR@@
|
|
BUILT_RPMS_DIR=@@VBUILDER_BUILT_RPMS_DIR@@
|
|
|
|
|
|
## set default version for vbootstrap
|
|
## set default version for vbootstrap
|
|
- VERSION=$DEFAULT_VERSION
|
|
+ VERSION=@@VBUILDER_DEFAULT_VERSION@@
|
|
|
|
+
|
|
|
|
+ ## load profile
|
|
|
|
+ if [ ${with_profile} -eq 1 ]; then
|
|
|
|
+ [ ! -r /etc/vbootstrap/profile.d/${PROFILE}.conf ] && \
|
|
|
|
+ echo $"E: No such profile found: ${PROFILE}" && return 1
|
|
|
|
+
|
|
|
|
+ . /etc/vbootstrap/profile.d/${PROFILE}.conf
|
|
|
|
+ [ $? -eq 1 ] && return 1
|
|
|
|
+ fi
|
|
|
|
|
|
## set current stable relase version
|
|
## set current stable relase version
|
|
STABLE_VERSION=@@VBUILDER_STABLE_VERSION@@
|
|
STABLE_VERSION=@@VBUILDER_STABLE_VERSION@@
|
|
@@ -46,23 +144,6 @@ setup-vbuilder(){
|
|
;;
|
|
;;
|
|
esac
|
|
esac
|
|
|
|
|
|
- ## set boolian variables
|
|
|
|
- with_setup_vbootstrap=0
|
|
|
|
- with_dist_upgrade=0
|
|
|
|
- with_unionfs=0
|
|
|
|
- with_sign=0
|
|
|
|
- with_no_install=0
|
|
|
|
- with_login=0
|
|
|
|
- with_debug=0
|
|
|
|
- with_actions=0
|
|
|
|
- with_ix86_on_x86_64=0
|
|
|
|
- with_category_main=0
|
|
|
|
- with_category_plus=0
|
|
|
|
- with_category_nonfree=0
|
|
|
|
- with_category_test=0
|
|
|
|
- with_category_proposed_updates=0
|
|
|
|
- with_category_security=0
|
|
|
|
-
|
|
|
|
return 0
|
|
return 0
|
|
}
|
|
}
|
|
|
|
|
|
@@ -82,7 +163,7 @@ setup-vbootstrap(){
|
|
|
|
|
|
## check chroot version
|
|
## check chroot version
|
|
case ${VERSION} in
|
|
case ${VERSION} in
|
|
- 4.2|5.2|VineSeed)
|
|
+ 4.2|5.2|6.0|VineSeed)
|
|
;;
|
|
;;
|
|
*)
|
|
*)
|
|
echo $"E: ${VERSION} is NOT supported"
|
|
echo $"E: ${VERSION} is NOT supported"
|
|
@@ -124,12 +205,12 @@ setup-vbootstrap(){
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
- ## set the profile <version>_<arch>
|
|
+ ## set base profile <version>_<arch>
|
|
- PROFILE=${VERSION}_${VARCH}
|
|
+ BASE_PROFILE=${VERSION}_${VARCH}
|
|
|
|
|
|
- ## check support ${PROFILE}
|
|
+ ## check support ${BASE_PROFILE}
|
|
- if [ -z "$(/usr/sbin/vbootstrap | sed -e s/^Usage:.*// -e s/^E:.*// | grep -m 1 ${PROFILE})" ]; then
|
|
+ if [ -z "$(/usr/sbin/vbootstrap | sed -e s/^Usage:.*// -e s/^E:.*// | grep -m 1 ${BASE_PROFILE})" ]; then
|
|
- echo $"E: ${PROFILE} is NOT supported"
|
|
+ echo $"E: ${BASE_PROFILE} is NOT supported"
|
|
return 1
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
|
|
@@ -195,19 +276,29 @@ setup-vbootstrap(){
|
|
fi
|
|
fi
|
|
|
|
|
|
## set ${RPM_PKG_ARCH_LIST}
|
|
## set ${RPM_PKG_ARCH_LIST}
|
|
- RPM_PKG_ARCH_LIST="RPMS/i386 RPMS/i686 RPMS/x86_64 RPMS/ppc RPMS/noarch RPMS/armv3l RPMS/armv4l RPMS/armv4tl RPMS/armv5tejl RPMS/armv5tel RPMS/armv6l RPMS/armv7l SRPMS"
|
|
+ RPM_PKG_ARCH_LIST=" \
|
|
|
|
+ RPMS/i386 RPMS/i486 RPMS/i586 RPMS/i686 RPMS/x86_64 RPMS/ppc \
|
|
|
|
+ RPMS/noarch \
|
|
|
|
+ RPMS/armv3l RPMS/armv4l RPMS/armv4tl \
|
|
|
|
+ RPMS/armv5tejl RPMS/armv5tel RPMS/armv6l RPMS/armv7l \
|
|
|
|
+ SRPMS"
|
|
[ -z "${TARGET}" ] || \
|
|
[ -z "${TARGET}" ] || \
|
|
RPM_PKG_ARCH_LIST="RPMS/${TARGET} ${RPM_PKG_ARCH_LIST}"
|
|
RPM_PKG_ARCH_LIST="RPMS/${TARGET} ${RPM_PKG_ARCH_LIST}"
|
|
|
|
|
|
fi
|
|
fi
|
|
|
|
|
|
## set global variables
|
|
## set global variables
|
|
- BUILD_ROOT=${VBOOTSTRAP_DIR}/${PROFILE}
|
|
|
|
BUILD_USER=vbuilder
|
|
BUILD_USER=vbuilder
|
|
BUILD_DIR=/home/${BUILD_USER}/rpm
|
|
BUILD_DIR=/home/${BUILD_USER}/rpm
|
|
- UNIONFS_ROOT=${UNIONFS_DIR}/${PROFILE}
|
|
+ if [ ${with_profile} -eq 1 ]; then
|
|
|
|
+ BUILD_ROOT=${VBOOTSTRAP_DIR}/${PROFILE}
|
|
|
|
+ UNIONFS_ROOT=${UNIONFS_DIR}/${PROFILE}
|
|
|
|
+ else
|
|
|
|
+ BUILD_ROOT=${VBOOTSTRAP_DIR}/${BASE_PROFILE}
|
|
|
|
+ UNIONFS_ROOT=${UNIONFS_DIR}/${BASE_PROFILE}
|
|
|
|
+ fi
|
|
ARCHIVES_DIR=${BUILD_ROOT}/var/cache/apt/archives
|
|
ARCHIVES_DIR=${BUILD_ROOT}/var/cache/apt/archives
|
|
- EXTERNAL_ARCHIVES_DIR=${CACHE_DIR}/${PROFILE}/apt/archives
|
|
+ EXTERNAL_ARCHIVES_DIR=${CACHE_DIR}/${BASE_PROFILE}/apt/archives
|
|
|
|
|
|
__chroot_sh="/usr/sbin/chroot ${BUILD_ROOT} /bin/sh -c -l"
|
|
__chroot_sh="/usr/sbin/chroot ${BUILD_ROOT} /bin/sh -c -l"
|
|
|
|
|