Mantis - pkg_get
Viewing Issue Advanced Details
4301 regular use minor always 2010-02-23 04:49 2010-03-12 16:00
flod  
bonivart  
normal  
closed  
no change required  
none    
none  
0004301: pkgutil -u stops exits with unresolvable dependencies in the catalog
If any of the installed packages has an unresolvable in the catalog, pkgutil -u will exit with:
Package <name> not in catalog...exiting.

Systems can now only be updated manually with
pkgutil -u <package>
See bug 4282 for an actual example in the opencsw repository.
Issue History
2010-02-23 04:49 flod New Issue
2010-02-23 09:06 bonivart Status new => assigned
2010-02-23 09:06 bonivart Assigned To => bonivart
2010-02-23 09:15 bonivart Note Added: 0007491
2010-02-23 15:26 bonivart Note Added: 0007497
2010-02-23 15:27 bonivart Note Added: 0007498
2010-02-23 15:27 bonivart Status assigned => acknowledged
2010-02-23 15:52 flod Note Added: 0007503
2010-02-23 17:45 bonivart Note Added: 0007509
2010-03-03 11:16 bonivart Note Added: 0007570
2010-03-03 11:16 bonivart Status acknowledged => resolved
2010-03-03 11:16 bonivart Resolution open => no change required
2010-03-12 16:00 bonivart Status resolved => closed

Notes
(0007491)
bonivart   
2010-02-23 09:15   
Yes, it's impossible to resolve the dependency chain if the catalog is broken. What do you suggest I do? The system can not work without its dependencies anyway so what's the point of going forward even though a problem has been detected?

What we do in these cases (0004282) is to get the package fixed. I think I know who this might belong to, I will poke him. :-)
(0007497)
bonivart   
2010-02-23 15:26   
I just saw someone try to install this with pkg-get and they ended up with a broken system since it uninstalled the CSWpysetuptools before discovering that CSWpydistutils is not available and then crashing.

I think it's better to know in advance that the operation can not succeed.
(0007498)
bonivart   
2010-02-23 15:27   
See previous notes.
(0007503)
flod   
2010-02-23 15:52   
(1) It's clear that the dependencies for the problematic package can not be resolved. The update for this package should be aborted.

(2) For me it would make more sense to skip packages with unresolvable dependencies (instead of exiting before updating the sane packages). But this might depend on any policies for the opencsw catalog as a whole. If the whole catalog is considered problematic/buggy with an unresolvable dependency than it makes sense to me, to stop updating at all.

(3) I have no idea how the dependencies are resolved any way. If it is not possible to nicely skip a package, I would leave it as it is.

(4) Maybe it makes more sense to check the integrity of the catalog on the server side. Is it possible to check for unresolvable dependencies before updating packages in the repository or when rebuilding the catalog?
(0007509)
bonivart   
2010-02-23 17:45   
I think key here is what you're saying in (4), to produce a correct catalog (and hopefully correct packages to go with it :-). The problem has been to introduce modern ways of producing the catalog and quality checking of said catalog. Finally, there seems to be some progress with quality checking at least and my chkcat utility (from CSWpkgutilplus) is supposed to be used. Unfortunately it only says warning about a missing dependency, it should have error status and it's been fixed so running it with the -e (erroronly) option on the current catalog clearly shows us our problem:

$ chkcat -e /var/opt/csw/pkgutil/catalog.ftp.df.lth.se_pub_csw_current_i386_5.10
ERROR! Dependency CSWpydistutils of package CSWpysetuptools is missing.

When I get this fixed version into service we will no longer produce catalogs with these kinds of problems.
(0007570)
bonivart   
2010-03-03 11:16   
This is a mix of intended behavior (in pkgutil) and fixes needed earlier in the chain (quality catalogs). I have helped OpenCSW with a better catalog checking utility so hopefully our catalogs will improve.