[pacman-dev] [PATCH] makepkg: rework libprovides

Allan McRae allan at archlinux.org
Sun Dec 25 05:36:46 EST 2011


On 25/12/11 20:06, Florian Pritz wrote:
> First off, this patch creates a syntax error.

That is fixed on my working branch - I will resend.

> On 25.12.2011 07:52, Allan McRae wrote:
>>  - Only calculates the version for libraries specifically requested
>>    and not all libraries. This has the disadvantage of running find
>>    over the $pkgdir for as many libraries as needed, but is unlikely
>>    to be an issue due to caching.
> 
> Maybe you could create a search string like the following? This won't
> preserve the order, but it will traverse the file system only once and
> according to the find manpage it's POSIX compliant.
> 
> find /usr/lib -type f \( -name libx264.so\* -o -name libc.so\* -o -name
> libarchive.so\* \)

I do not see that being worth the effort of creating the find command.
Even for the largest of packages the find will take a fraction of a
second with the files being cached.

>>  - The order of the provides array in the PKGBUILD is kept in the
>>    package
>>  - There are more warning messages when things fail and those that
>>    were there are no longer errors (as I do not think failure of
>>    libprovides should result in complete packaging failure)
> 
> I think it should because libraries hardly move between packages or
> change their names and the packager might not see the message and push a
> package with incorrect provides.

If the package does not see a warning in the last few lines of the build
output, then they need to stop packaging...

> It might be a good idea not to abort right away though. You could check
> all entries and abort later, but I think you shouldn't create a package
> since the packager will have to fix the incorrect entry and
> rebuild/repackage anyway.

There are two cases where this occurs:
1) the library has no soname information
2) the listed provide is not a shared object

If we make these errors and someone wants to add a provide that hits one
of these conditions, then there is nothing they can do.  This could be
especially possible with #1...

Allan


More information about the pacman-dev mailing list