Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 291156 - evolution-2.28 downgrades gnupg to version 1 with paludis
Summary: evolution-2.28 downgrades gnupg to version 1 with paludis
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Thomas Anderson (tanderson) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-10-30 12:33 UTC by Harris Landgarten
Modified: 2009-11-04 16:07 UTC (History)
2 users (show)

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


Attachments
0001-Fix-weird-resolver-bug.patch (0001-Fix-weird-resolver-bug.patch,1.20 KB, text/plain)
2009-11-01 19:38 UTC, Ciaran McCreesh
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Harris Landgarten 2009-10-30 12:33:42 UTC
* app-crypt/gnupg [D 2.0.13 -> 1.4.10]
    Reasons: *mail-client/evolution-2.28.1:2.0::gentoo
    -bindist+ bzip2 -curl+ -idea+ ldap nls readline+ (-selinux) -smartcard -static usb+ zlib+ LINGUAS: -ru+ build_options: -optional_tests split strip -trace
* mail-client/evolution :2.0 [U 2.26.3 -> 2.28.1] <target>
    crypt dbus -exchange gstreamer hal -kerberos -krb4 ldap -mono -networkmanager -nntp -pda -profile python ssl build_options: -optional_tests split strip -trace
    28.35 MBytes to download


The cause is this rdepend:

    crypt? ( || (
                  ( >=app-crypt/gnupg-2.0.1-r2
                    || ( app-crypt/pinentry[gtk] app-crypt/pinentry[qt3] ) )
                  =app-crypt/gnupg-1.4* ) )

gnupg-2.0.13 is installed

Reproducible: Always
Comment 1 Sebastian Luther (few) 2009-10-30 13:08:58 UTC
What are your use flags for app-crypt/pinentry? And please add paludis --info.
Comment 2 Harris Landgarten 2009-10-30 13:11:40 UTC
app-crypt/pinentry
    gentoo:                  0.7.5 0.7.5-r1(~) 0.7.6(~) {:0} 
    installed:               0.7.6* {:0} 
    layman:                  (9999 (in ::qting-edge))X {:0} 
    Description:             Collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol
    Homepage:                http://www.gnupg.org/aegypten/
    License:                 GPL-2
    Installed time:          Sat Aug 15 20:04:04 EDT 2009
    Use flags:               (-caps) (gtk) (ncurses) (-qt3) (qt4) (-static) Build Options: -trace
    From repositories:       gentoo
    Installed using:         paludis-0.38.2
Comment 3 Harris Landgarten 2009-10-30 13:13:33 UTC
$ paludis --info
paludis 0.42.0_alpha1
Paludis build information:
    Compiler:
        CXX:                   x86_64-pc-linux-gnu-g++ 4.4.2
        CXXFLAGS:               -march=core2 -O2 -pipe
        LDFLAGS:               -Wl,-O1
        DATE:                  2009-10-22T12:50:55-0400

    Libraries:
        C++ Library:           GNU libstdc++ 20091015

    Paths:
        DATADIR:               /usr/share
        LIBDIR:                /usr/lib64
        LIBEXECDIR:            /usr/libexec
        SYSCONFDIR:            /etc
        PYTHONINSTALLDIR:      
        RUBYINSTALLDIR:        /usr/lib64/ruby/site_ruby/1.8/x86_64-linux

System:
    Linux harrisl-desktop 2.6.31-gentoo-r4 #1 SMP PREEMPT Mon Oct 26 22:48:22 EDT 2009 x86_64 Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz GenuineIntel GNU/Linux

Reduced Privs:
    reduced_uid:               1000
    reduced_uid->name:         harrisl
    reduced_uid->dir:          /home/harrisl
    reduced_gid:               100
    reduced_gid->name:         users

Environment:
    Format:                    paludis
    Config dir:                /etc/paludis
    World file:                /var/db/pkg/world

Repository layman:
    format:                    unavailable
    location:                  /var/db/paludis/repositories/layman
    sync:                      tar+http://git.exherbo.org/layman_repositories.tar.bz2
    sync_options:              

Repository installed-virtuals:
    format:                    installed_virtuals
    root:                      /

Repository virtuals:
    format:                    virtuals

