[arch-general] Does something in makepkg now remove '*.a' files automatically during package?
All, This may be ridiculous, if so I apologize in advance, but something is stripping 'lib*.a' files from completed packages between the time of calling package() and the final package being compressed. Building tdelibs, the following files are produced and installed by package() in ${pkgdir}: /opt/trinity/lib/libtdefakes_nonpic.a /opt/trinity/lib/libtdefakes_pic.a /opt/trinity/lib/libtdefakes.so.14.0.0 /opt/trinity/lib/libtdefakes.so.14 /opt/trinity/lib/libtdefakes.so /opt/trinity/lib/libtdefakes.la The PKGBUILD options are: options=('libtool' '!makeflags' '!strip') The package() function is: package() { msg "Packaging - $pkgname-$pkgver" cd ${srcdir}/build make -j1 DESTDIR="$pkgdir" install } The trinity-tdelibs.install is: post_install() { ldconfig &> /dev/null } post_upgrade() { post_install } post_remove() { post_install } I know libtdefakes_nonpic.a and libtdefakes_pic.a were installed by make -j1 DESTDIR="$pkgdir" install from the build log: -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes_nonpic.a -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes_pic.a -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.so.14.0.0 -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.so.14 -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.so -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.la However, the '.a' files are not present in the final tdelibs package: tar -tJf tde-tdelibs-14.0.0-1-x86_64.pkg.tar.xz | grep tdefakes tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' opt/trinity/lib/libtdefakes.so opt/trinity/lib/libtdefakes.so.14.0.0 opt/trinity/lib/libtdefakes.so.14 opt/trinity/lib/libtdefakes.la So both /opt/trinity/lib/libtdefakes_nonpic.a and /opt/trinity/lib/libtdefakes_pic.a were at some point stripped from the final package. How did they get removed from the package? What did it? If I'm just being dense, sorry for the noise, but a polite pointing to a link or some explanation would greatly be appreciated. I also know that this stripping of '.a' files did NOT occur a year or so ago, because tdelibs packages built with the same PKGBUILD contain the missing files: tar -tJf tde-tdelibs-3.5.14_dev-1-x86_64.pkg.tar.xz | grep tdefakes tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' opt/trinity/lib/libtdefakes.so opt/trinity/lib/libtdefakes_pic.a opt/trinity/lib/libtdefakes_nonpic.a opt/trinity/lib/libtdefakes.la opt/trinity/lib/libtdefakes.so.4 opt/trinity/lib/libtdefakes.so.4.2.0 What say the experts? -- David C. Rankin, J.D.,P.E.
This thread [ 1 ] might tell you why. In short, !staticlibs is now a default in makepkg.conf https://mailman.archlinux.org/pipermail/arch-dev-public/2013-October/025542.... On 20 January 2014 21:57, David C. Rankin <drankinatty@suddenlinkmail.com>wrote:
All,
This may be ridiculous, if so I apologize in advance, but something is stripping 'lib*.a' files from completed packages between the time of calling package() and the final package being compressed. Building tdelibs, the following files are produced and installed by package() in ${pkgdir}:
/opt/trinity/lib/libtdefakes_nonpic.a /opt/trinity/lib/libtdefakes_pic.a /opt/trinity/lib/libtdefakes.so.14.0.0 /opt/trinity/lib/libtdefakes.so.14 /opt/trinity/lib/libtdefakes.so /opt/trinity/lib/libtdefakes.la
The PKGBUILD options are:
options=('libtool' '!makeflags' '!strip')
The package() function is:
package() { msg "Packaging - $pkgname-$pkgver" cd ${srcdir}/build
make -j1 DESTDIR="$pkgdir" install }
The trinity-tdelibs.install is:
post_install() { ldconfig &> /dev/null }
post_upgrade() { post_install }
post_remove() { post_install }
I know libtdefakes_nonpic.a and libtdefakes_pic.a were installed by make -j1 DESTDIR="$pkgdir" install from the build log:
-- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes_nonpic.a -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes_pic.a -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.so.14.0.0 -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.so.14 -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.so -- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/ libtdefakes.la
However, the '.a' files are not present in the final tdelibs package:
tar -tJf tde-tdelibs-14.0.0-1-x86_64.pkg.tar.xz | grep tdefakes tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' tar: Ignoring unknown extended header keyword 'SCHILY.fflags' opt/trinity/lib/libtdefakes.so opt/trinity/lib/libtdefakes.so.14.0.0 opt/trinity/lib/libtdefakes.so.14 opt/trinity/lib/libtdefakes.la
So both /opt/trinity/lib/libtdefakes_nonpic.a and /opt/trinity/lib/libtdefakes_pic.a were at some point stripped from the final package. How did they get removed from the package? What did it?
If I'm just being dense, sorry for the noise, but a polite pointing to a link or some explanation would greatly be appreciated.
I also know that this stripping of '.a' files did NOT occur a year or so ago, because tdelibs packages built with the same PKGBUILD contain the missing files:
tar -tJf tde-tdelibs-3.5.14_dev-1-x86_64.pkg.tar.xz | grep tdefakes tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' tar: Ignoring unknown extended header keyword `SCHILY.fflags' opt/trinity/lib/libtdefakes.so opt/trinity/lib/libtdefakes_pic.a opt/trinity/lib/libtdefakes_nonpic.a opt/trinity/lib/libtdefakes.la opt/trinity/lib/libtdefakes.so.4 opt/trinity/lib/libtdefakes.so.4.2.0
What say the experts?
-- David C. Rankin, J.D.,P.E.
On 01/20/2014 03:02 PM, Alexandre Ferrando wrote:
This thread [ 1 ] might tell you why. In short, !staticlibs is now a default in makepkg.conf
https://mailman.archlinux.org/pipermail/arch-dev-public/2013-October/025542....
Thank you. That explains it. Dense again... I had read both 'man pkgbuild' and https://wiki.archlinux.org/index.php/PKGBUILD, but had completely missed the new staticlibs option. -- David C. Rankin, J.D.,P.E.
On Monday 20 January 2014 15:20:17 David C. Rankin wrote:
On 01/20/2014 03:02 PM, Alexandre Ferrando wrote:
This thread [ 1 ] might tell you why. In short, !staticlibs is now a default in makepkg.conf
https://mailman.archlinux.org/pipermail/arch-dev-public/2013-October/02554 2.html Thank you. That explains it. Dense again... I had read both 'man pkgbuild' and https://wiki.archlinux.org/index.php/PKGBUILD, but had completely missed the new staticlibs option.
You must look into 'man makepkg.conf' not pkgbuild. But it is out-of-date too. So for these cases there is our mailing lists or Google (the first link in the Google [1]). Some of our wiki paper need to be updated too. [1] http://goo.gl/Cnn8gq -- С уважением, Е.Алексеев. Sincerely yours, E.Alekseev. e-mail: darkarcanis@mail.ru ICQ: 407-398-235 Jabber: arcanis@jabber.ru
participants (3)
-
Alexandre Ferrando
-
David C. Rankin
-
Evgeniy Alekseev