Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 195550 - [x11 overlay] add pixman blocker to libpixman ebuild
Summary: [x11 overlay] add pixman blocker to libpixman ebuild
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo X packagers
URL:
Whiteboard:
Keywords: Inclusion
Depends on:
Blocks:
 
Reported: 2007-10-11 22:04 UTC by James C. Georgas
Modified: 2007-10-14 07:04 UTC (History)
0 users

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


Attachments
add pixman-0.9.5 blocker to x11 overlay's libpixman-9999 (pixman-blocker.diff,52 bytes, patch)
2007-10-11 22:05 UTC, James C. Georgas
Details | Diff
pixman blocker, in proper diff -u format. (pixman-blocker.diff,425 bytes, patch)
2007-10-11 22:10 UTC, James C. Georgas
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description James C. Georgas 2007-10-11 22:04:16 UTC
x11-libs/pixman-0.9.5 in portage and media-libs/libpixman-9999 in the x11 overlay are basically the same package.

xorg-server-9999 in the x11 overlay depends on >=libpixman-9999.

xorg-server-1.4-r2 in portage depends on >=pixman-0.9.5.

If I upgrade to xorg-server-9999, it pulls in libpixman-9999.

At this point, portage is tracking two installed ebuilds which have files in common.

If I then downgrade to xorg-server-1.4-r2, then libpixman-9999 is no longer depended upon by anything.

When I run 'emerge --depclean', libpixman-9999 is removed. This removes files which are common to pixman-0.9.5.

At this point, xorg-server-1.4-r2 is broken, because it is missing a library link.

Running 'emerge -uDNv world' will not catch the problem, because portage doesn't know that pixman-0.9.5 is toast.

Also, revdep-rebuild won't catch this, because it will try (and fail) to remerge xorg-server-1.4-r2, and not pixman-0.9.5, which it thinks is still installed.

The patch I will post adds a blocker to libpixman-9999, so that the user has to explicitly unmerge pixman-0.9.5 before upgrading to libpixman-9999. This way, downgrading xorg-server from -9999 to -1.4-r2, will leave a hole in the tree, which can be caught by either of 'emerge -uDNv world' or 'revdep-rebuild'.

Caveat: for this to be perfect, a mutual blocker for libpixman-9999 should be added to the pixman-0.9.5 ebuild as well. I didn't do this because I wasn't sure about the correctness of adding a blocker in the main tree that references an overlay. If it's not a problem, I'll post another patch for it.

Reproducible: Always

Steps to Reproduce:
1. Start with xorg-server-1.4-r2.
2. Edit /etc/portage/package.* as necessary to get the overlay ebuilds.
3. Upgrade to x11 overlay xorg-server-9999.
4. Change /etc/portage/package.* back to the original state.
4. Downgrade to xorg-server-1.4-r2
5. emerge --depclean
6. 'ldd /usr/bin/X', and note the missing libpixman dependency.

Actual Results:  
pixman-0.9.5 files get clobbered when libpixman-9999 is removed, and vice-versa.
X server bombs out the next time you reset it.

Expected Results:  
pixman-0.9.5 files shouldn't get clobbered, but it can't be helped, so make it get reinstalled when necessary.
Comment 1 James C. Georgas 2007-10-11 22:05:26 UTC
Created attachment 133209 [details, diff]
add pixman-0.9.5 blocker to x11 overlay's libpixman-9999
Comment 2 James C. Georgas 2007-10-11 22:10:23 UTC
Created attachment 133210 [details, diff]
pixman blocker, in proper diff -u format.

Whoops, wrong format. Here's a replacement.
Comment 3 Jakub Moc (RETIRED) gentoo-dev 2007-10-11 22:12:16 UTC
How can you have those two installed at the same time? Did someone slot it or what? Plus what's the link for the overlay and who maintains this?

Comment 4 James C. Georgas 2007-10-11 22:32:17 UTC
You can have them both installed at the same time because the ebuild names are different. One is named "pixman", and the other is named "libpixman".

I guess another solution would be to rename the libpixman ebuild to pixman, so that it becomes just a newer version in the slot. Then it would match the freedesktop git directory name.

The link is http://overlays.gentoo.org/git/proj/x11/. I installed the overlay using "layman -a x11".
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2007-10-11 22:34:04 UTC
(In reply to comment #4)
> You can have them both installed at the same time because the ebuild names are
> different. One is named "pixman", and the other is named "libpixman".

Sigh; that really rocks...
Comment 6 James C. Georgas 2007-10-11 22:51:06 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > You can have them both installed at the same time because the ebuild names are
> > different. One is named "pixman", and the other is named "libpixman".
> 
> Sigh; that really rocks...
> 

Yeah, subtle. I didn't catch it right away either. So what do you want to do about it? Is this patch good enough, or should we change the name of the newer ebuild? I don't know who's maintaining the overlay.
Comment 7 Donnie Berkholz (RETIRED) gentoo-dev 2007-10-14 07:04:42 UTC
I just renamed the pixman ebuild to be consistent with the portage tree one.