Repository gentoo:
    format:                    ebuild
    location:                  /usr/portage
    append_repository_name_to_write_cache: true
    binary_destination:        false
    binary_keywords:           
    binary_uri_prefix:         
    builddir:                  /var/tmp/paludis
    cache:                     /usr/portage/metadata/cache
    distdir:                   /usr/portage/distfiles
    eapi_when_unknown:         0
    eapi_when_unspecified:     0
    eclassdirs:                /usr/portage/eclass
    ignore_deprecated_profiles: false
    layout:                    traditional
    names_cache:               /usr/portage/.cache/names
    newsdir:                   /usr/portage/metadata/news
    profile_eapi_when_unspecified: 0
    profiles:                  /usr/portage/profiles/default/linux/amd64/10.0/desktop
    securitydir:               /usr/portage/metadata/glsa
    setsdir:                   /usr/portage/sets
    sync:                      rsync://rsync.gentoo.org/gentoo-portage
    sync_options:              
    use_manifest:              use
    write_cache:               /var/cache/paludis/metadata

    Package information:
        app-admin/eselect-compiler: (none)
        app-shells/bash:       4.0_p35
        dev-java/java-config:  2.1.9-r1
        dev-lang/python:       2.5.4-r3 2.6.3 3.1.1-r1
        dev-python/pycrypto:   (none)
        dev-util/ccache:       (none)
        dev-util/cmake:        2.6.4-r3
        dev-util/confcache:    (none)
        sys-apps/baselayout:   2.0.1
        sys-apps/openrc:       0.5.2-r1
        sys-apps/sandbox:      2.2
        sys-devel/autoconf:    2.13 2.63-r1
        sys-devel/automake:    1.10.2 1.11 1.7.9-r1 1.9.6-r2
        sys-devel/binutils:    2.20
        sys-devel/gcc-config:  1.4.1
        sys-devel/libtool:     2.2.6a
        virtual/os-headers:    2.6.30-r1 (for sys-kernel/linux-headers::installed)

Repository installed:
    format:                    vdb
    location:                  /var/db/pkg
    builddir:                  /var/tmp/paludis
    eapi_when_unknown:         0
    names_cache:               /var/db/pkg/.cache/names
    provides_cache:            /var/db/pkg/.cache/provides
    root:                      /

Repository sunrise:
    format:                    ebuild
    location:                  /var/paludis/repositories/sunrise
    append_repository_name_to_write_cache: true
    binary_destination:        false
    binary_keywords:           
    binary_uri_prefix:         
    builddir:                  /var/tmp/paludis
    cache:                     /var/empty
    distdir:                   /usr/portage/distfiles
    eapi_when_unknown:         0
    eapi_when_unspecified:     0
    eclassdirs:                /usr/portage/eclass /var/paludis/repositories/sunrise/eclass
    ignore_deprecated_profiles: false
    layout:                    traditional
    master_repository:         gentoo
    names_cache:               /var/paludis/repositories/sunrise/.cache/names
    newsdir:                   /var/paludis/repositories/sunrise/metadata/news
    profile_eapi_when_unspecified: 0
    profiles:                  /usr/portage/profiles/default/linux/amd64/10.0/desktop
    securitydir:               /var/paludis/repositories/sunrise/metadata/glsa
    setsdir:                   /var/paludis/repositories/sunrise/sets
    sync:                      svn://overlays.gentoo.org/proj/sunrise/reviewed/
    sync_options:              
    use_manifest:              use
    write_cache:               /var/cache/paludis/metadata
Comment 4 Sebastian Luther (few) 2009-10-30 13:33:45 UTC
Assigning to paludis folks, since this looks like a complaint about paludis' dependency resolution for me.
Comment 5 Ciaran McCreesh 2009-10-30 15:34:25 UTC
Paludis considers downgrades to be better than installing new packages. This is intentional, and will remain that way so long as Gentoo doesn't use epochs when changing version formats.
Comment 6 Harris Landgarten 2009-10-30 23:33:19 UTC
As I understand the meaning of this statement

crypt? ( || (
                  ( >=app-crypt/gnupg-2.0.1-r2
                    || ( app-crypt/pinentry[gtk] app-crypt/pinentry[qt3] ) )
                  =app-crypt/gnupg-1.4* ) )

It should short circuit the =app-crypt/gnupg-1.4* and the || ( app-crypt/pinentry[gtk] app-crypt/pinentry[qt3]) because the >=app-crypt/gnupg-2.0.1-r2 evaluates as true. Therefore the crypt? should evaluate as true and there should be no downgrade.

