[arch-general] Does something in makepkg now remove '*.a' files automatically during package?

David C. Rankin drankinatty at suddenlinkmail.com
Mon Jan 20 15:57:00 EST 2014


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.


More information about the arch-general mailing list