-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
This [1] is a rather ugly dependency checker for any number of repositories. It uses yum to search for requirements that cannot be resolved.
I thought maybe because there's no dependency checking yet on updates and such (don't know the details), and I needed this anyway, I'd just dump it here and collect some useful comments.
When executing the script you'll have a few options:
- --config pass it a yum config with repos listed in it (in fact it's just walking over all sections, check if they're enabled and take the name, baseurl and mirrorlist) It doesn't do el-reposdir thingies.
- --repo Just check this or that repo (provide full "baseurl")
- --recent Just check the most recent set of packages and ignore any older versions of foo, bar and baz
- --efficient This is the really weird one because I could just iterate over all packages and try to resolve their requirements one by one, but in this mode the script just builds a list of requirements, yum.misc.unique()'s them, and searches the providers for each of these. Saves like a ton of time.
- --arch Obvious. Maybe useless. Defaults to i386.
- --debuglevel Description says: "Whatever debuglevel yum takes" < and that's true, because the only thing the script does with it is writing it to the temp yum config.
Again, one morning rather well-spent.
[1] http://git.fedoraproject.org/?p=hosted/revisor;a=blob_plain;f=scripts/depche... - -- Kind regards,
Jeroen van Meeuwen - -kanarip
- -- http://www.kanarip.com/ RHCE, LPIC-2, MCP, CCNA C6B0 7FB4 43E6 CDDA D258 F70B 28DE 9FDA 9342 BF08
On Tue, 2007-08-21 at 14:12 +0200, Jeroen van Meeuwen wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
This [1] is a rather ugly dependency checker for any number of repositories. It uses yum to search for requirements that cannot be resolved.
I thought maybe because there's no dependency checking yet on updates and such (don't know the details), and I needed this anyway, I'd just dump it here and collect some useful comments.
How does this differ from repoclosure in yum-utils?
-sv
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
seth vidal wrote:
On Tue, 2007-08-21 at 14:12 +0200, Jeroen van Meeuwen wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
This [1] is a rather ugly dependency checker for any number of repositories. It uses yum to search for requirements that cannot be resolved.
I thought maybe because there's no dependency checking yet on updates and such (don't know the details), and I needed this anyway, I'd just dump it here and collect some useful comments.
How does this differ from repoclosure in yum-utils?
I'm assuming that if I use repoclosure with the system's yum configuration, it tells me what it can't resolve just like when I would yum install the package with missing dependencies -so correct me if I'm wrong to assume that:
A random example from repoclosure:
# repoclosure -c /etc/yum.conf -a i386 -n [...snip...] package: dkms - 2.0.16-1.fc7.noarch from fedora unresolved deps: kernel-devel [...snip...]
# yum install dkms [...snip...] Installing: dkms noarch 2.0.16-1.fc7 fedora 84 k Installing for dependencies: kernel-devel i686 2.6.22.1-41.fc7 updates 4.7 M [...snip...]
I'm not sure where it differs, but apparently repoclosure does some things different from yum, as I'm sure this ugly depchecker does too.
- -- Kind regards,
Jeroen van Meeuwen - -kanarip
- -- http://www.kanarip.com/ RHCE, LPIC-2, MCP, CCNA C6B0 7FB4 43E6 CDDA D258 F70B 28DE 9FDA 9342 BF08
On Tue, 2007-08-21 at 16:36 +0200, Jeroen van Meeuwen wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
seth vidal wrote:
On Tue, 2007-08-21 at 14:12 +0200, Jeroen van Meeuwen wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
This [1] is a rather ugly dependency checker for any number of repositories. It uses yum to search for requirements that cannot be resolved.
I thought maybe because there's no dependency checking yet on updates and such (don't know the details), and I needed this anyway, I'd just dump it here and collect some useful comments.
How does this differ from repoclosure in yum-utils?
I'm assuming that if I use repoclosure with the system's yum configuration, it tells me what it can't resolve just like when I would yum install the package with missing dependencies -so correct me if I'm wrong to assume that:
A random example from repoclosure:
# repoclosure -c /etc/yum.conf -a i386 -n [...snip...] package: dkms - 2.0.16-1.fc7.noarch from fedora unresolved deps: kernel-devel [...snip...]
# yum install dkms [...snip...] Installing: dkms noarch 2.0.16-1.fc7 fedora 84 k Installing for dependencies: kernel-devel i686 2.6.22.1-41.fc7 updates 4.7 M [...snip...]
I'm not sure where it differs, but apparently repoclosure does some things different from yum, as I'm sure this ugly depchecker does too.
repoclosure doesn't care about your local rpmdb. It takes a look at all the repositories you have and makes sure you have depset closure across all of them.
-sv
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
seth vidal wrote:
On Tue, 2007-08-21 at 16:36 +0200, Jeroen van Meeuwen wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
seth vidal wrote:
On Tue, 2007-08-21 at 14:12 +0200, Jeroen van Meeuwen wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
This [1] is a rather ugly dependency checker for any number of repositories. It uses yum to search for requirements that cannot be resolved.
I thought maybe because there's no dependency checking yet on updates and such (don't know the details), and I needed this anyway, I'd just dump it here and collect some useful comments.
How does this differ from repoclosure in yum-utils?
I'm assuming that if I use repoclosure with the system's yum configuration, it tells me what it can't resolve just like when I would yum install the package with missing dependencies -so correct me if I'm wrong to assume that:
A random example from repoclosure:
# repoclosure -c /etc/yum.conf -a i386 -n [...snip...] package: dkms - 2.0.16-1.fc7.noarch from fedora unresolved deps: kernel-devel [...snip...]
# yum install dkms [...snip...] Installing: dkms noarch 2.0.16-1.fc7 fedora 84 k Installing for dependencies: kernel-devel i686 2.6.22.1-41.fc7 updates 4.7 M [...snip...]
I'm not sure where it differs, but apparently repoclosure does some things different from yum, as I'm sure this ugly depchecker does too.
repoclosure doesn't care about your local rpmdb. It takes a look at all the repositories you have and makes sure you have depset closure across all of them.
-sv
Right that I figured, but what I don't understand is it reports dkms has missing requirement 'kernel-devel'.
- -- Kind regards,
Jeroen van Meeuwen - -kanarip
- -- http://www.kanarip.com/ RHCE, LPIC-2, MCP, CCNA C6B0 7FB4 43E6 CDDA D258 F70B 28DE 9FDA 9342 BF08
On Tue, 21 Aug 2007 16:43:38 +0200 Jeroen van Meeuwen kanarip@kanarip.com wrote:
Right that I figured, but what I don't understand is it reports dkms has missing requirement 'kernel-devel'.
Shot in the dark, you said arch i386, yet the kernel-devel package is i686.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Jesse Keating wrote:
On Tue, 21 Aug 2007 16:43:38 +0200 Jeroen van Meeuwen kanarip@kanarip.com wrote:
Right that I figured, but what I don't understand is it reports dkms has missing requirement 'kernel-devel'.
Shot in the dark, you said arch i386, yet the kernel-devel package is i686.
Right, point taken. However, that doesn't apply to these:
package: Democracy - 0.9.5.1-8.fc7.i386 from fedora unresolved deps: firefox = 0:2.0.0.3 package: dbmail-sqlite - 2.2.4-4.fc7.i386 from fedora unresolved deps: dbmail = 0:2.2.4-4.fc7 package: gauche-gtk - 0.4.1-12.fc7.i386 from fedora unresolved deps: gauche = 0:0.8.10 package: libgeda-doc - 20070216-1.fc7.i386 from fedora unresolved deps: libgeda = 0:20070216-1.fc7 package: pcb-doc - 0.20060822-9.fc7.i386 from fedora unresolved deps: pcb = 0:0.20060822 [...snip...] package: syncekonnector - 0.3.2-2.fc7.i386 from updates unresolved deps: libkonnector.so.0 libksync.so.1 libmultisynk.so.0 package: system-switch-java-gui - 1.0.0-1.fc7.noarch from fedora unresolved deps: system-switch-java = 0:1.0.0-1.fc7
Note that most of these packages come from the release tree (fedora repository), and may have been updated meanwhile; dbmail-sqlite for example doesn't get installed because it seems to have been integrated into the dbmail package. Though, I specified -n so that repoclosure would look at only the latest and greatest packages. Same goes for system-switch-java-gui (in system-switch-java-1.1.0-2.fc7)
What is it I'm missing this time? What I wanted this to do is report to me which of the most recent packages I could not install due to dependency errors:
./depchecker.py --recent --efficient Unresolvable dependency 'Requires: postfix EQ (u'0', u'2.4.3', u'2.fc7')' for postfix-pflogsumm-2:2.4.3-2.fc7.i386 (from updates) Unresolvable dependency 'Requires: postfix EQ (u'0', u'2.4.3', u'2.fc7')' for sqlgrey-0:1.7.5-1.fc7.noarch (from fedora) Unresolvable dependency 'Requires: postfix EQ (u'0', u'2.4.3', u'2.fc7')' for postgrey-0:1.27-4.fc7.noarch (from fedora)
- -- Kind regards,
Jeroen van Meeuwen - -kanarip
- -- http://www.kanarip.com/ RHCE, LPIC-2, MCP, CCNA C6B0 7FB4 43E6 CDDA D258 F70B 28DE 9FDA 9342 BF08
On Tue, 21 Aug 2007 17:51:36 +0200 Jeroen van Meeuwen kanarip@kanarip.com wrote:
Right, point taken. However, that doesn't apply to these:
package: Democracy - 0.9.5.1-8.fc7.i386 from fedora unresolved deps: firefox = 0:2.0.0.3
Democracy was obsoleted by Miro. Miro should be in updates.
package: dbmail-sqlite - 2.2.4-4.fc7.i386 from fedora unresolved deps: dbmail = 0:2.2.4-4.fc7 package: gauche-gtk - 0.4.1-12.fc7.i386 from fedora unresolved deps: gauche = 0:0.8.10 package: libgeda-doc - 20070216-1.fc7.i386 from fedora unresolved deps: libgeda = 0:20070216-1.fc7 package: pcb-doc - 0.20060822-9.fc7.i386 from fedora unresolved deps: pcb = 0:0.20060822 [...snip...] package: syncekonnector - 0.3.2-2.fc7.i386 from updates unresolved deps: libkonnector.so.0 libksync.so.1 libmultisynk.so.0 package: system-switch-java-gui - 1.0.0-1.fc7.noarch from fedora unresolved deps: system-switch-java = 0:1.0.0-1.fc7
Note that most of these packages come from the release tree (fedora repository), and may have been updated meanwhile; dbmail-sqlite for example doesn't get installed because it seems to have been integrated into the dbmail package. Though, I specified -n so that repoclosure would look at only the latest and greatest packages. Same goes for system-switch-java-gui (in system-switch-java-1.1.0-2.fc7)
What is it I'm missing this time? What I wanted this to do is report to me which of the most recent packages I could not install due to dependency errors:
Not sure what's going on with the rest of those.
On Tue, 21 Aug 2007 12:05:46 -0400, Jesse Keating wrote:
On Tue, 21 Aug 2007 17:51:36 +0200 Jeroen van Meeuwen kanarip@kanarip.com wrote:
Right, point taken. However, that doesn't apply to these:
package: Democracy - 0.9.5.1-8.fc7.i386 from fedora unresolved deps: firefox = 0:2.0.0.3
Democracy was obsoleted by Miro. Miro should be in updates.
The unmodified repoclosure from yum-utils does not consider Obsoletes.
On Tue, 21 Aug 2007 17:51:36 +0200, Jeroen van Meeuwen wrote:
Right that I figured, but what I don't understand is it reports dkms has missing requirement 'kernel-devel'.
Shot in the dark, you said arch i386, yet the kernel-devel package is i686.
Right, point taken. However, that doesn't apply to these:
package: Democracy - 0.9.5.1-8.fc7.i386 from fedora unresolved deps: firefox = 0:2.0.0.3 package: dbmail-sqlite - 2.2.4-4.fc7.i386 from fedora unresolved deps: dbmail = 0:2.2.4-4.fc7 package: gauche-gtk - 0.4.1-12.fc7.i386 from fedora unresolved deps: gauche = 0:0.8.10
-snip-
There are broken deps in Fedora 7 + Updates. Extras repoclosure is run against F7 + Updates + Test Updates frequently and mails the package owners privately. Some packagers ignore the reports, and therefore the broken deps are present for a long(er) time.
On Tue, 21 Aug 2007 16:36:16 +0200, Jeroen van Meeuwen wrote:
This [1] is a rather ugly dependency checker for any number of repositories. It uses yum to search for requirements that cannot be resolved.
I thought maybe because there's no dependency checking yet on updates and such (don't know the details), and I needed this anyway, I'd just dump it here and collect some useful comments.
How does this differ from repoclosure in yum-utils?
I'm assuming that if I use repoclosure with the system's yum configuration, it tells me what it can't resolve just like when I would yum install the package with missing dependencies -so correct me if I'm wrong to assume that:
A random example from repoclosure:
Just for the record, this repoclosure tool from yum-utils is what has been used as Fedora Extras repoclosure for a long time with a few modifications (such as obsoletes, kmod kernel deps).
http://cvs.fedora.redhat.com/viewcvs/extras-repoclosure/rc-modified?root=fed...
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Jeroen van Meeuwen wrote:
seth vidal wrote:
On Tue, 2007-08-21 at 14:12 +0200, Jeroen van Meeuwen wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
This [1] is a rather ugly dependency checker for any number of repositories. It uses yum to search for requirements that cannot be resolved.
I thought maybe because there's no dependency checking yet on updates and such (don't know the details), and I needed this anyway, I'd just dump it here and collect some useful comments.
How does this differ from repoclosure in yum-utils?
I'm assuming that if I use repoclosure with the system's yum configuration, it tells me what it can't resolve just like when I would yum install the package with missing dependencies -so correct me if I'm wrong to assume that:
I'm wrong here after all! repoclosure seems to try and resolve the requirement within the repository the original package was found:
syncekonnector (from updates) for example just requires some kdepim components, but repoclosure reports broken deps from syncekonnector because kdepim isn't in updates. It's the same for most other reported "broken dependencies".
Maybe what repoclosure needs is a mode or option to resolve dependencies across repositories also?
- -- Kind regards,
Jeroen van Meeuwen - -kanarip
- -- http://www.kanarip.com/ RHCE, LPIC-2, MCP, CCNA C6B0 7FB4 43E6 CDDA D258 F70B 28DE 9FDA 9342 BF08
On Tue, 21 Aug 2007 18:02:02 +0200, Jeroen van Meeuwen wrote:
I'm wrong here after all! repoclosure seems to try and resolve the requirement within the repository the original package was found:
syncekonnector (from updates) for example just requires some kdepim components, but repoclosure reports broken deps from syncekonnector because kdepim isn't in updates. It's the same for most other reported "broken dependencies".
Maybe what repoclosure needs is a mode or option to resolve dependencies across repositories also?
I don't think so. There has been an update which takes away the needed libs and breaks syncekonnector, [and possibly only a test update fixes that]. This has been covered in one of the broken deps summaries plus discussion on-list.
On 08/21/2007 02:12 PM, Jeroen van Meeuwen wrote:
This [1] is a rather ugly dependency checker for any number of repositories. It uses yum to search for requirements that cannot be resolved.
I thought maybe because there's no dependency checking yet on updates and such (don't know the details), and I needed this anyway, I'd just dump it here and collect some useful comments.
When executing the script you'll have a few options:
--config pass it a yum config with repos listed in it (in fact it's just walking over all sections, check if they're enabled and take the name, baseurl and mirrorlist) It doesn't do el-reposdir thingies.
--repo Just check this or that repo (provide full "baseurl")
--recent Just check the most recent set of packages and ignore any older versions of foo, bar and baz
--efficient This is the really weird one because I could just iterate over all packages and try to resolve their requirements one by one, but in this mode the script just builds a list of requirements, yum.misc.unique()'s them, and searches the providers for each of these. Saves like a ton of time.
--arch Obvious. Maybe useless. Defaults to i386.
--debuglevel Description says: "Whatever debuglevel yum takes" < and that's true, because the only thing the script does with it is writing it to the temp yum config.
Again, one morning rather well-spent.
[1] http://git.fedoraproject.org/?p=hosted/revisor;a=blob_plain;f=scripts/depche...
Not 100% sure what your script does, but have you had a look at repoclose?
Usage: /usr/bin/repoclosure [-c <config file>] [-a <arch>] [-r <repoid>] [-r <repoid2>]
Options: -h, --help show this help message and exit -c CONFIG, --config=CONFIG config file to use (defaults to /etc/yum.conf) -a ARCH, --arch=ARCH check packages of the given archs, can be specified multiple times (default: current arch) -b, --builddeps check build dependencies only (needs source repos enabled) -r REPOID, --repoid=REPOID specify repo ids to query, can be specified multiple times (default is all enabled) -t, --tempcache Use a temp dir for storing/accessing yum-cache -q, --quiet quiet (no output to stderr) -n, --newest check only the newest packages in the repos
-of