I assume that is what the ebuild author meant. If there is a bug in the logic maybe you could point it out. I don't see one but I have no experience writing ebuilds. Am I missing something?
Comment 7 Ciaran McCreesh 2009-10-30 23:38:54 UTC
You're misreading the parentheses on the dep. It's not "either gnupg 2, or pinentry, or gnupg 1.4", it's "either (gnupg 2 and pinentry), or gnupg-1.4".

What it says is, essentially:

    || ( ( A B ) C )

Where B is itself a || ( ) block in this particular case, but we can pretend it isn't for the sake of explanation.

Thus, the package manager is to choose between ( A B ) or C. Paludis sees ( A B ) as less desirable than C, since the worst case for ( A B ) is B being a new package, whereas for C the worst case is a downgrade. Since a downgrade is better than a new package, Paludis takes the C case.
Comment 8 Harris Landgarten 2009-10-31 11:58:05 UTC
Thanks for the explanation. I didn't know the ||( a b ) meant or ( a and b ). I thought it meant a || b.

There still is a problem though. I added the qt3 flag to pinentry so pinentry[gtk] and pinentry[qt3] are both now true. I then rebuilt pinentry and synced everything but paludis still wants to downgrade gnupg with evolution[crypt]

These packages will be installed:

* app-crypt/gnupg [D 2.0.13 -> 1.4.10]
    Reasons: *mail-client/evolution-2.28.1:2.0::gentoo
    -bindist+ bzip2 -curl+ -idea+ ldap nls readline+ (-selinux) -smartcard -static usb+ zlib+ LINGUAS: -ru+ build_options: -optional_tests split strip -trace
* mail-client/evolution :2.0 [R 2.28.1] <target>
    crypt dbus -exchange gstreamer hal -kerberos -krb4 ldap -mono -networkmanager -nntp -pda -profile python ssl build_options: -optional_tests split strip -trace

app-crypt/pinentry
    gentoo:                  0.7.5 0.7.5-r1(~) 0.7.6(~) {:0} 
    installed:               0.7.6* {:0} 
    layman:                  (9999 (in ::qting-edge))X {:0} 
    Description:             Collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol
    Homepage:                http://www.gnupg.org/aegypten/
    License:                 GPL-2
    Installed time:          Fri Oct 30 20:10:13 EDT 2009
    Use flags:               (-caps) (gtk) (ncurses) (qt3) (qt4) (-static) Build Options: -trace
    From repositories:       gentoo


Comment 9 Omar Saleem 2009-11-01 18:52:26 UTC
(In reply to comment #8)
> Thanks for the explanation. I didn't know the ||( a b ) meant or ( a and b ). I
> thought it meant a || b.
> 
> There still is a problem though. I added the qt3 flag to pinentry so
> pinentry[gtk] and pinentry[qt3] are both now true. I then rebuilt pinentry and
> synced everything but paludis still wants to downgrade gnupg with
> evolution[crypt]
> 
> These packages will be installed:
> 
> * app-crypt/gnupg [D 2.0.13 -> 1.4.10]
>     Reasons: *mail-client/evolution-2.28.1:2.0::gentoo
>     -bindist+ bzip2 -curl+ -idea+ ldap nls readline+ (-selinux) -smartcard
> -static usb+ zlib+ LINGUAS: -ru+ build_options: -optional_tests split strip
> -trace
> * mail-client/evolution :2.0 [R 2.28.1] <target>
>     crypt dbus -exchange gstreamer hal -kerberos -krb4 ldap -mono
> -networkmanager -nntp -pda -profile python ssl build_options: -optional_tests
> split strip -trace
> 
> app-crypt/pinentry
>     gentoo:                  0.7.5 0.7.5-r1(~) 0.7.6(~) {:0} 
>     installed:               0.7.6* {:0} 
>     layman:                  (9999 (in ::qting-edge))X {:0} 
>     Description:             Collection of simple PIN or passphrase entry
> dialogs which utilize the Assuan protocol
>     Homepage:                http://www.gnupg.org/aegypten/
>     License:                 GPL-2
>     Installed time:          Fri Oct 30 20:10:13 EDT 2009
>     Use flags:               (-caps) (gtk) (ncurses) (qt3) (qt4) (-static)
> Build Options: -trace
>     From repositories:       gentoo
> 

unfortunately i can also confirm this behavior
Comment 10 Ciaran McCreesh 2009-11-01 19:38:17 UTC
Created attachment 208980 [details]
0001-Fix-weird-resolver-bug.patch

Think I see it. Try this please.
Comment 11 Ciaran McCreesh 2009-11-04 16:07:12 UTC
0.42.2 has been confirmed to fix this.