FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Portage Developer

 
 
LinkBack Thread Tools
 
Old 08-03-2008, 02:03 PM
"Lucian Poston"
 
Default missing-rebuild package set

The following patchs add a library dependency rebuilder as a package
set, @missing-rebuild, to portage-2.2_rc6. Similar to the --library
flag in revdep-rebuild, the user can additionally emerge the set of
packages containing consumers of libraries matched by a (python)
regular expression; however, until a better solution is found, the
regexp must be passed through the LIBRARY environment variable to
enable that feature.

Known issues: I expect some false positives. I've inserted hard coded
directory/library masks for those I've found. I noticed a situation
that required a second emerge due to a provider package satisfying 3
conditions: 1) the package is installed and an updated version is
available in its slot, 2) the updated version is in the set due to a
dependency of another package (or it may contains a broken binary),
and 3) a consumer package of a library within the updated package is
emerged before the updated dependency is emerged, causing a package to
be compiled against the old library before the library version
changes. I guess that if a package is already installed, it is not
necessarily placed before its consumer packages in the merge order.

Attached are patches for pym/portage/dbapi/vartree.py,
pym/portage/sets/libs.py and /usr/share/portage/config/sets.conf.
These can also be found in the project's repository:
http://repo.or.cz/w/revdep-rebuild-reimplementation.git?a=tree;h=refs/heads/rc1;hb=refs/heads/rc1

