[SOLVED] Slackbuilds and "don't ship .la files"
by JayByrd from LinuxQuestions.org on (#5PA9Z)
I understand that it has been practice for many years now to remove .la files from software packages before calling makepkg. I've read volkerdi's post where he explained the rationale.
Accordingly, I've added the standard "remove .la" routine to a SlackBuild script that I'm working on.Code:# Don't ship .la files:
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.laWhen complete, I notice that there are still about a dozen *.la files in my final package. Apparently, they (the retained .la files) are being missed by the above "rm" command because they do not reside in usr/lib64. Rather, for this package, "make install" places them in usr/lib64/subdirectory1/subdirectory2/blahblah.la
Based on the aforementioned post--where volkerdi states the goal of "shipping as few .la files as possible (and hopefully someday none at all)"--I've gone ahead and replaced the simple "rm" with the following:Code:# Don't ship .la files:
#rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
find $PKG/usr/lib${LIBDIRSUFFIX} -name "*.la" -exec rm -v "{}" \+This worked: I now have a package with "none at all"--i.e., all *.la files have been successfully purged before invoking makepkg.
But, seeing as how the simple "rm" command quoted above was taken directly from Slackware's official SlackBuild scripts, it seems that Slackware itself is content to let slide those *.la files that are found in subdirectories of usr/lib(64). (or am I missing something?)
In light of this, I'm beginning to question whether my "find" command is too aggressive. That is to say, do we really want to remove all *.la files, or just the ones in lib(64) itself?
TIA,
Jay
Accordingly, I've added the standard "remove .la" routine to a SlackBuild script that I'm working on.Code:# Don't ship .la files:
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.laWhen complete, I notice that there are still about a dozen *.la files in my final package. Apparently, they (the retained .la files) are being missed by the above "rm" command because they do not reside in usr/lib64. Rather, for this package, "make install" places them in usr/lib64/subdirectory1/subdirectory2/blahblah.la
Based on the aforementioned post--where volkerdi states the goal of "shipping as few .la files as possible (and hopefully someday none at all)"--I've gone ahead and replaced the simple "rm" with the following:Code:# Don't ship .la files:
#rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
find $PKG/usr/lib${LIBDIRSUFFIX} -name "*.la" -exec rm -v "{}" \+This worked: I now have a package with "none at all"--i.e., all *.la files have been successfully purged before invoking makepkg.
But, seeing as how the simple "rm" command quoted above was taken directly from Slackware's official SlackBuild scripts, it seems that Slackware itself is content to let slide those *.la files that are found in subdirectories of usr/lib(64). (or am I missing something?)
In light of this, I'm beginning to question whether my "find" command is too aggressive. That is to say, do we really want to remove all *.la files, or just the ones in lib(64) itself?
TIA,
Jay