[packages/util-vserver] - try to detect versioned db_load/db_dump tools mathing rpm requirements

baggins baggins at pld-linux.org
Thu Feb 21 13:34:34 CET 2013


commit a4e6abac6033ae2c0c803a67d6246578c69909bc
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Thu Feb 21 13:34:05 2013 +0100

    - try to detect versioned db_load/db_dump tools mathing rpm requirements

 util-vserver-dbrebuild-internalize4.patch | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)
---
diff --git a/util-vserver-dbrebuild-internalize4.patch b/util-vserver-dbrebuild-internalize4.patch
index 204dfff..f4c4c38 100644
--- a/util-vserver-dbrebuild-internalize4.patch
+++ b/util-vserver-dbrebuild-internalize4.patch
@@ -1,6 +1,6 @@
 --- util-vserver-0.30.215/scripts/pkgmgmt	2008-11-17 22:47:02.486514626 +0200
 +++ util-vserver-0.30.216-r2844/scripts/pkgmgmt	2009-11-05 14:27:48.753407445 +0200
-@@ -185,6 +185,43 @@
+@@ -185,6 +185,47 @@
      test -n "$is_ok"
  }
  
@@ -12,25 +12,29 @@
 +    local host_tool="$3"
 +    local guest_tool="$4"
 +    local res=0
++    local hostbdb
++    local guestbdb
 +
++    hostbdb=$(ldd /bin/rpm | awk '/libdb-[0-9\.]+.so/ { sub(/libdb-/, "", $1); sub(/.so/, "", $1); print $1 }')
++    guestbdb=$(ldd "$vdir"/bin/rpm | awk '/libdb-[0-9\.]+.so/ { sub(/libdb-/, "", $1); sub(/.so/, "", $1); print $1 }')
 +    local i host_path guest_path
 +    for i in /bin /usr/bin /usr/lib/rpm /usr/local/bin; do
-+	test ! -x "$i"/$host_tool || { host_path="$i"/$host_tool; break; }
++	test ! -x "$i"/$host_tool || { host_path="$i"/"db${hostbdb}_${host_tool}"; break; }
 +    done
 +    for i in /bin /usr/bin /usr/lib/rpm /usr/local/bin; do
-+	test ! -x "$vdir$i"/$guest_tool || { guest_path="$i"/$guest_tool; break; }
++	test ! -x "$vdir$i"/$guest_tool || { guest_path="$i"/"db${guestbdb}_${guest_tool}"; break; }
 +    done
 +
 +    test -n "$host_path" || {
 +	warning "
-+* The host does not seem to have the '$host_tool' program which is required
++* The host does not seem to have the 'db${hostbdb}_${host_tool}' program which is required
 +  for $type package management. It is suggested to install it before
 +  continuing."
 +	res=1
 +    }
 +    test -n "$guest_path" || {
 +	warning "
-+* The vserver guest does not seem to have the '$guest_tool' program which is required
++* The vserver guest does not seem to have the '"db${guestbdb}_${guest_tool}"' program which is required
 +  for $type package management. It is suggested to install it before
 +  continuing."
 +	res=1
@@ -49,7 +53,7 @@
  	    panic "
  Can not continue; use '--force' to override this check"
 +
-+	verifyDBTools "$vdir" 'internal' db at RPMDB@_dump db at RPMDB@_load || test -n "$IS_FORCE" ||
++	verifyDBTools "$vdir" 'internal' dump load || test -n "$IS_FORCE" ||
 +	    panic "
 +Can not continue; use '--force' to override this check"
      
@@ -61,7 +65,7 @@
  	findDir RPMETCDIR   "$cfgdir"/rpmetc   "$cfgdir"/base/rpm/etc    /etc/rpm /
  	findDir RPMSTATEDIR "$cfgdir"/rpmstate "$cfgdir"/base/rpm/state
      else
-+	verifyDBTools "$vdir" 'external' db at RPMDB@_load db at RPMDB@_dump || test -n "$IS_FORCE" ||
++	verifyDBTools "$vdir" 'external' load dump || test -n "$IS_FORCE" ||
 +	    panic "
 +Can not continue; use '--force' to override this check"
 +
@@ -78,10 +82,10 @@
 +
 +	    # dump and reload rpmdb to overcome db version mismatch problems
 +	    if [ "$db_load" -a "$db_dump" ]; then
-+		# dump with host db at RPMDB@_dump
++		# dump with host db_dump
 +		$db_dump var/lib/rpm/Packages > var/lib/rpm/.Packages.dump
 +
-+		# load with guest db at RPMDB@_load.
++		# load with guest db_load.
 +		$_RM -f var/lib/rpm/__db.*
 +		mv var/lib/rpm/{Packages,.Packages.ORIG}
 +		chroot . $db_load var/lib/rpm/Packages < var/lib/rpm/.Packages.dump
@@ -96,11 +100,11 @@
 +	    if [ "$db_load" -a "$db_dump" ]; then
 +		# dump and reload rpmdb to overcome db version mismatch problems
 +
-+		# dump with guest db at RPMDB@_dump
++		# dump with guest db_dump
 +		$_RM -f var/lib/rpm/__db.*
 +		chroot . $db_dump var/lib/rpm/Packages > var/lib/rpm/.Packages.dump
 +
-+		# load with host db at RPMDB@_load
++		# load with host db_load
 +		mv var/lib/rpm/{Packages,.Packages.ORIG}
 +		$db_load var/lib/rpm/Packages < var/lib/rpm/.Packages.dump
 +		rm -f var/lib/rpm/.Packages.*
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/util-vserver.git/commitdiff/a4e6abac6033ae2c0c803a67d6246578c69909bc



More information about the pld-cvs-commit mailing list