Browse Source

upgrade to 0.0.4; added vbuilder.conf.in

git-svn-id: http://trac.vinelinux.org/repos/projects/vbootstrap/trunk@323 ec354946-7b23-47d6-9f5a-488ba84defc7
munepi 14 years ago
parent
commit
9bf587a44b

+ 12 - 3
Makefile

@@ -1,20 +1,29 @@
 NAME=vbootstrap
 VERSION=$(shell awk '/%define version/ { print $$3 }' ${NAME}.spec)
-DEFAULT_VERSION=VineSeed
+
+VBUILDER_VBOOTSTRAP_DIR=/var/local/vbootstrap
+VBUILDER_DEFAULT_VERSION=VineSeed
 
 DESTDIR=
 
 all:
 	sed -e "s/@@VBOOTSTRAP_VERSION@@/${VERSION}/g" vbootstrap.sh.in > vbootstrap.sh
-	sed -e "s/@@DEFAULT_VERSION@@/${DEFAULT_VERSION}/g" vbuilder.sh.in > vbuilder.sh
+	sed -e "s/@@VBUILDER_DEFAULT_VERSION@@/${VBUILDER_DEFAULT_VERSION}/g" \
+	    -e "s|@@VBUILDER_VBOOTSTRAP_DIR@@|${VBUILDER_VBOOTSTRAP_DIR}|g" \
+		vbuilder.sh.in > vbuilder.sh
+	sed -e "s/@@VBUILDER_DEFAULT_VERSION@@/${VBUILDER_DEFAULT_VERSION}/g" \
+	    -e "s|@@VBUILDER_VBOOTSTRAP_DIR@@|${VBUILDER_VBOOTSTRAP_DIR}|g" \
+		vbuilder.conf.in > vbuilder.conf
 
 install:
 	install -d ${DESTDIR}/usr/share/vbootstrap/{scripts,sources.list.d}
 	install -d ${DESTDIR}/usr/sbin
