Author: pierre Date: Mon Feb 27 05:55:30 2017 New Revision: 3883 Log: Add several cases to the special cases in packInstall.sh.porg: - put the version extraction in a function - use packages.xml if needed
Modified: jhalfs/branches/new_features/pkgmngt/packInstall.sh.porg Modified: jhalfs/branches/new_features/pkgmngt/packInstall.sh.porg ============================================================================== --- jhalfs/branches/new_features/pkgmngt/packInstall.sh.porg Sat Dec 3 10:31:32 2016 (r3882) +++ jhalfs/branches/new_features/pkgmngt/packInstall.sh.porg Mon Feb 27 05:55:30 2017 (r3883) @@ -5,10 +5,65 @@ # We only have access to variables PKGDIR and PKG_DEST. Other variables could # be set in the environment +extract_version() { +local VERSION + +case $1 in + expect*|tcl*|tk*|mozjs*) + VERSION=$(echo $1 | sed 's/^[^0-9]*//') + ;; + vim*|unzip*|zip*) + VERSION=$(echo $1 | sed 's/^[^0-9]*\([0-9]\)\([0-9]\)/\1.\2/') + ;; + wireless_tools*|LVM2*) + VERSION=$(echo $1 | sed 's/^[^.]*\.//') + ;; + x264*) + VERSION=$(echo $1 | sed 's/.*shot-//') + ;; + icu*) # No version in PCKGVRS! Use version directly from xml book. + # PACK_INSTALL # contains the path to this script, which is in the + # parent dir of the book. + local PACKENT=$(dirname $PACK_INSTALL)/blfs-xml/packages.ent + local VERSION1=$(sed -n 's/.*icu-major[^0-9]*\([^"]*\).*/\1/p' $PACKENT) + local VERSION2=$(sed -n 's/.*icu-minor[^0-9]*\([^"]*\).*/\1/p' $PACKENT) + VERSION=$VERSION1.$VERSION2 + ;; + xf86-video-intel) + local PACKENT=$(dirname $PACK_INSTALL)/blfs-xml/x/installing/x7driver-intel.xml + VERSION=$(sed -n '/<!--/!s/.*-version[^;][^0-9]*\([^"]*\).*/\1/p' $PACKENT) + ;; + jdk8*) + VERSION=1.8.0.$(echo $1 | sed 's/.*u\([0-9]\+\).*/\1/') + ;; + docbook-xml) + VERSION=4.5 + ;; + cacerts*) + VERSION=0.1 + ;; + *) + VERSION=$(echo $1 | sed 's/^.*[-_]\([0-9]\)/\1/' | sed 's/_/./g') + ;; +# the last sed above is because some package managers do not want a '_' +# in version. +esac +echo $VERSION +} + +# Export the previous function, since it is used by the others +export -f extract_version +# The other "official" functions, wrapInstall and packInstall, are exported +# by "envars" (in LFS), and the scripts (in BLFS). + wrapInstall() { # a bash command is passed as an argument (that may be a compound command). # It is executed by this function, after various set-ups... +# Note that PKGDIR is changed to UNPACKDIR +# and PKG_DEST is changed to PKG_DIR in BLFS tools. +# The sed for PACKAGE is therefore not needed in BLFS, +# but it does not hurt, either. local PCKGVRS=$(basename $PKGDIR) local TGTPKG=$(basename $PKG_DEST) local PACKAGE=$(echo ${TGTPKG} | sed 's/^[0-9]\{3\}-//' | @@ -17,19 +72,9 @@ # ourselves PACKAGE=${PACKAGE,,} # version is only accessible from PKGDIR name. Since the format of the -# name is not normalized, several hacks are necessary... -case $PCKGVRS in - expect*|tcl*) local VERSION=$(echo $PCKGVRS | sed 's/^[^0-9]*//') ;; - vim*|unzip*) local VERSION=$(echo $PCKGVRS | sed 's/^[^0-9]*\([0-9]\)\([0-9]\)/\1.\2/') ;; - tidy*) local VERSION=$(echo $PCKGVRS | sed 's/^[^0-9]*\([0-9]*\)/\1cvs/') ;; - docbook-xml) local VERSION=4.5 ;; - cacerts*) local VERSION=0.1 ;; - *) local VERSION=$(echo ${PCKGVRS} | sed 's/^.*[-_]\([0-9]\)/\1/' | - sed 's/_/./g');; -# the last sed above is because some package managers do not want a '_' -# in version. -esac - +# name is not normalized, several hacks are necessary (now in function +# extract_version)... +VERSION=$(extract_version $PCKGVRS) porg -lp ${PACKAGE}-${VERSION} sh << PORG_EOF $* PORG_EOF @@ -46,19 +91,9 @@ # Porg converts package names to lowercase anyway, so do the conversion # ourselves PACKAGE=${PACKAGE,,} -case $PCKGVRS in - expect*|tcl*) local VERSION=$(echo $PCKGVRS | sed 's/^[^0-9]*//') ;; - vim*|unzip*) local VERSION=$(echo $PCKGVRS | sed 's/^[^0-9]*\([0-9]\)\([0-9]\)/\1.\2/') ;; - tidy*) local VERSION=$(echo $PCKGVRS | sed 's/^[^0-9]*\([0-9]*\)/\1cvs/') ;; - docbook-xml) local VERSION=4.5 ;; - cacerts*) local VERSION=0.1 ;; - *) local VERSION=$(echo ${PCKGVRS} | sed 's/^.*[-_]\([0-9]\)/\1/' | - sed 's/_/./g');; -# the last sed above is because some package managers do not want a '_' -# in version. -esac # Building the binary package porgball ${PACKAGE} # The package is in the current directory +VERSION=$(extract_version $PCKGVRS) mv -v ${PACKAGE}-${VERSION}.porg* /var/lib/packages } -- http://lists.linuxfromscratch.org/listinfo/alfs-log Unsubscribe: See the above information page