Gentoo Archives: gentoo-dev

From: Stuart Longland <redhatter@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Thoughts about broken package handling
Date: Sun, 26 Jun 2011 03:00:24
Message-Id: 4E06A079.3000208@gentoo.org
1 Hi all,
2
3 I've been busy for the past month or two, busy updating some of my
4 systems. In particular, the Yeeloong I have, hasn't seen attention in a
5 very long time. Soon as I update one part however, I find some swath of
6 packages break because of a soname change, anything Python-related stops
7 working because of a move from Python 2.6 to 2.7, or Perl gets updated.
8
9 Currently we have three packages that handle this separately:
10 - revdep-rebuild (handles packages broken by soname changes, etc)
11 - python-updater (handles Python module rebuilds after upgrading Python)
12 - perl-cleaner (handles Perl module rebuilds after upgrading Perl)
13
14 My bugbear at the moment, is often a package is broken for more than one
15 reason in my situation, and I find myself having to manhandle the
16 package lists generated by the above three, building each package
17 one-by-one, until I manage to rebuild them all.
18
19 Or sometimes a package being rebuilt by revdep-rebuild fails because of
20 a Python module, I'll manually merge that module, then play another
21 round of Russian Roulette to see which package gets shot down next.
22
23 Issues are complicated further when revdep-rebuild or whatever tool,
24 passes the list to Portage, and it fails to calculate dependencies... I
25 just had one before where revdep-rebuild failed because there were no
26 ebuilds to satisfy:
27
28 sys-devel/gcc:i686-pc-linux-gnu-4.4.5
29
30 I've worked around this by picking up the list generated by
31 revdep-rebuild (in /var/cache/... ), and using a bash while read loop to
32 pass each package individually to emerge for building.
33
34 How well is this cleanup trio working? It works, but I think it could
35 improve.
36
37 The thing I see is that all three are fixing essentially the same
38 problem: package breakage due to a change in the dependencies. I think
39 there is scope for a single package, or better yet, Portage extension,
40 that handles all three cases.
41
42 Concept:
43
44 Tool will be written in separate modules to handle:
45 - ELF soname change breakage
46 - Python module updates
47 - Perl module updates
48 - other checks that can cause broken packages...
49
50 Each check is run in order, generating a list of packages that should be
51 rebuilt.
52
53 Having generated this list, it is then evaluated to sort the candidate
54 packages into a suitable order for rebuilding.
55
56 This is then passed to the package manager... three modes for rebuilds:
57 - All-in-one-hit rebuild: What the tools presently do now.
58 - One-by-one rebuild: For each package in the list, build each one
59 individually... useful if Portage coughs up an error otherwise
60 - Dump the list: allows people to handle it with their own tools
61
62 I might see if I can rough something up, but that's what I'm thinking
63 of. It has been an irritation for me for quite some time.
64
65 Thoughts,
66 --
67 Stuart Longland (aka Redhatter, VK4MSL) .'''.
68 Gentoo Linux/MIPS Cobalt and Docs Developer '.'` :
69 . . . . . . . . . . . . . . . . . . . . . . .'.'
70 http://dev.gentoo.org/~redhatter :.'
71
72 I haven't lost my mind...
73 ...it's backed up on a tape somewhere.

Replies

Subject Author
[gentoo-dev] Re: Thoughts about broken package handling Duncan <1i5t5.duncan@×××.net>
Re: [gentoo-dev] Thoughts about broken package handling "Benedikt Böhm" <hollow@g.o>
Re: [gentoo-dev] Thoughts about broken package handling Kent Fredric <kentfredric@×××××.com>
Re: [gentoo-dev] Thoughts about broken package handling Thomas Sachau <tommy@g.o>
Re: [gentoo-dev] Thoughts about broken package handling Philip Webb <purslow@××××××××.net>
Re: [gentoo-dev] Thoughts about broken package handling Stefan Behte <craig@g.o>