Summary: | qpkg does not acknowledge the rebuild and removal of a dependancy | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Charles Phoenix <phoenixreads> |
Component: | Tools | Assignee: | Portage Tools Team <tools-portage> |
Status: | RESOLVED WONTFIX | ||
Severity: | normal | CC: | eric, fuzzyray |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
Patch to use dependency USE flags correctly
Updated patch for the latest qpkg in gentoolkit-0.2.0_pre8 Patch to look at USE flags for Installed/Uninstalled packages |
Description
Charles Phoenix
2003-12-23 04:14:12 UTC
behavior the same for different package this time tcl bash-2.05b# qpkg -I -q tcl dev-lang/tcl-8.4.4 * DEPENDED ON BY: db-4.1.25_p1-r3 confirmed the presence of -tcltk bash-2.05b# emerge -pv db These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] sys-libs/db-4.1.25_p1-r3 -tcltk +java +doc rebuilt db change not registered by qpkg bash-2.05b# qpkg -I -q tcl dev-lang/tcl-8.4.4 * DEPENDED ON BY: db-4.1.25_p1-r3 Created attachment 22638 [details, diff]
Patch to use dependency USE flags correctly
I haven't extensively tested this patch yet. As far as I can tell it is working
correctly.
The patch doesn't seem to have any effect for me. I applied it to the qpkg from gentoolkit-0.2.0_pre8 and still have the problem. An example of the problem: I recently changed from sasl to -sasl use flag. I did "emerge -C cyrus-sasl" and I upgraded openldap to 2.1.26. qpkg shows the dependency is still there even though equery shows that the flag is not in use: # qpkg -q cyrus-sasl-2.1.17 dev-libs/cyrus-sasl-2.1.17 DEPENDED ON BY: net-nds/openldap-2.1.26 # equery uses openldap [ Colour Code : set unset ] [ Legend : (U) Col 1 - Current USE flags ] [ : (I) Col 2 - Installed With USE flags ] U I [ Found these USE variables in : net-nds/openldap-2.1.26 ] + + berkdb : Adds support for sys-libs/db (Berkeley DB for MySQL) + + crypt : Add support for encryption -- using mcrypt or gpg where applicable - - debug : Tells configure and the makefiles to build for debugging. Effects vary acrosss packages, but generally it will at least add -g to CFLAGS. Remember to set FEATURES+=nostrip too. + + gdbm : Adds support for sys-libs/gdbm (GNU database libraries) - - ipv6 : Adds support for IP version 6 - - kerberos : Adds kerberos support - - odbc : Adds ODBC Support (Open DataBase Connectivity) + + perl : Adds support/bindings for the Perl language. + + readline : enables support for libreadline, a GNU line-editing library that most everyone wants. - - samba : Adds support for SAMBA - - sasl : Adds support for the Simple Authentication and Security Layer - - slp : Adds Service Locator Protocol support to CUPS + + ssl : Adds support for Secure Socket Layer connections + + tcpd : Adds support for TCP wrappers # Created attachment 29798 [details, diff]
Updated patch for the latest qpkg in gentoolkit-0.2.0_pre8
Between the time when I wrote the original patch and the latest version of
qpkg, single quotes were used to surround a sed statement containg a variable.
This means that the script doesn't expand the flag variable used to remove the
package from the list of candidates. This updated patch changes the single
quotes back to double quotes to allow the variable expansion. I will post the
results of my testing shortly
1. env USE="ldap" emerge -pv pine These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] net-mail/pine-4.58 -debug +ldap +ssl 0 kB 2. env USE="ldap" emerge -v pine 3. qpkg -I -q openldap net-nds/openldap-2.1.26 * DEPENDED ON BY: pine-4.58 4. emerge -pv pine These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] net-mail/pine-4.58 -debug -ldap +ssl 0 kB Total size of downloads: 0 kB 5. emerge -v pine 6. qpkg -I -q openldap net-nds/openldap-2.1.26 * DEPENDED ON BY: 7. emerge -C openldap 8. qpkg -I -q openldap-2.1.26 net-nds/openldap-2.1.26 DEPENDED ON BY: app-crypt/gnupg-1.2.4 dev-libs/cyrus-sasl-2.1.14 dev-php/mod_php-4.3.6_rc2 dev-php/php-4.3.4-r4 kde-base/kdebase-3.2.1 kde-base/kdelibs-3.2.1 kde-base/kdepim-3.2.1 net-mail/courier-imap-3.0.2 net-mail/evolution-1.4.5 net-mail/pine-4.58 net-mail/postfix-2.0.19 net-mail/squirrelmail-1.4.2-r3 net-misc/curl-7.10.8-r1 Based upon this limited test, the update patch appears to working correctly again. Please note that the patch only works against packages that are installed. If the package is uninstalled, only the possible dependencies are checked and not the USE flags. Finally, I would like to request that the Portage tools team consider patching qpkg with this patch as the current behavior of qpkg is buggy with respect to USE flags and the equery depends command has not been implemented yet. I applied the patch but still get the same behaviour as in Comment #3 - qpkg thinks openldap depends on cyrus-sasl, even though -sasl use flag is set and openldap was not compiled with sasl support. sasl is not even installed on the system. I also don't understand the results of step 8 from Comment #5. You just removed openldap from the system is step 7, so shouldn't the -I cause qpkg to return nothing (e.g. there are no versions of openldap installed to check for the dependencies of)? That was a bad cut-n-paste. The command I ran was qpkg -q openldap-2.1.26. Running with -I does indeed return nothing. The point I was trying to make with step 8 is that if the software isn't installed on the system, then qpkg only looks at the possible dependencies, it doesn't take any USE flag settings into account. If you were to reinstall cyrus-sasl and run qpkg -I -q cyrus-sasl-2.1.17 you should not see openldap as a dependency. If I have the time, I will look into developing a patch to take the current USE settings into account when looking at uninstalled packages. Created attachment 29799 [details, diff]
Patch to look at USE flags for Installed/Uninstalled packages
Okay, I looked at the code again and the patch was simple. This version of the
patch will look at the USE flag settings for both installed and uninstalled
packages.
Works for cyrus-sasl/openldap, but it still thinks links requires svgalib: # qpkg -q svgalib-1.9.18-r1 media-libs/svgalib-1.9.18-r1 DEPENDED ON BY: links-2.1_pre11 # equery uses links [ Colour Code : set unset ] [ Legend : (U) Col 1 - Current USE flags ] [ : (I) Col 2 - Installed With USE flags ] U I [ Found these USE variables in : net-www/links-2.1_pre11 ] - - directfb : Adds support for DirectFB layer (library for FB devices) + + ssl : Adds support for Secure Socket Layer connections - - javascript : enable javascript support + + png : Adds support for libpng (PNG images) - - X : Adds support for XFree86 + + gpm : Adds support for sys-libs/gpm (Console-based mouse driver) - - tiff : Adds support for the tiff image format - - fbcon : Adds framebuffer support for the console, via the kernel - - svga : Adds support for SVGAlib (graphics library) + + jpeg : Adds JPEG image support I don't have a good answer for that case. I know what is causing the problem, but I don't know a solution that doesn't break other things. this tool is deprecated |