pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg_rr multimedia/farsight2 infinite loop



"Pouya D. Tafti" <pouya%san-serriffe.org@localhost> writes:

> Invoking
>
> pkg_rolling-replace -suv
>
> inside a pkg_comp chroot on my machine enters an infinite loop at
> multimedia/farsight2.  This is the first time I am using pkg_rr.  Any
> suggestions how I should move forward?

Basically, kill it and look at the log and figure out whether it is
rebuilding something successfully again and again, or failing at
something.  Ian Leroux has a pending patch (below) to at least stop
instead of looping when py25-foo is installed but python version default
is set to 26.  Alan Barret has posted a patch that addresses the
underlying problem:

  http://mail-index.netbsd.org/pkgsrc-users/2010/08/29/msg012674.html

I havne't had time to test these patches (and don't want to commit them
during the freeze anyway), but I would be very interested in hearing if
either/both work well for you.  (I think apb's fix is the key one, but
Ian's should make any other similar failures less troublesome.)


--- /usr/pkg/sbin/pkg_rolling-replace   2010-08-21 22:31:26.000000000 -0400
+++ pkg_rr.patched      2010-09-14 21:44:47.000000000 -0400
@@ -413,13 +413,16 @@
 
     echo "${OPI} Tsorting dependency graph"
     TSORTED=$(echo $DEPGRAPH_INSTALLED $DEPGRAPH_SRC | tsort)
+    pkgdir=
     for pkg in $TSORTED; do
         if is_member $pkg $REPLACE_TODO; then
+           pkgdir=$(${PKG_INFO} -Q PKGPATH $pkg)
+           [ -n "$pkgdir" ] || abort "Couldn't extract PKGPATH from installed 
package $pkg"
             break;
         fi
     done
-    pkgdir=$(${PKG_INFO} -Q PKGPATH $pkg)
-    [ -n "$pkgdir" ] || abort "Couldn't extract PKGPATH from installed package 
$pkg"
+    # loop should never exit without selecting a package
+    [ -n "$pkgdir" ] || abort "pkg_chk reports the following packages need 
replacing, but they are not installed: $REPLACE_TODO"
 
     echo "${OPI} Selecting $pkg ($pkgdir) as next package to replace"
     sleep 1

Attachment: pgpQpux74jTxe.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index