public inbox for gentoo-portage-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-portage-dev] idea: strict run-time dependencies to remove perl-cleaner, python-updater...
@ 2005-09-21 14:24 pclouds
  2005-09-21 16:03 ` Finn Thain
  0 siblings, 1 reply; 5+ messages in thread
From: pclouds @ 2005-09-21 14:24 UTC (permalink / raw
  To: gentoo-portage-dev

This is an idea.
Everytime you update python, perl to a major version, you have to run
perl-cleaner/python-updater to re-emerge all packages that depend on
previous version. The situation is probably similar to kernel
packages. When you re-compile and install new kernel, you need to
re-emerge kernel packages to make sure it work properly. I'd rather a
consistent approach to solve these problems instead seperate updater
for separate programs such as python-updater, perl-cleaner.

The idea is to use a number to identify compatibility. Those versions
which have the same number are expected to work well with other
installed programs. If the number is different, then all other depend
programs should be re-emerged.

 When portage merge a package (A) to system, it allow the package to
specify a number (or string, whatever) to specify a compatibility
number. When other packages (e.g B) that depend on package A are
merged, it will keep A's special number in /var/db/pkg. If package A
is re-emerged and break compatibility, this number should change.
Otherwise, this number remains the same.
Those program like perl-cleaner, python-updater may benefit from these
numbers. It may check for numbers stored in /var/db/pkg's B and number
in A's. If these numbers differ, B should be re-emerged.
As for python, all python 2.4's number should be "2.4" and python
2.2.x  should be "2.2". Perl is similar. As for kernel, the number
should be timestamp. Suppose i can feed a kernel ebuild with a config
file :), then everytime i change config, re-emege kernel,
compatibility number should change. That's the signature for, say,
kernel-updater to update all kernel packages.

To implement this feature, ebuild should provide a function, say,
pkg_version() that return compatibility number. Portage should store
this number in /var/db/pkg. Also, when emerge an ebuild, portage
should store current compatibility numbers of all direct dependencies.
The rest of work is left to perl-cleaner, python-updater,
kernel-updater ..., checking compatibility numbers and update packages
appropriately.

How about this?
--
Bi Cờ Lao

-- 
gentoo-portage-dev@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-09-30  9:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-21 14:24 [gentoo-portage-dev] idea: strict run-time dependencies to remove perl-cleaner, python-updater pclouds
2005-09-21 16:03 ` Finn Thain
2005-09-22  8:19   ` pclouds
2005-09-22 10:54     ` Finn Thain
2005-09-30  9:28   ` Petteri Räty

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox