#!/bin/bash # arm/build # Check package dependencies, set metadata and launch # package build script. # by Stuart Winter # source /usr/share/slackdev/buildkit.sh # Package metadata: export PKGNAM=mozilla-thunderbird export VERSION=${VERSION:-91.5.1} export BUILD=${BUILD:-1} export PKGSERIES=${PKGSERIES:-xap} export SLACKPACKAGE=$PKGNAM-$VERSION-$PKGARCH-$BUILD.txz # # For patches, you need to edit the location at which we can find # autoconf. # ## ******************************************************************* ## # For test packages - best to store in another location rather than # overwriting the working copy in the main tree: # export PKGSTORE=/tmp/ # mkdir -vpm755 $PKGSTORE/$PKGSERIES ## ******************************************************************* ## # Ensure base ARM packages are installed first: slackbasedeps # Ensure $PKGNAM isn't already installed: slackfailpkgdeps $PKGNAM || removepkg $PKGNAM # Let's allow these Mozilla apps to build on their own: removepkg mozilla-firefox seamonkey seamonkey-solibs # We also need autoconf-2.13 from the extra series. # directory. This is because the newer version of gtk+2-2.12.7 # causes the build to explode. So we need to regenerate the autoconf # stuff - which needs an older autoconf. removepkg autoconf # This isn't exactly portable outside of my own build environment # but honestly, is anybody else actually using ARMedslack's build system? # If so, send me a post card! (or plane tickets to an exotic # island with dancing girls and fine wines! :-) # You must install the packages in this order: #upgradepkg --install-new ../../../extra/autoconf213/autoconf*t?z upgradepkg --install-new $PKGSTORE/../extra/autoconf213/autoconf*t?z # Ensure specific build dependencies (mainly libraries): { slackcheckpkgdeps llvm || installpkg $PKGSTORE/d/llvm-*.t?z || exit 99 ; } # { slackcheckpkgdeps atk || installpkg $PKGSTORE/l/atk-*.t?z || exit 99 ; } { slackcheckpkgdeps cairo || installpkg $PKGSTORE/l/cairo-*.t?z || exit 99 ; } { slackcheckpkgdeps freetype || installpkg $PKGSTORE/l/freetype-*.t?z || exit 99 ; } { slackcheckpkgdeps glib2 || installpkg $PKGSTORE/l/glib2-*.t?z || exit 99 ; } { slackcheckpkgdeps gtk+2 || installpkg $PKGSTORE/l/gtk+2-*.t?z || exit 99 ; } { slackcheckpkgdeps libpng || installpkg $PKGSTORE/l/libpng-*.t?z || exit 99 ; } { slackcheckpkgdeps libxml2 || installpkg $PKGSTORE/l/libxml2-*.t?z || exit 99 ; } { slackcheckpkgdeps pango || installpkg $PKGSTORE/l/pango-*.t?z || exit 99 ; } { slackcheckpkgdeps harfbuzz || installpkg $PKGSTORE/l/harfbuzz-*.t?z || exit 99 ; } { slackcheckpkgdeps fontconfig || installpkg $PKGSTORE/x/fontconfig-*.t?z || exit 99 ; } { slackcheckpkgdeps libICE || installpkg $PKGSTORE/x/libICE-*.t?z || exit 99 ; } { slackcheckpkgdeps libSM || installpkg $PKGSTORE/x/libSM-*.t?z || exit 99 ; } { slackcheckpkgdeps libX11 || installpkg $PKGSTORE/x/libX11-*.t?z || exit 99 ; } { slackcheckpkgdeps libXcursor || installpkg $PKGSTORE/x/libXcursor-*.t?z || exit 99 ; } { slackcheckpkgdeps libXext || installpkg $PKGSTORE/x/libXext-*.t?z || exit 99 ; } { slackcheckpkgdeps libXfixes || installpkg $PKGSTORE/x/libXfixes-*.t?z || exit 99 ; } { slackcheckpkgdeps libXft || installpkg $PKGSTORE/x/libXft-*.t?z || exit 99 ; } { slackcheckpkgdeps libXi || installpkg $PKGSTORE/x/libXi-*.t?z || exit 99 ; } { slackcheckpkgdeps libXinerama || installpkg $PKGSTORE/x/libXinerama-*.t?z || exit 99 ; } { slackcheckpkgdeps libXrandr || installpkg $PKGSTORE/x/libXrandr-*.t?z || exit 99 ; } { slackcheckpkgdeps libXrender || installpkg $PKGSTORE/x/libXrender-*.t?z || exit 99 ; } { slackcheckpkgdeps libXt || installpkg $PKGSTORE/x/libXt-*.t?z || exit 99 ; } # Just Slackware ARM does this: { slackcheckpkgdeps libffi || installpkg $PKGSTORE/l/libffi-*.t?z || exit 99 ; } #{ slackcheckpkgdeps mozilla-firefox || installpkg $PKGSTORE/xap/mozilla-firefox-*.t?z || exit 99 ; } #{ slackcheckpkgdeps seamonkey || installpkg $PKGSTORE/xap/seamonkey-*.t?z || exit 99 ; } # Use the 'gold' ld linker due to RAM issues: # There are other ways to achieve this, but none of them seem to last - the setting # doesn't get filtered through the entire build. Therefore, we'll force it # by linking ld directly to ld.gold. #ln -vfs /usr/bin/ld.gold /usr/bin/ld # Launch the package build script: BUILDLOG=$SLKPORTARCH-$( basename $SLACKPACKAGE .t?z ).build.log ( ./$PKGNAM.SlackBuild ) >& /dev/stdout | tee $BUILDLOG # Compress the build log: bzip2 -9fvz $BUILDLOG # Switch back to the normal autoconf: removepkg autoconf #upgradepkg --install-new ../../../slackware/d/autoconf*t?z { slackcheckpkgdeps autoconf || installpkg $PKGSTORE/d/autoconf-[0-9]*.t?z || exit 99; } # Revert to the default linker: #ln -vfs /usr/bin/ld.bfd /usr/bin/ld