|
@@ -8,7 +8,7 @@ Usage: $(basename $0) {--version [version]} {--arch [arch]} {--dist-upgrade} {--
|
|
|
Options:
|
|
|
--version: set [version] (default: ${DEFAULT_VERSION})
|
|
|
--arch: set [arch] (default: $(uname -i))
|
|
|
- --dist-upgrade: build VineSeed bootstrap via ${STABLE_VERSION}
|
|
|
+ --dist-upgrade: make VineSeed bootstrap via ${STABLE_VERSION}
|
|
|
--target: build rpms with [target]
|
|
|
--with-compat32: build rpms with compat32 on boostrap
|
|
|
|
|
@@ -41,15 +41,17 @@ Usage_ja(){
|
|
|
}
|
|
|
|
|
|
Msg_MissingParameter_C(){
|
|
|
- while read para; do
|
|
|
- cat<<EOF
|
|
|
+ para=$1
|
|
|
+ cat<<EOF
|
|
|
E: Missing some parameter before ${para}
|
|
|
EOF
|
|
|
- done
|
|
|
}
|
|
|
|
|
|
Msg_MissingParameter_ja(){
|
|
|
- Msg_MissingParameter_C
|
|
|
+ para=$1
|
|
|
+ cat<<EOF
|
|
|
+E: ${para} 以前のいくつかのパラメータに間違いがあります
|
|
|
+EOF
|
|
|
}
|
|
|
|
|
|
Msg_NoSupportVARCH_C(){
|
|
@@ -59,17 +61,21 @@ EOF
|
|
|
}
|
|
|
|
|
|
Msg_NoSupportVARCH_ja(){
|
|
|
- Msg_NoSupportVARCH_C
|
|
|
+ cat<<EOF
|
|
|
+E: ${VARCH} アーキテクチャは $(uname -i) 上で非サポートです
|
|
|
+EOF
|
|
|
}
|
|
|
|
|
|
Msg_NoSupportVERSION_C(){
|
|
|
cat<<EOF
|
|
|
-E: version ${VERSION} is NO support
|
|
|
+E: ${VERSION} is NO support
|
|
|
EOF
|
|
|
}
|
|
|
|
|
|
Msg_NoSupportVERSION_ja(){
|
|
|
- Msg_NoSupportVERSION_C
|
|
|
+ cat<<EOF
|
|
|
+E: バージョン ${VERSION} は非サポートです
|
|
|
+EOF
|
|
|
}
|
|
|
|
|
|
Msg_NoSupportDistUpgradeVERSION_C(){
|
|
@@ -79,7 +85,9 @@ EOF
|
|
|
}
|
|
|
|
|
|
Msg_NoSupportDistUpgradeVERSION_ja(){
|
|
|
- Msg_NoSupportDistUpgradeVERSION_C
|
|
|
+ cat<<EOF
|
|
|
+E: バージョン ${VERSION} は --dist-upgrade オプションを非サポートです
|
|
|
+EOF
|
|
|
}
|
|
|
|
|
|
Msg_NoSupportTARGET_C(){
|
|
@@ -89,11 +97,46 @@ EOF
|
|
|
}
|
|
|
|
|
|
Msg_NoSupportTARGET_ja(){
|
|
|
- Msg_NoSupportTARGET_C
|
|
|
+ cat<<EOF
|
|
|
+E: rpm ビルドターゲット ${TARGET} は非サポートです
|
|
|
+EOF
|
|
|
+}
|
|
|
+
|
|
|
+Msg_NotPackageName_C(){
|
|
|
+ cat<<EOF
|
|
|
+E: $RPM_PKG is not package name
|
|
|
+EOF
|
|
|
+}
|
|
|
+
|
|
|
+Msg_NotPackageName_ja(){
|
|
|
+ cat<<EOF
|
|
|
+E: $RPM_PKG はパッケージ名でありません
|
|
|
+EOF
|
|
|
+}
|
|
|
+
|
|
|
+Msg_NotSourceRPM_C(){
|
|
|
+ cat<<EOF
|
|
|
+E: $RPM_PKG is not source RPM package
|
|
|
+EOF
|
|
|
+}
|
|
|
+
|
|
|
+Msg_NotSourceRPM_ja(){
|
|
|
+ cat<<EOF
|
|
|
+E: $RPM_PKG はソース RPM パッケージでありません
|
|
|
+EOF
|
|
|
}
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
+check-next-parameter(){
|
|
|
+ arg=$1
|
|
|
+ if [ $(echo ${arg} | grep '^-') ]; then
|
|
|
+ Msg_MissingParameter_$LOCALE ${arg}
|
|
|
+ return 1
|
|
|
+ fi
|
|
|
+ return 0
|
|
|
+}
|
|
|
+
|
|
|
setup-vbuilder(){
|
|
|
## load default settings
|
|
|
if [ -r /etc/vbootstrap/vbuilder.conf ]; then
|
|
@@ -122,15 +165,6 @@ setup-vbuilder(){
|
|
|
with_dist_upgrade=0
|
|
|
}
|
|
|
|
|
|
-check-next-parameter(){
|
|
|
- while read arg; do
|
|
|
- if [ $(echo ${arg} | grep '^-') ]; then
|
|
|
- echo ${arg} | Msg_MissingParameter_$LOCALE
|
|
|
- return 1
|
|
|
- fi
|
|
|
- done
|
|
|
-}
|
|
|
-
|
|
|
setup-vbootstrap(){
|
|
|
if [ ${with_setup_vbootstrap} -eq 0 ]; then
|
|
|
with_setup_vbootstrap=1
|
|
@@ -200,26 +234,78 @@ setup-vbootstrap(){
|
|
|
mkdir -p $VBOOTSTRAP_DIR
|
|
|
}
|
|
|
|
|
|
+setup-vbootstrap-rpm(){
|
|
|
+ setup-vbootstrap
|
|
|
+
|
|
|
+ ## check ${BUILD_ROOT}
|
|
|
+ [ -d ${BUILD_ROOT} ] || Build
|
|
|
+
|
|
|
+ DIST_RELEASE=$(cat ${BUILD_ROOT}/etc/vine-release | cut -f3 -d" " | cut -f1 -d.)
|
|
|
+
|
|
|
+ if [ -f $RPM_PKG ]; then
|
|
|
+ BASE_RPM_PKG=$(basename $RPM_PKG)
|
|
|
+ cp -f $RPM_PKG $BUILD_ROOT${BUILD_DIR}
|
|
|
+ else
|
|
|
+ BASE_RPM_PKG=$RPM_PKG
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+## mount /home
|
|
|
+mount_home(){
|
|
|
+ if [ "$1" = "--umount" ]; then
|
|
|
+ [ -d ${BUILD_ROOT}/home ] || return 1
|
|
|
+ [ -z "$(mount | grep ${BUILD_ROOT}/home)" ] || \
|
|
|
+ umount ${BUILD_ROOT}/home
|
|
|
+ else
|
|
|
+ [ -d ${BUILD_ROOT}/home ] || mkdir -p ${BUILD_ROOT}/home
|
|
|
+ [ -z "$(mount | grep ${BUILD_ROOT}/home)" ] && \
|
|
|
+ mount -o rbind /home ${BUILD_ROOT}/home
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+## mount /tmp for applications which use X
|
|
|
+mount_tmp(){
|
|
|
+ if [ "$1" = "--umount" ]; then
|
|
|
+ [ -d ${BUILD_ROOT}/tmp ] || return 1
|
|
|
+ [ -z "$(mount | grep ${BUILD_ROOT}/tmp)" ] || \
|
|
|
+ umount ${BUILD_ROOT}/tmp
|
|
|
+ else
|
|
|
+ [ -d ${BUILD_ROOT}/tmp ] || mkdir -p ${BUILD_ROOT}/tmp
|
|
|
+ [ -z "$(mount | grep ${BUILD_ROOT}/tmp)" ] && \
|
|
|
+ mount --bind /tmp ${BUILD_ROOT}/tmp
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+## mount virtual file systems
|
|
|
+mount_vfs(){
|
|
|
+ if [ "$1" = "--umount" ]; then
|
|
|
+ # for dir in /sys /proc /dev/shm /dev/pts /dev; do
|
|
|
+ # [ -z "$(mount | grep ${BUILD_ROOT}${dir})" ] || \
|
|
|
+ # umount ${BUILD_ROOT}${dir}
|
|
|
+ # done
|
|
|
+ [ -d ${BUILD_ROOT}/proc ] || return 1
|
|
|
+ [ -z "$(mount | grep ${BUILD_ROOT}/proc)" ] || \
|
|
|
+ umount ${BUILD_ROOT}/proc
|
|
|
+ else
|
|
|
+ # for dir in /dev /dev/pts /dev/shm /proc /sys; do
|
|
|
+ # [ -d ${BUILD_ROOT}${dir} ] || mkdir -p ${BUILD_ROOT}${dir}
|
|
|
+ # mount --bind ${dir} ${BUILD_ROOT}${dir}
|
|
|
+ # done
|
|
|
+ [ -d ${BUILD_ROOT}/proc ] || mkdir -p ${BUILD_ROOT}/proc
|
|
|
+ [ -z "$(mount | grep ${BUILD_ROOT}/proc)" ] && \
|
|
|
+ mount --bind /proc ${BUILD_ROOT}/proc
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
##############################################################################
|
|
|
|
|
|
Clean(){
|
|
|
setup-vbootstrap
|
|
|
|
|
|
- # ## umount /home
|
|
|
- # [ -z "$(mount | grep ${BUILD_ROOT}/home)" ] || \
|
|
|
- # umount ${BUILD_ROOT}/home
|
|
|
-
|
|
|
- # ## umount /tmp for applications which use X
|
|
|
- # [ -z "$(mount | grep ${BUILD_ROOT}/tmp)" ] || \
|
|
|
- # umount ${BUILD_ROOT}/tmp
|
|
|
-
|
|
|
- # ## umount virtual file systems
|
|
|
- # for dir in /sys /proc /dev/shm /dev/pts /dev; do
|
|
|
- # [ -z "$(mount | grep ${BUILD_ROOT}${dir})" ] || \
|
|
|
- # umount ${BUILD_ROOT}${dir}
|
|
|
- # done
|
|
|
- [ -z "$(mount | grep ${BUILD_ROOT}/proc)" ] || \
|
|
|
- umount ${BUILD_ROOT}/proc
|
|
|
+ # mount_home --umount
|
|
|
+ # mount_tmp --umount
|
|
|
+ mount_vfs --umount
|
|
|
|
|
|
if [ -d ${BUILD_ROOT}/var/cache/apt/archives ]; then
|
|
|
echo -n "Caching RPMs in ${CACHE_DIR}/apt/archives ... "
|
|
@@ -233,6 +319,8 @@ Clean(){
|
|
|
rm -rf ${BUILD_ROOT}
|
|
|
echo "done."
|
|
|
fi
|
|
|
+
|
|
|
+ echo "Cleanup a build farm for ${VERSION} done."
|
|
|
}
|
|
|
|
|
|
Build(){
|
|
@@ -251,21 +339,9 @@ Build(){
|
|
|
/usr/sbin/vbootstrap ${VERSION} ${BUILD_ROOT}
|
|
|
fi
|
|
|
|
|
|
- # ## mount virtual file systems
|
|
|
- # for dir in /dev /dev/pts /dev/shm /proc /sys; do
|
|
|
- # [ -d ${BUILD_ROOT}${dir} ] || mkdir -p ${BUILD_ROOT}${dir}
|
|
|
- # mount --bind ${dir} ${BUILD_ROOT}${dir}
|
|
|
- # done
|
|
|
- [ -d ${BUILD_ROOT}/proc ] || mkdir -p ${BUILD_ROOT}/proc
|
|
|
- mount --bind /proc ${BUILD_ROOT}/proc
|
|
|
-
|
|
|
- # ## mount /tmp for applications which use X
|
|
|
- # [ -d ${BUILD_ROOT}/tmp ] || mkdir -p ${BUILD_ROOT}/tmp
|
|
|
- # mount --bind /tmp ${BUILD_ROOT}/tmp
|
|
|
-
|
|
|
- # ## mount /home
|
|
|
- # [ -d ${BUILD_ROOT}/home ] || mkdir -p ${BUILD_ROOT}/home
|
|
|
- # mount -o rbind /home ${BUILD_ROOT}/home
|
|
|
+ mount_vfs
|
|
|
+ # mount_tmp
|
|
|
+ # mount_home
|
|
|
|
|
|
if [ -d ${CACHE_DIR} ]; then
|
|
|
echo -n "Copying cached RPMs to ${BUILD_ROOT}/var/cache/apt/archives ... "
|
|
@@ -299,48 +375,43 @@ 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}"
|
|
|
|
|
|
- echo "Making a build farm for ${VERSION} done."
|
|
|
-}
|
|
|
-
|
|
|
-setup-vbootstrap-rpm(){
|
|
|
- setup-vbootstrap
|
|
|
-
|
|
|
- ## check ${BUILD_ROOT}
|
|
|
- [ -d ${BUILD_ROOT} ] || Build
|
|
|
-
|
|
|
- DIST_RELEASE=$(cat ${BUILD_ROOT}/etc/vine-release | cut -f3 -d" " | cut -f1 -d.)
|
|
|
+ # mount_home --umount
|
|
|
+ # mount_tmp --umount
|
|
|
+ mount_vfs --umount
|
|
|
|
|
|
- if [ -f $RPM_PKG ]; then
|
|
|
- BASE_RPM_PKG=$(basename $RPM_PKG)
|
|
|
- cp -f $RPM_PKG $BUILD_ROOT${BUILD_DIR}
|
|
|
- else
|
|
|
- BASE_RPM_PKG=$RPM_PKG
|
|
|
- fi
|
|
|
+ echo "Making a build farm for ${VERSION} done."
|
|
|
}
|
|
|
|
|
|
RPM_Remove(){
|
|
|
setup-vbootstrap-rpm
|
|
|
+ mount_vfs
|
|
|
|
|
|
if [ -f $RPM_PKG ]; then
|
|
|
- echo "$RPM_PKG: not package name."
|
|
|
+ Msg_NotPackageName_$LOCALE
|
|
|
exit 1
|
|
|
fi
|
|
|
/usr/sbin/chroot ${BUILD_ROOT} \
|
|
|
/bin/sh -c "apt-get -y remove $BASE_RPM_PKG"
|
|
|
+
|
|
|
+ mount_vfs --umount
|
|
|
}
|
|
|
|
|
|
RPM_Install(){
|
|
|
setup-vbootstrap-rpm
|
|
|
+ mount_vfs
|
|
|
|
|
|
/usr/sbin/chroot ${BUILD_ROOT} \
|
|
|
/bin/sh -c "cd ${BUILD_DIR} && apt-get -y install $BASE_RPM_PKG"
|
|
|
+
|
|
|
+ mount_vfs --umount
|
|
|
}
|
|
|
|
|
|
RPM_Build(){
|
|
|
setup-vbootstrap-rpm
|
|
|
+ mount_vfs
|
|
|
|
|
|
if [ ! -f $RPM_PKG ]; then
|
|
|
- echo "$RPM_PKG: not source RPM package."
|
|
|
+ Msg_NotSourceRPM_$LOCALE
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
@@ -379,6 +450,9 @@ RPM_Build(){
|
|
|
-exec $__install -m0644 {} ${BUILT_RPMS_DIR}/${i}/ \;
|
|
|
fi
|
|
|
done
|
|
|
+
|
|
|
+ mount_vfs --umount
|
|
|
+
|
|
|
echo "done."
|
|
|
}
|
|
|
|
|
@@ -393,8 +467,7 @@ while [ $# -gt 0 ]; do
|
|
|
case $tmpARG in
|
|
|
--version|--arch|--target|--build-rpm|--install-rpm|--remove-rpm)
|
|
|
shift
|
|
|
- echo $1 | check-next-parameter
|
|
|
- [ $? -eq 1 ] && exit 1
|
|
|
+ check-next-parameter $1 || exit 1
|
|
|
;;
|
|
|
--dist-upgrade|--with-compat32|--build|--clean)
|
|
|
;;
|