I warmly welcome all feedback, in particular any suggestions to remove
the necessity of directory and library masks in /etc/revdep-rebuild/*,
which I've been unable to entirely avoid.

Lucian
 
Old 08-08-2008, 10:10 PM
Zac Medico
 
Default missing-rebuild package set

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lucian Poston wrote:
> The following patchs add a library dependency rebuilder as a package
> set, @missing-rebuild, to portage-2.2_rc6. Similar to the --library
> flag in revdep-rebuild, the user can additionally emerge the set of
> packages containing consumers of libraries matched by a (python)
> regular expression; however, until a better solution is found, the
> regexp must be passed through the LIBRARY environment variable to
> enable that feature.
>
> Known issues: I expect some false positives. I've inserted hard coded
> directory/library masks for those I've found. I noticed a situation
> that required a second emerge due to a provider package satisfying 3
> conditions: 1) the package is installed and an updated version is
> available in its slot, 2) the updated version is in the set due to a
> dependency of another package (or it may contains a broken binary),
> and 3) a consumer package of a library within the updated package is
> emerged before the updated dependency is emerged, causing a package to
> be compiled against the old library before the library version
> changes. I guess that if a package is already installed, it is not
> necessarily placed before its consumer packages in the merge order.
>
> Attached are patches for pym/portage/dbapi/vartree.py,
> pym/portage/sets/libs.py and /usr/share/portage/config/sets.conf.
> These can also be found in the project's repository:
> http://repo.or.cz/w/revdep-rebuild-reimplementation.git?a=tree;h=refs/heads/rc1;hb=refs/heads/rc1

Thanks, I've merged your LinkageMap changes.

Side note: I suspect that we might be able to improve efficiency in
LinkageMap path comparisons by comparing tuples of device and inode
numbers instead of using realpath. We currently use the device/inode
number approach to test identity of paths in dblink.isowner().

> I warmly welcome all feedback, in particular any suggestions to remove
> the necessity of directory and library masks in /etc/revdep-rebuild/*,
> which I've been unable to entirely avoid.
>
> Lucian
>

I haven't merged the MissingLibraryConsumerSet yet since I'd like to
see if we can improve it a bit first. I don't have any ideas right
now but hopefully we can come up with something soon.

Zac



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)

iEYEARECAAYFAkicxEsACgkQ/ejvha5XGaNcyACfX7oKKCbYraRk8AwckkA9Reu6
cRkAoMa/vK5SXDTdw8+nYqpBAlUXz096
=zskl
-----END PGP SIGNATURE-----
 
Old 02-18-2009, 05:17 AM
Alec Warner
 
Default missing-rebuild package set

On Fri, Aug 8, 2008 at 2:10 PM, Zac Medico <zmedico@gentoo.org> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Lucian Poston wrote:
>> The following patchs add a library dependency rebuilder as a package
>> set, @missing-rebuild, to portage-2.2_rc6. Similar to the --library
>> flag in revdep-rebuild, the user can additionally emerge the set of
>> packages containing consumers of libraries matched by a (python)
>> regular expression; however, until a better solution is found, the
>> regexp must be passed through the LIBRARY environment variable to
>> enable that feature.
>>
>> Known issues: I expect some false positives. I've inserted hard coded
>> directory/library masks for those I've found. I noticed a situation
>> that required a second emerge due to a provider package satisfying 3
>> conditions: 1) the package is installed and an updated version is
>> available in its slot, 2) the updated version is in the set due to a
>> dependency of another package (or it may contains a broken binary),
>> and 3) a consumer package of a library within the updated package is
>> emerged before the updated dependency is emerged, causing a package to
>> be compiled against the old library before the library version
>> changes. I guess that if a package is already installed, it is not
>> necessarily placed before its consumer packages in the merge order.
>>
>> Attached are patches for pym/portage/dbapi/vartree.py,
>> pym/portage/sets/libs.py and /usr/share/portage/config/sets.conf.
>> These can also be found in the project's repository:
>> http://repo.or.cz/w/revdep-rebuild-reimplementation.git?a=tree;h=refs/heads/rc1;hb=refs/heads/rc1
>
> Thanks, I've merged your LinkageMap changes.
>
> Side note: I suspect that we might be able to improve efficiency in
> LinkageMap path comparisons by comparing tuples of device and inode
> numbers instead of using realpath. We currently use the device/inode
> number approach to test identity of paths in dblink.isowner().

As it is time for gSoC 2009; I want to inquire at the status of this
code integration.
Looking at HEAD it seems there are some changes left to merge. Is
this on the roadmap?

-Alec

>
>> I warmly welcome all feedback, in particular any suggestions to remove
>> the necessity of directory and library masks in /etc/revdep-rebuild/*,
>> which I've been unable to entirely avoid.
>>
>> Lucian
>>
>
> I haven't merged the MissingLibraryConsumerSet yet since I'd like to
> see if we can improve it a bit first. I don't have any ideas right
> now but hopefully we can come up with something soon.
>
> Zac
>
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.9 (GNU/Linux)
>
> iEYEARECAAYFAkicxEsACgkQ/ejvha5XGaNcyACfX7oKKCbYraRk8AwckkA9Reu6
> cRkAoMa/vK5SXDTdw8+nYqpBAlUXz096
> =zskl
> -----END PGP SIGNATURE-----
>
>
 
Old 02-18-2009, 08:54 PM
Zac Medico
 
Default missing-rebuild package set

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Alec Warner wrote:
>> As it is time for gSoC 2009; I want to inquire at the status of this
>> code integration.
>> Looking at HEAD it seems there are some changes left to merge. Is
>> this on the roadmap?

The hardcoded libraries/paths (used to filter "false positives")
still need to be split out into config files before I can merge it.
I'll get to that eventually but I've got lots of other more pressing
things to work on a them moment.

For preserve-libs, the main problems that are left are:

1) There is no protection against building packages which depend on
packages for which libs are still preserved [1].

2) Library preservation currently does not work for binutils
upgrades since the binutils libraries are added to the library path
via symlinks which are created by binutils-config (unlike most
packages the provide libraries, the paths of libraries to which the
symlinks point are not included directly in ld.so.conf).

[1]
http://blog.flameeyes.eu/2008/06/30/a-few-risks-i-see-related-to-the-new-portage-2-2-preserve-libs-behaviour

- --
Thanks,
Zac
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (GNU/Linux)

iEYEARECAAYFAkmcg4sACgkQ/ejvha5XGaNaSQCg00Bcs0xCzj7/iE2cf5rxMuwT
SqwAoNkSNV+mF6JIGVyttoDKKZ6fOtVs
=NK/Z
-----END PGP SIGNATURE-----
 

Thread Tools




All times are GMT. The time now is 12:56 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org