Browse Source

updated vbuilder-bash-completion.sh, libvbuilder.sh.in against 0.0.43

git-svn-id: http://trac.vinelinux.org/repos/projects/vbootstrap/trunk@3826 ec354946-7b23-47d6-9f5a-488ba84defc7
munepi 13 years ago
parent
commit
4e8f7c9e41
2 changed files with 46 additions and 43 deletions
  1. 44 41
      libvbuilder.sh.in
  2. 2 2
      vbuilder-bash-completion.sh

+ 44 - 41
libvbuilder.sh.in

@@ -38,6 +38,14 @@ setup-vbuilder(){
     ## set current stable relase version
     STABLE_VERSION=@@VBUILDER_STABLE_VERSION@@
 
+    ## set default chroot archtecture
+    UARCH=$(uname -i)
+    case "${UARCH}" in
+	arm*)
+	    UARCH="arm"
+	    ;;
+    esac
+
     ## set boolian variables
     with_setup_vbootstrap=0
     with_dist_upgrade=0
@@ -72,10 +80,13 @@ setup-vbootstrap(){
 	[ -d $VBOOTSTRAP_DIR ] || mkdir -p $VBOOTSTRAP_DIR
 	[ -d $CACHE_DIR ] || mkdir -p $CACHE_DIR
 
-	UARCH=$(uname -i)
-	case "${UARCH}" in
-	    arm*)
-		UARCH="arm"
+	## check chroot version
+	case ${VERSION} in
+	    4.2|5.2|VineSeed)
+		;;
+	    *)
+		echo $"E: ${VERSION} is NOT supported"
+		return 1
 		;;
 	esac
 
@@ -90,58 +101,49 @@ setup-vbootstrap(){
 	    VARCH=${UARCH}
 	else
 	    case "${VARCH}" in
-		i386|i686|x86_64)
-		    [ "$(uname -i)" = "ppc" -o "${UARCH}" = "arm" ] && \
-			echo $"E: arch ${VARCH} is NOT supported on $(uname -i)" && return 1
+		i386|x86_64)
+		    [ "${UARCH}" = "ppc" -o "${UARCH}" = "arm" ] && \
+			echo $"E: arch ${VARCH} is NOT supported on ${UARCH}" && return 1
 		    ;;
 		ppc)
-		    [ "$(uname -i)" = "i386" -o "$(uname -i)" = "i686" -o "$(uname -i)" = "x86_64" -o "${UARCH}" = "arm" ] && \
-			echo $"E: arch ${VARCH} is NOT supported on $(uname -i)" && return 1
+		    [ "${UARCH}" = "i386" -o "${UARCH}" = "x86_64" -o "${UARCH}" = "arm" ] && \
+			echo $"E: arch ${VARCH} is NOT supported on ${UARCH}" && return 1
 		    ;;
 		arm)
-		    [ "${UARCH}" = "i386" -o "${UARCH}" = "i686" -o "${UARCH}" = "x86_64" -o "${UARCH}" = "ppc" ] && \
+		    [ "${UARCH}" = "i386" -o "${UARCH}" = "x86_64" -o "${UARCH}" = "ppc" ] && \
 			echo $"E: arch ${VARCH} is NOT supported on ${UARCH}" && return 1
 		    ;;
 	    esac
 	fi
 
-        ##!! 4.2 is NO support on VARCH=x86_64
-	if [ "${VERSION}" = "4.2" -a "${VARCH}" = "x86_64" ]; then
-	    echo $"E: ${VERSION} is NOT supported"
-	    return 1
-	fi
-
-        ##!! 4.2 is NO support on VARCH=arm
-	if [ "${VERSION}" = "4.2" -a "${VARCH}" = "arm" ]; then
-	    echo $"E: ${VERSION} is NOT supported"
-	    return 1
+        ##!! 4.2 is NO support on VARCH=x86_64 or VARCH=arch
+	if [ "${VERSION}" = "4.2" ]; then
+	    if [ "${VARCH}" = "x86_64" -o "${VARCH}" = "arm" ]; then
+		echo $"E: ${VERSION}_${VARCH} is NOT supported"
+		return 1
+	    fi
 	fi
 
-	## support i386 chroot on x86_64 below: 
-	[ "${VARCH}" != "${UARCH}" ] && \
-	    VERSION=${VERSION}_${VARCH} && \
-	    with_ix86_on_x86_64=1
-
-	## hack arm repository to local
-	[ "${VARCH}" = "arm" ] && \
-	    VERSION=${VERSION}_${VARCH}
+	## set the profile <version>_<arch>
+	PROFILE=${VERSION}_${VARCH}
 
-        ## check support ${VERSION}
-	if [ -z "$(/usr/sbin/vbootstrap | sed -e s/^Usage:.*// -e s/^E:.*// | grep -m 1 ${VERSION})" ]; then
-	    echo $"E: ${VERSION} is NOT supported"
+        ## check support ${PROFILE}
+	if [ -z "$(/usr/sbin/vbootstrap | sed -e s/^Usage:.*// -e s/^E:.*// | grep -m 1 ${PROFILE})" ]; then
+	    echo $"E: ${PROFILE} is NOT supported"
 	    return 1
 	fi
 
 	## check ${VERSION} equals VineSeed*, when with_dist_upgrade=1
 	if [ $with_dist_upgrade -eq 1 ]; then
