Gentoo Archives: gentoo-portage-dev

From: pclouds <pclouds@×××××.com>
To: gentoo-portage-dev@l.g.o
Subject: [gentoo-portage-dev] idea: strict run-time dependencies to remove perl-cleaner, python-updater...
Date: Wed, 21 Sep 2005 14:25:31
1 This is an idea.
2 Everytime you update python, perl to a major version, you have to run
3 perl-cleaner/python-updater to re-emerge all packages that depend on
4 previous version. The situation is probably similar to kernel
5 packages. When you re-compile and install new kernel, you need to
6 re-emerge kernel packages to make sure it work properly. I'd rather a
7 consistent approach to solve these problems instead seperate updater
8 for separate programs such as python-updater, perl-cleaner.
10 The idea is to use a number to identify compatibility. Those versions
11 which have the same number are expected to work well with other
12 installed programs. If the number is different, then all other depend
13 programs should be re-emerged.
15 When portage merge a package (A) to system, it allow the package to
16 specify a number (or string, whatever) to specify a compatibility
17 number. When other packages (e.g B) that depend on package A are
18 merged, it will keep A's special number in /var/db/pkg. If package A
19 is re-emerged and break compatibility, this number should change.
20 Otherwise, this number remains the same.
21 Those program like perl-cleaner, python-updater may benefit from these
22 numbers. It may check for numbers stored in /var/db/pkg's B and number
23 in A's. If these numbers differ, B should be re-emerged.
24 As for python, all python 2.4's number should be "2.4" and python
25 2.2.x should be "2.2". Perl is similar. As for kernel, the number
26 should be timestamp. Suppose i can feed a kernel ebuild with a config
27 file :), then everytime i change config, re-emege kernel,
28 compatibility number should change. That's the signature for, say,
29 kernel-updater to update all kernel packages.
31 To implement this feature, ebuild should provide a function, say,
32 pkg_version() that return compatibility number. Portage should store
33 this number in /var/db/pkg. Also, when emerge an ebuild, portage
34 should store current compatibility numbers of all direct dependencies.
35 The rest of work is left to perl-cleaner, python-updater,
36 kernel-updater ..., checking compatibility numbers and update packages
37 appropriately.
39 How about this?
40 --
41 Bi Cờ Lao
43 --
44 gentoo-portage-dev@g.o mailing list


Subject Author
Re: [gentoo-portage-dev] idea: strict run-time dependencies to remove perl-cleaner, python-updater... Finn Thain <fthain@××××××××××××××××.au>