From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lists.gentoo.org ([140.105.134.102] helo=robin.gentoo.org) by nuthatch.gentoo.org with esmtp (Exim 4.43) id 1EIMJT-0001AR-9z for garchives@archives.gentoo.org; Thu, 22 Sep 2005 08:20:15 +0000 Received: from robin.gentoo.org (localhost [127.0.0.1]) by robin.gentoo.org (8.13.5/8.13.5) with SMTP id j8M8DZ53018892; Thu, 22 Sep 2005 08:13:35 GMT Received: from xproxy.gmail.com (xproxy.gmail.com [66.249.82.194]) by robin.gentoo.org (8.13.5/8.13.5) with ESMTP id j8M8DX5j014720 for ; Thu, 22 Sep 2005 08:13:34 GMT Received: by xproxy.gmail.com with SMTP id t10so417334wxc for ; Thu, 22 Sep 2005 01:19:40 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=TjFfilfPQI+BorT4E5C9D9MmQujz9FYO7ZKCB43lWQH8gb17LPGnln4VCePH1AhbgTytmHrJKyr83vjIOr8JWklTuGRIbVZDSum/OLmqdy96JDi6DCSFEFNDRV6N7qlS4X8NYLcp7jzLC7RyB+Pj/eli1/mwouwYObipY8hdHcg= Received: by 10.70.21.12 with SMTP id 12mr152020wxu; Thu, 22 Sep 2005 01:19:40 -0700 (PDT) Received: by 10.70.19.7 with HTTP; Thu, 22 Sep 2005 01:19:40 -0700 (PDT) Message-ID: Date: Thu, 22 Sep 2005 17:19:40 +0900 From: pclouds To: gentoo-portage-dev@lists.gentoo.org Subject: Re: [gentoo-portage-dev] idea: strict run-time dependencies to remove perl-cleaner, python-updater... In-Reply-To: Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-portage-dev@gentoo.org Reply-to: gentoo-portage-dev@lists.gentoo.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline References: X-MIME-Autoconverted: from base64 to 8bit by robin.gentoo.org id j8M8DX5j014720 Content-Transfer-Encoding: quoted-printable X-MIME-Autoconverted: from 8bit to quoted-printable by robin.gentoo.org id j8M8DZ6G018892 X-Archives-Salt: a9213468-ec43-40d2-861a-7d64bc1c3d20 X-Archives-Hash: a5d77ae2717e3c4b9967cf0173fde4ab Well, my aim is mainly perl, python, nautilus, gtk+ modules... As for kernel modules, i'd rather all gentoo-provided kernel modules are updated properly without exaustive search (too slow). People who manually install kernel modules should take care of themselves :) On 9/22/05, Finn Thain wrote: > > On Wed, 21 Sep 2005, pclouds wrote: > > > 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. > > I assume there is no such thing as a kernel-updater (at least there isn= 't > one on my system). Your suggestion would make it easier to write one. B= ut, > since kernel symbol versioning is precise enough to detect ABI > compatibility between versions, isn't the problem largely solved in the > kernel? I'm not sure that such a script is needed other than to save yo= u > from having to figure out what pkg contains the module that just broke? > > There is also the problem that some portion of gentoo users roll their = own > kernels, without telling portage. > > So, if you wanted to write a kernel-updater, wouldn't it be better to > exhaustively check the module symbols against the Module.symvers file? > (There is also the vermagic field in modinfo, not sure where that comes > from. I'm assuming CONFIG_MODVERSIONS, but those not using that hopeful= ly > know what they are doing anyway :-). > > > 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 thes= e > > numbers. It may check for numbers stored in /var/db/pkg's B and numbe= r > > 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. > > The rebuilder/module ebuilds don't need to know that version x is > compatible with version x+n if the rebuilder is only ever run upon ebui= ld > advise after an upgrade. > > Consequently, you could just have portage record the actual versions of > the deps that were in use at the time a pkg was emerged (if it doesn't > already?). Then the rebuilder just has to look for any kernel modules t= hat > were emerged while depending on a kernel older than the present one. (I > don't know if this would help with package.provided kernels and > !CONFIG_MODVERSIONS kernels, it might.) > > IMHO an exhaustive search is still the best approach. > > (But don't ask me what you do if the module is not slotted and the > original kernel is still installed as a fall back...) > > -f > > > Suppose i can feed a kernel ebuild with a config file :), then everyt= ime > > 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 package= s > > appropriately. > > > > How about this? > > -- > > Bi C=E1=BB=9D Lao > > > > > -- Bi C=E1=BB=9D Lao --=20 gentoo-portage-dev@gentoo.org mailing list