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