+	install -d ${DESTDIR}/etc/vbootstrap
 	install -m 644 vbootstrap/scripts/* ${DESTDIR}/usr/share/vbootstrap/scripts/
 	install -m 644 vbootstrap/sources.list.d/* ${DESTDIR}/usr/share/vbootstrap/sources.list.d
 	install -m 755 vbootstrap.sh ${DESTDIR}/usr/sbin/vbootstrap
 	install -m 755 vbuilder.sh ${DESTDIR}/usr/sbin/vbuilder
+	install -m 644 vbuilder.conf ${DESTDIR}/etc/vbootstrap/vbuilder.conf
 
 tarbz2: clean
 	cd .. && rm -rf ${NAME}-${VERSION}
@@ -31,4 +40,4 @@ rpm: tarbz2
 	rpm -ba ${NAME}.spec
 
 clean:
-	rm -fr *~ .*???~ vbootstrap.sh vbuilder.sh
+	rm -fr *~ .*???~ vbootstrap.sh vbuilder.sh vbuilder.conf

+ 4 - 2
vbootstrap.spec

@@ -55,12 +55,14 @@ make DESTDIR=$RPM_BUILD_ROOT install
 %{_sbindir}/vbuilder
 %dir %{_datadir}/vbootstrap
 %{_datadir}/vbootstrap/*
+%config(noreplace) %{_sysconfdir}/vbootstrap/vbuilder.conf
 
 
 %changelog
-* XXX MMM DD 2009  <> 0.0.4-1
+* Sun Sep 13 2009 Munehiro Yamamoto <munepi@vinelinux.org> 0.0.4-1
+- added vine-release in BASE_PKGS of scripts/*
+- added vbuilder.conf
 - updated vbuilder.sh.in
-  - fixed to check a chroot archtecture
 
 * Tue Sep 01 2009 Munehiro Yamamoto <munepi@vinelinux.org> 0.0.3-2
 - rebuilt to add signature

+ 1 - 1
vbootstrap/scripts/4.2

@@ -1,7 +1,7 @@
 # Vine Linux 4.2
 
 INSTVER="4.2"
-BASE_PKGS="setup glibc coreutils bash rpm apt rootfiles"
+BASE_PKGS="setup glibc coreutils bash rpm apt rootfiles vine-release"
 APT_LINE="-o Dir::Etc::sourcelist=$VBOOTSTRAPDIR/sources.list.d/$INSTVER"
 
 vbootstrap_post()

+ 1 - 1
vbootstrap/scripts/5.0

@@ -1,7 +1,7 @@
 # 5.0
 
 INSTVER="5.0"
-BASE_PKGS="setup glibc coreutils bash rpm apt rootfiles libstdc++34"
+BASE_PKGS="setup glibc coreutils bash rpm apt rootfiles vine-release libstdc++34"
 APT_LINE="-o Dir::Etc::sourcelist=$VBOOTSTRAPDIR/sources.list.d/$INSTVER"
 
 vbootstrap_post()

+ 1 - 1
vbootstrap/scripts/5.0_i386

@@ -1,7 +1,7 @@
 # 5.0_i386
 
 INSTVER="5.0_i386"
-BASE_PKGS="setup glibc coreutils bash rpm apt rootfiles libstdc++34"
+BASE_PKGS="setup glibc coreutils bash rpm apt rootfiles vine-release libstdc++34"
 APT_LINE="-o Dir::Etc::sourcelist=$VBOOTSTRAPDIR/sources.list.d/$INSTVER"
 
 vbootstrap_post()

+ 1 - 1
vbootstrap/scripts/VineSeed

@@ -1,7 +1,7 @@
 # VineSeed
 
 INSTVER="VineSeed"
-BASE_PKGS="setup glibc coreutils bash rpm apt rootfiles libstdc++34"
+BASE_PKGS="setup glibc coreutils bash rpm apt rootfiles vine-release libstdc++34"
 APT_LINE="-o Dir::Etc::sourcelist=$VBOOTSTRAPDIR/sources.list.d/$INSTVER"
 
 vbootstrap_post()

+ 1 - 1
vbootstrap/scripts/VineSeed_i386

@@ -1,7 +1,7 @@
 # VineSeed_i386
 
 INSTVER="VineSeed_i386"
-BASE_PKGS="setup glibc coreutils bash rpm apt rootfiles libstdc++34"
+BASE_PKGS="setup glibc coreutils bash rpm apt rootfiles vine-release libstdc++34"
 APT_LINE="-o Dir::Etc::sourcelist=$VBOOTSTRAPDIR/sources.list.d/$INSTVER"
 
 vbootstrap_post()

+ 14 - 0
vbuilder.conf.in

@@ -0,0 +1,14 @@
+## 
+## vbuilder configuration file
+## 
+## This configuration is read at the begin of vbuilder. 
+
+## The top dirctory for vbootstrap
+## default: VBOOTSTRAP_DIR=@@VBUILDER_VBOOTSTRAP_DIR@@
+VBOOTSTRAP_DIR=@@VBUILDER_VBOOTSTRAP_DIR@@
+
+## Default version for chroot
+## default: DEFAULT_VERSION=@@VBUILDER_DEFAULT_VERSION@@
+DEFAULT_VERSION=@@VBUILDER_DEFAULT_VERSION@@
+
+## end of file

+ 110 - 28
vbuilder.sh.in

@@ -1,18 +1,11 @@
 #!/bin/bash
 # -*- coding: utf-8-unix -*-
 
-## default settings
-VBOOTSTRAP_DIR=/var/local/vbootstrap
-[ -d $VBOOTSTRAP_DIR ] || mkdir -p $VBOOTSTRAP_DIR
-DEFAULT_VERSION=@@DEFAULT_VERSION@@
-VERSION=$DEFAULT_VERSION
-
 Usage_C(){
     cat<<EOF
-Usage:	$(basename $0) {--version [version]} {--arch [arch]} {--with-compat32} {--build-rpm [src.rpm]|--install-rpm [arch.rpm]|--remove-rpm [package]|--build|--clean}
+Usage:	$(basename $0) {--version [version]} {--arch [arch]} {--build-rpm [src.rpm]|--install-rpm [arch.rpm]|--remove-rpm [package]|--build|--clean}
 	--version:		set [version] (default: ${DEFAULT_VERSION})
 	--arch:			set [arch] (default: $(uname -i))
-	--with-compat32:	build with compat32 on boostrap
 	--build-rpm:		build [src.rpm] on boostrap
 	--install-rpm:		install [arch.rpm] on boostrap
 	--remove-rpm:		remove [package] on boostrap
@@ -28,29 +21,76 @@ $(basename $0) --build-rpm [src.rpm]
 $(basename $0) --version 4.2 --clean --build
 * make a i386 chroot on x86_64:
 $(basename $0) --arch i386 --clean --build
-* build compat32:
-$(basename $0) --arch i386 --with-compat32 --build-rpm [src.rpm]
+$(/usr/sbin/vbootstrap | sed -e s/^Usage:.*// -e s/^E:.*//)
 EOF
