FS#7127 - pacman3 makepkg.conf default settings for libtool

Attached to Project: Pacman
Opened by Rafal Szczepaniak (lanrat) - Friday, 11 May 2007, 15:47 GMT
Last edited by Dan McGee (toofishes) - Wednesday, 30 May 2007, 19:56 GMT
Task Type Bug Report
Category makepkg
Status Closed
Assigned To Aaron Griffin (phrakture)
Dan McGee (toofishes)
Architecture All
Severity Medium
Priority Normal
Reported Version 0.8 Voodoo
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

With today's upgrade to pacman 3.0.4-1 I've noticed in the default /etc/makepkg.conf file that in the OPTIONS array the default setting is "libtool" while the comments suggest that it should be "!libtool".

I think one of them should be changed (comments or OPTIONS).
This task depends upon

Closed by  Dan McGee (toofishes)
Wednesday, 30 May 2007, 19:56 GMT
Reason for closing:  Deferred
Additional comments about closing:  For now, leaving the libtool option as is. We'll worry about changing it later if need be.
Comment by Dan McGee (toofishes) - Friday, 11 May 2007, 19:50 GMT
The biggest problem is that this:
# Default: OPTIONS=(strip !docs !libtool emptydirs)
differs from this:
OPTIONS=(strip !docs libtool emptydirs)

The second set of options is now listed as the default, although I'm not sure which way we should go on automatic libtool removal. I think it would make sense to automatically remove them.

Notice that all of the comments are meant to describe, the non-negated option, including that for 'docs'.
Comment by Attila (attila) - Friday, 11 May 2007, 19:51 GMT
And what will happens with packages which needs the .la files as KDE? Using '!libtool' as default could be very dangerous in such cases.
Comment by Aaron Griffin (phrakture) - Friday, 11 May 2007, 19:53 GMT
What Dan is saying is this:
The comment is a bit misleading. It indicates the defaults in the options array is entirely empty.

What he is proposing, with the !libtool default is that !libtool is the default, and KDE packages would need to specify options=(libtool) to include the files - an opt-in policy does seem smarter here.
Comment by Dan McGee (toofishes) - Friday, 11 May 2007, 19:54 GMT
Yes, opt-in is exactly what I was thinking.
Comment by Attila (attila) - Friday, 11 May 2007, 20:34 GMT
At first: Sorry Dan, i misunderstood you.

Okay, in the theory the "options=(libtool)" only for kde packages sounds good. But in reality all packages which do not want to have the *.la files have a line for it at the end of the PKGBUILD so i suggest that only a certain percentage of the devs have to change their PKGBUILD's.

This means that the PKGBUILD's with the delete line of the *.la files switch to "options=(!libtool)" and the other makes nothing for it as before. The other possible option means that everybody has to change his PKGBUIILD and it is not sure that everyone will notice that a very import change is in the makepkg.conf which could breaks own packages.

Sorry, but from my view it is too late to go this better way without the danger of confusing a lot of other people. But i'm happy that i haven't to decide this.-)
Comment by Aaron Griffin (phrakture) - Friday, 11 May 2007, 21:03 GMT
Regarding libtool - we went through great pains a while back to strip libtool files out. By default arch packages should not provide libtool files. The only exception is KDE, which uses the libtool files at runtime and thus needs them.

This policy suggests that !libtool should be default, and that KDE should be the one to change.

This should only require a change to KDE packages, and the other packages could then clean up the libtool line whenever they want. This way the options reflect the _policy_ of arch, which is important.

This change will not happen for some time. It is important that we modify the KDE packages to include this line, and update the packaging standards first and foremost.

For clarity - libtool files are not needed. The only reason KDE needs them is because they are used at runtime.
Comment by Attila (attila) - Saturday, 12 May 2007, 06:19 GMT
Thanks for the explanation. My intention of suggest the other way was only the work for the devs which could be not the right time for doing it now.
Comment by Jan de Groot (JGC) - Thursday, 17 May 2007, 19:20 GMT
IMHO leaving libtool files in won't break functionality when you forget to remove them. In the case of KDE, it breaks functionality when you forget to not remove them. I would opt for keeping the default as it is.
Comment by Aaron Griffin (phrakture) - Thursday, 17 May 2007, 19:23 GMT
Right it will stay as is right now, but as I said before, it should probably reflect _policy_ first and foremost. We could say the same thing about docs - "they don't break anything if included", but the arch policy drops those.

For some reason this bug report makes it seem like the libtool default will be removed tomorrow - it won't. Let's just say, for right now, that it won't be changed for 6 months. Is that good enough?
Comment by Jan de Groot (JGC) - Thursday, 17 May 2007, 20:54 GMT
Removing docs doesn't break a package, removing libtool files can break a package. Let's suppose you have a program like sasl that loads its authentication plugins using libtool. You build the sasl plugins package, install it on your system and still the plugins aren't found. Not a single pointer to missing .la files, because they were never there.
In case of docs, you'll get a clear error about a file missing in /usr/share/doc when you launch help. Removing possibly important files is a bad idea for now, but also in the future.
Comment by Aaron Griffin (phrakture) - Thursday, 17 May 2007, 21:04 GMT
I think you're still missing the point. We're not talking about removing libtool files. If a package needs them, the package keeps them. Maybe that was unclear, so let me reiterate: any package that needs libtool files at runtime can keep them.

I don't see how this could be a possible problem at all. Anything that doesn't work on first build due to missing libtool files should be tested, in which case the packager knows it's broken, and voila, it's fixed. The only thing it requires is one additional step from the packager.

For the sake of unity here, I'm going to say we drop this - lets just keep libtool files so we don't waste time discussing things that really don't matter at all. There are many other things we should be doing.

Loading...