Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 274197 - net-print/hplip-3.9.4b wrongly pulls in QT3
Summary: net-print/hplip-3.9.4b wrongly pulls in QT3
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Denis Dupeyron (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-15 07:16 UTC by Manfred Knick
Modified: 2009-06-20 18:20 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Manfred Knick 2009-06-15 07:16:07 UTC
Calculating dependencies... done!
[ebuild     UD] dev-python/sip-4.7.9 [4.8]


# equery depends   dev-python/sip-4.7.9
[ Searching for packages depending on dev-python/sip-4.7.9... ]
dev-python/PyQt-3.17.6 (~dev-python/sip-4.7.9)
dev-python/qscintilla-python-2.3.2 (>=dev-python/sip-4.4)
kde-base/plasma-workspace-4.2.4 (python? >=dev-python/sip-4.7.1)


# equery depends   dev-python/PyQt-3.17.6
[ Searching for packages depending on dev-python/PyQt-3.17.6... ]
dev-python/qscintilla-python-2.3.2 (!qt4? >=dev-python/PyQt-3.17.6)
net-print/hplip-3.9.4b (!minimal & qt3? dev-python/PyQt)         <-----------


# equery uses net-print/hplip-3.9.4b

...
 + + qt3       : Adds support for the Qt GUI/Application Toolkit version 3.x
 + + qt4       : Adds support for the Qt GUI/Application Toolkit version 4.x
...


/usr/portage/profiles/use.local.desc:

...
net-print/hplip:qt3 - Enable graphical interface using Qt 3; when both qt3 and qt4 USE flags are enabled then qt4 has priority over qt3
net-print/hplip:qt4 - Enable graphical interface using Qt 4; when both qt3 and qt4 USE flags are enabled then qt4 has priority over qt3
...


net-print/hplip-3.9.4b:  RDEPEND:
...
        qt4? ( !qt3? (                                  <-----------
            dev-python/PyQt4[X]
            dbus? ( dev-python/dbus-python )
        ) )
        qt3? (                                          <-----------
            dev-python/PyQt
            dbus? ( dev-python/dbus-python )
        )
...


 # emerge --info
Portage 2.1.6.13 (default/linux/amd64/2008.0/desktop, gcc-4.3.3, glibc-2.9_p20081201-r2, 2.6.27-gentoo-r10 x86_64)
=================================================================
System uname: Linux-2.6.27-gentoo-r10-x86_64-AMD_Phenom-tm-_9950_Quad-Core_Processor-with-glibc2.2.5
Timestamp of tree: Mon, 15 Jun 2009 06:15:02 +0000
app-shells/bash:     3.2_p39
dev-java/java-config: 2.1.7
dev-lang/python:     2.5.4-r2
dev-util/cmake:      2.6.4
sys-apps/baselayout: 1.12.12
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native        -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/lib64/fax /usr/share/config /var/lib/hsqldb /var/spool/fax/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=native        -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://ftp.uni-erlangen.de/pub/mirrors/gentoo "
LANG="de_DE.UTF8"
LC_ALL="de_DE.UTF8"
LDFLAGS="-Wl,-O1"
LINGUAS="de"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/Storage-11/Portage_tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/local-overlay"
SYNC="rsync://c3-4-7.rz.ruhr-uni-bochum.de/gentoo-portage"
USE="X acl acpi alsa amd64 apache2 bash-completion berkdb branding bzip2 cairo cdr cli cracklib crypt cups dbus doc dri dvb dvd dvdr dvdread eds emboss encode esd evo examples fam ffmpeg firefox firefox3 flac foomaticdb fortran gdbm gif gimp gnome gphoto2 gpm gstreamer gtk hal hbci htmlhandbook iconv ipv6 isdnlog jadetex java jce jpeg kde ldap libnotify mad maildir mbox midi mikmod mmx mng mp3 mpeg mudflap multilib mysql ncurses nls nptl nptlonly nsplugin ogg opengl openmp pam pcre pdf perl png ppds pppd python qt3 qt3support qt4 quicktime readline reflection samba sasl scanner sdl session spell spl sse sse2 sse3 sse4.1 sse4.2 sse4a sse5 ssl startup-notification svg sysfs tcpd theora tiff truetype unicode usb v4l v4l2 vorbis webkit xcomposite xml xorg xulrunner xv zlib zvbi" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" FRITZCAPI_CARDS="fcpci" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" MISDN_CARDS="avmfritz" USERLAND="GNU" VIDEO_CARDS="nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Allen Brooker (AllenJB) 2009-06-15 09:44:57 UTC
You have both qt3 and qt4 use flags enabled. According to the dependency rules:
...
        qt4? ( !qt3? (                                  <-----------
            dev-python/PyQt4[X]
            dbus? ( dev-python/dbus-python )
        ) )
        qt3? (                                          <-----------
            dev-python/PyQt
            dbus? ( dev-python/dbus-python )
        )
...

Which means:
IF qt4 AND NOT qt3, use PyQt4
IF qt3, use PyQt-3

Basically: Qt3 is the default if both qt3 and qt4 are enabled. If you want to use Qt4 on this package, you need to disable the Qt3 use flag.
Comment 2 Manfred Knick 2009-06-15 14:18:23 UTC
(In reply to comment #1)

No, I have set _none_ of them explicitly !!,
neither in /etc/make.conf
nor in /etc/portage/* !

> Basically: Qt3 is the default if both qt3 and qt4 are enabled.
> If you want to
> use Qt4 on this package, you need to disable the Qt3 use flag.

?? says who ??

This, in fact, at least is in clear contrast to the documented rules:

Well, I'll cite it again:


/usr/portage/profiles/use.local.desc:

...
net-print/hplip:qt3 - Enable graphical interface using Qt 3; when both qt3 and
qt4 USE flags are enabled then qt4 has priority over qt3
net-print/hplip:qt4 - Enable graphical interface using Qt 4; when both qt3 and
qt4 USE flags are enabled then qt4 has priority over qt3

(c.f. my posting above, please re-read).


Moreover, I think it is against "common sense" -
complying as stated in /usr/portage/profiles/use.local.desc,
if two generations are to be "supported", the newer should win ;)


Moreover, you are requesting the user to aggressively override 
the Gentoo _system_ default settings,
which is having both enabled as _system_ settings,
as already cited above (please, re-read):
...
 + + qt3       : Adds support for the Qt GUI/Application Toolkit version 3.x
 + + qt4       : Adds support for the Qt GUI/Application Toolkit version 4.x
...

or call up ufed ...

or 
  # cd /usr/portage/profiles
and run
  # grep -R "qt3" *              | grep make.defaults
  # grep -R "qt4" *              | grep make.defaults
  # grep -R "qt3" * | grep "qt4" | grep make.defaults

- do you recognize any differences at all? I can't ...
Comment 3 Allen Brooker (AllenJB) 2009-06-15 15:35:27 UTC
(In reply to comment #2)
> (In reply to comment #1)
> 
> No, I have set _none_ of them explicitly !!,
> neither in /etc/make.conf
> nor in /etc/portage/* !

Not according to your equery output (with headers re-added):
> [ Legend : U - flag is set in make.conf       ]
> [        : I - package is installed with flag ]
> [ Colors : set, unset                         ]
> [ Found these USE flags for net-print/hplip-2.8.6b ]
>  U I
> ...
>  + + qt3       : Adds support for the Qt GUI/Application Toolkit version 3.x
>  + + qt4       : Adds support for the Qt GUI/Application Toolkit version 4.x
That shows both flags to be enabled (maybe by your profile? The desktop profile enables both, I believe)

> 
> > Basically: Qt3 is the default if both qt3 and qt4 are enabled.
> > If you want to
> > use Qt4 on this package, you need to disable the Qt3 use flag.
> 
> ?? says who ??
Says the package dependencies you pasted (and I've just checked against the tree).

> 
> This, in fact, at least is in clear contrast to the documented rules:
> 
> Well, I'll cite it again:
> 
> 
> /usr/portage/profiles/use.local.desc:
> 
> ...
> net-print/hplip:qt3 - Enable graphical interface using Qt 3; when both qt3 and
> qt4 USE flags are enabled then qt4 has priority over qt3
> net-print/hplip:qt4 - Enable graphical interface using Qt 4; when both qt3 and
> qt4 USE flags are enabled then qt4 has priority over qt3
> 
> (c.f. my posting above, please re-read).
> 
> 
> Moreover, I think it is against "common sense" -
> complying as stated in /usr/portage/profiles/use.local.desc,
> if two generations are to be "supported", the newer should win ;)
It does indeed look as if the package is not complying with the use flag descriptions. In which case this is a bug which needs to be resolved.

While this may be what you were trying to get at in the first place, this wasn't clear (in my opinion). In future I would recommend you explicitly state what's actually happening and, just as importantly, exactly what you expected to happen.

(This information may seem obvious to you, but is not necessarily obvious to those reading a bug which simply consists of a large amount of dumped output from various commands with little explanation)

I disagree that the newer generation should always win. Often, especially when they're first released, the "newer" generation isn't supported to the same degree that the "tried and tested" older generation is.

What I do agree with is that the behaviour should be uniform, so either, across the whole tree, when both flags are set:
- qt4 should be preferred over qt3
- qt3 should be preferred over qt4

It would probably also be useful for users (and devs too!) to have this stated somewhere - probably in the global use flag descriptions.

> 
> 
> Moreover, you are requesting the user to aggressively override 
> the Gentoo _system_ default settings,
> which is having both enabled as _system_ settings,
> as already cited above (please, re-read):
> ...
>  + + qt3       : Adds support for the Qt GUI/Application Toolkit version 3.x
>  + + qt4       : Adds support for the Qt GUI/Application Toolkit version 4.x
> ...
You seem to misunderstand what use flags are. As a general rule, use flags are for enabling (or disabling) optional features in packages. Your selected profile will set a selection of reasonable defaults. You are then expected to fine-tune these for your preferences. 

There's no such thing as "aggressive overriding" - they are simply choices for you to make.
> 
> or call up ufed ...
> 
> or 
>   # cd /usr/portage/profiles
> and run
>   # grep -R "qt3" *              | grep make.defaults
>   # grep -R "qt4" *              | grep make.defaults
>   # grep -R "qt3" * | grep "qt4" | grep make.defaults
> 
> - do you recognize any differences at all? I can't ...
> 

Among the results:
targets/desktop/make.defaults:USE="acpi alsa branding cairo cdr dbus dvd dvdr dvdread eds emboss encode esd evo fam firefox gif gnome gpm gstreamer gtk hal jpeg kde ldap libnotify mad mikmod mp3 mpeg ogg opengl pdf png ppds qt3 qt3support qt4 quicktime sdl spell svg tiff truetype vorbis win32codecs unicode usb X xml xulrunner xv"

According to your "emerge --info":
Portage 2.1.6.13 (default/linux/amd64/2008.0/desktop, gcc-4.3.3,
glibc-2.9_p20081201-r2, 2.6.27-gentoo-r10 x86_64)

Which states you are using the desktop sub-profile.
Comment 4 Ben de Groot (RETIRED) gentoo-dev 2009-06-15 18:52:31 UTC
The deps should be adjusted so that qt4 will be preferred over qt3 when both are enabled (and if i understand correctly, both are enabled by default in desktop profile).

As Qt team we discourage the use of Qt3, as Qt4 has been stable for a while now. So where there is a choice, we strongly recommend Qt4.
Comment 5 Daniel Pielmeier gentoo-dev 2009-06-20 18:20:24 UTC
net-print/hplip-3.9.4b-r1 now prefers qt4 over qt3 if both flags are enabled.