-exit 1
 }
 
 Usage_ja(){
     Usage_C
 }
 
-Msg_NoSupportVARCH_C(){
-    while read varch; do
+Msg_MissingParameter_C(){
+    while read para; do
 	cat<<EOF
-${varch} is NO support on $(uname -i)
+E: Missing some parameter before ${para}
 EOF
     done
-    exit 1
+}
+
+Msg_MissingParameter_ja(){
+    Msg_MissingParameter_C
+}
+
+Msg_NoSupportVARCH_C(){
+    cat<<EOF
+E: arch ${VARCH} is NO support on $(uname -i)
+EOF
 }
 
 Msg_NoSupportVARCH_ja(){
     Msg_NoSupportVARCH_C
 }
 
+Msg_NoSupportVERSION_C(){
+    cat<<EOF
+E: version ${VERSION} is NO support
+EOF
+}
+
+Msg_NoSupportVERSION_ja(){
+    Msg_NoSupportVERSION_C
+}
+
+##############################################################################
+
+setup-vbuilder(){
+    ## load default settings
+    if [ -d /etc/vbootstrap/vbuilder.conf ]; then
+	. /etc/vbootstrap/vbuilder.conf
+    else
+	[ -z "${VBOOTSTRAP_DIR}" ] && \
+	    VBOOTSTRAP_DIR=@@VBUILDER_VBOOTSTRAP_DIR@@
+	[ -z "${DEFAULT_VERSION}" ] && \
+	    DEFAULT_VERSION=@@VBUILDER_DEFAULT_VERSION@@
+    fi
+    [ -d $VBOOTSTRAP_DIR ] || mkdir -p $VBOOTSTRAP_DIR
+    VERSION=$DEFAULT_VERSION
+
+    ## set locale
+    case $LANG in
+	ja*)  LOCALE=ja ;;
+	*)    LOCALE=C ;;
+    esac
+}
+
+check-next-parameter(){
+    while read arg; do
+	if [ $(echo ${arg} | grep '^-') ]; then
+	    echo ${arg} | Msg_MissingParameter_$LOCALE
+	    return 1
+	fi
+    done
+}
 
 FLAG_setup_vbootstrap=0
 setup-vbootstrap(){
@@ -58,27 +98,45 @@ setup-vbootstrap(){
 	FLAG_setup_vbootstrap=1
 
 	## check a chroot archtecture
-	[ ! -z ${VARCH} ] && \
+	if [ ! -z ${VARCH} ]; then
 	    case "${VARCH}" in
 		i386)
 		    [ "$(uname -i)" = "ppc" ] && \
-			echo ${VARCH} | Msg_NoSupportVARCH_$LOCALE
+			Msg_NoSupportVARCH_$LOCALE
+		    [ $? -eq 0 ] && exit 1
 		    ;;
 		x86_64)
 		    [ "$(uname -i)" = "ppc" ] && \
-			echo ${VARCH} | Msg_NoSupportVARCH_$LOCALE
+			Msg_NoSupportVARCH_$LOCALE
+		    [ $? -eq 0 ] && exit 1
 		    ;;
 		ppc)
 		    [ "$(uname -i)" = "i386" -o "$(uname -i)" = "x86_64" ] && \
-			echo ${VARCH} | Msg_NoSupportVARCH_$LOCALE
+			Msg_NoSupportVARCH_$LOCALE
+		    [ $? -eq 0 ] && exit 1
 		    ;;
 	    esac
+	fi
+
 	[ -z ${VARCH} ] && VARCH=$(uname -i)
 