-	    if [ "$(echo ${VERSION} | sed -e "s/\(VineSeed\).*/\1/")" != "VineSeed" ]; then 
+	    if [ "${VERSION}" != "VineSeed" ]; then 
 		echo $"E: version ${VERSION} does not support --dist-upgrade option"
 		return 1
 	    fi
 	fi
 
-	## set ${MAJOR_VERSION}
-	MAJOR_VERSION=$(echo ${VERSION} | sed -e "s/_i[0-9]86//")
+	## support i386 chroot on x86_64 below: 
+	[ "${UARCH}" = "x86_64" -a "${VARCH}" = "i386" ] && \
+	    with_ix86_on_x86_64=1
 
 	## check apt categories
 	## "main" category is unconditionally permited
@@ -159,20 +161,20 @@ setup-vbootstrap(){
 		    ;;
 		test)
                     ## "test" category only exists in VineSeed
-		    [ "${MAJOR_VERSION}" = "VineSeed" ] || \
+		    [ "${VERSION}" = "VineSeed" ] || \
 			echo $"E: No such category exists: $cat" && return 1
 		    with_category_test=1
 		    ;;
 		proposed-updates)
                     ##!! "proposed-updates" category does not exist in 4.2
-		    [ "${MAJOR_VERSION}" = "4.2" ] && \
+		    [ "${VERSION}" = "4.2" ] && \
 			echo $"E: No such category exists: $cat" && return 1
 
 		    with_category_proposed_updates=1
 		    ;;
 		security)
                     ## "security" category does not exist in VineSeed
-		    [ "${MAJOR_VERSION}" = "VineSeed" ] && \
+		    [ "${VERSION}" = "VineSeed" ] && \
 			echo $"E: No such category exists: $cat" && return 1
 		    with_category_security=1
 		    ;;
@@ -185,7 +187,8 @@ setup-vbootstrap(){
 	## check build target option ${TARGET}
 	if [ ! -z "${TARGET}" ]; then
 	    RPM_TARGET_LIST="$(cat /usr/lib/rpm/rpmrc | grep arch_canon: | sed -e "s/arch_canon:[[:blank:]]*\(.*\):.*/\1/")"
-	    if [ -z "$(echo $RPM_TARGET_LIST | grep $TARGET)" ]; then
+	    RPM_TARGET_LIST="${RPM_TARGET_LIST} noarch"
+	    if [ -z "$(echo ${RPM_TARGET_LIST} | grep ${TARGET})" ]; then
 		echo $"E: rpm build target ${TARGET} is NOT supported"
 		return 1
 	    fi
@@ -199,12 +202,12 @@ setup-vbootstrap(){
     fi
 
     ## set global variables
-    BUILD_ROOT=${VBOOTSTRAP_DIR}/${VERSION}
+    BUILD_ROOT=${VBOOTSTRAP_DIR}/${PROFILE}
     BUILD_USER=vbuilder
     BUILD_DIR=/home/${BUILD_USER}/rpm
-    UNIONFS_ROOT=${UNIONFS_DIR}/${VERSION}
+    UNIONFS_ROOT=${UNIONFS_DIR}/${PROFILE}
     ARCHIVES_DIR=${BUILD_ROOT}/var/cache/apt/archives
-    EXTERNAL_ARCHIVES_DIR=${CACHE_DIR}/${VERSION}/apt/archives
+    EXTERNAL_ARCHIVES_DIR=${CACHE_DIR}/${PROFILE}/apt/archives
 
     __chroot_sh="/usr/sbin/chroot ${BUILD_ROOT} /bin/sh -c -l"
 

+ 2 - 2
vbuilder-bash-completion.sh

@@ -23,7 +23,7 @@ _vbuilder()
 
     ## The basic options we'll complete.
     options="--version --arch --category --dist-upgrade --unionfs --target --with-compat32 --rpmbuild-define --rpmbuild-with --rpmbuild-without --sign --no-install --login --bootstrap-dir --unionfs-dir --cache-dir --built-rpms-dir --debug"
-    actions="clean build build-rpm install-rpm remove-rpm show-info"
+    actions="clean build build-rpm install-rpm remove-rpm"
     opts="$options $actions"
 
     _arch=$(rpm --eval %_arch)
@@ -46,7 +46,7 @@ _vbuilder()
 	    ;;
 
 	--target)
-	    local running="$(cat /usr/lib/rpm/rpmrc | grep arch_canon: | sed -e "s/arch_canon:[[:blank:]]*\(.*\):.*/\1/")"
+	    local running="$(cat /usr/lib/rpm/rpmrc | grep arch_canon: | sed -e "s/arch_canon:[[:blank:]]*\(.*\):.*/\1/") noarch"
 	    COMPREPLY=( $(compgen -W "${running}" -- "${cur}") )
 	    ;;