r3883 - jhalfs/branches/new_features/pkgmngt

pierre at higgs.linuxfromscratch.org pierre at higgs.linuxfromscratch.org
Mon Feb 27 05:55:30 PST 2017


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
 }


More information about the alfs-log mailing list