+	##!! IRREGULAR: 4.2 is NO support on x86_64
+	if [ "${VERSION}" = "4.2" -a "$(uname -i)" = "x86_64" ]; then
+	    Msg_NoSupportVERSION_${LOCALE}
+	    exit 1
+	fi
+
 	## support for i386 chroot on x86_64 below: 
 	[ "${VARCH}" != "$(uname -i)" ] && VERSION=${VERSION}_${VARCH}
+
+        ## check support ${VERSION}
+	if [ -z "$(/usr/sbin/vbootstrap | sed -e s/^Usage:.*// -e s/^E:.*// | grep -m 1 ${VERSION})" ]; then
+	    Msg_NoSupportVERSION_$LOCALE
+	    exit 1
+	fi
+
     fi
-	
+
     BUILD_ROOT=${VBOOTSTRAP_DIR}/${VERSION}
     BUILD_USER=vbuilder
     CACHE_DIR=${VBOOTSTRAP_DIR}/cache/${VERSION}
@@ -92,14 +150,21 @@ setup-vbootstrap(){
 Clean(){
     setup-vbootstrap
 
-    umount ${BUILD_ROOT}/proc
+    [ -d ${BUILD_ROOT}/proc ] && \
+	umount ${BUILD_ROOT}/proc
 
     if [ -d ${BUILD_ROOT}/var/cache/apt/archives ]; then
+	echo -n "Chaching 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
 
-    rm -rf $BUILD_ROOT/
+    if [ -d ${BUILD_ROOT} ]; then
+	echo -n "Cleaning build root \"${BUILD_ROOT}\" ... "
+	rm -rf ${BUILD_ROOT}
+	echo "done."
+    fi
 }
 
 Build(){
@@ -110,8 +175,11 @@ Build(){
     [ -d ${BUILD_ROOT}/proc ] || mkdir -p ${BUILD_ROOT}/proc
     mount -t proc proc ${BUILD_ROOT}/proc
 
-    [ -d ${CACHE_DIR} -a "${VARCH}" = "$(uname -i)" ] && \
+    if [ -d ${CACHE_DIR} ]; then
+	echo -n "Copying chached 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'
@@ -130,11 +198,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}"
+
+    echo "Making a build farm for ${VERSION} done."
 }
 
 setup-vbootstrap-rpm(){
     setup-vbootstrap
 
+    ## check ${BUILD_ROOT}
+    [ -d ${BUILD_ROOT} ] || Build
+
     if [ -f $RPM_PKG ]; then
 	BASE_RPM_PKG=$(basename $RPM_PKG)
 	cp -f $RPM_PKG $BUILD_ROOT${BUILD_DIR}
@@ -179,37 +252,45 @@ RPM_Build(){
 
 ##############################################################################
 
-case $LANG in
-    ja*)  LOCALE=ja ;;
-    *)    LOCALE=C ;;
-esac
+setup-vbuilder
 
 [ $# -eq 0 ] && Usage_$LOCALE
 while [ $# -gt 0 ]; do
     case "$1" in
 	--version)
 	    shift;
+	    echo $1 | check-next-parameter
+	    [ $? -eq 1 ] && exit 1
 	    VERSION=$1
 	    ;;
 	--arch)
 	    shift;
+	    echo $1 | check-next-parameter
+	    [ $? -eq 1 ] && exit 1
 	    VARCH=$1
 	    ;;
+	##!! This option is obsolete for 5.0 or above higher version on i386. 
 	--with-compat32)
 	    RPM_OPTS="--with compat32"
 	    ;;
 	--build-rpm)
 	    shift;
+	    echo $1 | check-next-parameter
+	    [ $? -eq 1 ] && exit 1
 	    RPM_PKG=$1
 	    RPM_Build
 	    ;;
 	--install-rpm)
 	    shift;
+	    echo $1 | check-next-parameter
+	    [ $? -eq 1 ] && exit 1
 	    RPM_PKG=$1
 	    RPM_Install
 	    ;;
 	--remove-rpm)
 	    shift;
+	    echo $1 | check-next-parameter
+	    [ $? -eq 1 ] && exit 1
 	    RPM_PKG=$1
 	    RPM_Remove
 	    ;;
@@ -220,7 +301,8 @@ while [ $# -gt 0 ]; do
 	    Clean
 	    ;;
 	*)
-	    Usage
+	    Usage_$LOCALE
+	    exit 1
 	    ;;
     esac
     shift