diff options
Diffstat (limited to 'development/lazarus/lazarus.SlackBuild')
-rw-r--r-- | development/lazarus/lazarus.SlackBuild | 99 |
1 files changed, 76 insertions, 23 deletions
diff --git a/development/lazarus/lazarus.SlackBuild b/development/lazarus/lazarus.SlackBuild index a902601fa0..49821eec55 100644 --- a/development/lazarus/lazarus.SlackBuild +++ b/development/lazarus/lazarus.SlackBuild @@ -1,8 +1,10 @@ -#!/bin/sh +#!/bin/bash # Slackware build script for Lazarus IDE -# Written by Andre Barboza <bmg.andre@gmail.com> +# Maintained by Antonio Leal <antonioleal@yahoo.com> +# Previously maintained by B. Watson <urchlay@slackware.uk> +# Originally written by Andre Barboza <email removed> # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: @@ -21,17 +23,32 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 20231229 ALe: Upgrade to Lazarus 3.0 +# - moved fpc-source to fpc package (with new option for the user to exclude it). +# - added option to build lazarus with qt5 instead of gtk2. +# - commented lhelp link correction as sbopkglint does not complain anymore. + +# 20220414 bkw: BUILD=2 +# - fix PRINT_PACKAGE_NAME when ARCH not set in environment. +# - add gtk-update-icon-cache to doinst.sh. +# - remove empty files from doc dir. +# - fix broken symlink. + +# 20210905 bkw: +# - take over maintenance +# - update for v2.0.12 +# - get rid of fpc-source dep; include the source in this package + +cd $(dirname $0) ; CWD=$(pwd) + PRGNAM=lazarus -VERSION=${VERSION:-2.0.6} +VERSION=${VERSION:-3.2} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} LCL=${LCL:-gtk2} - -CWD=$(pwd) -TMP=${TMP:-/tmp/SBo} -PKG=$TMP/package-$PRGNAM -OUTPUT=${OUTPUT:-/tmp} +OPT=${OPT:--v000} if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -40,6 +57,15 @@ if [ -z "$ARCH" ]; then esac fi +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + if [ "$ARCH" != "x86_64" ] && [ "$ARCH" != "i586" ] && [ "$ARCH" != "i686" ]; then printf "\nThis won't build on $ARCH.\n\n" exit 1 @@ -47,24 +73,30 @@ fi set -e +fixperms() { + chown -R root:root . + find -L . -type l -o \ + -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ +} + +# extract source tarball rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM -tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +tar xvf $CWD/$PRGNAM-$VERSION-0.tar.gz cd $PRGNAM -chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +# fix permssions +fixperms + +# patch things up sed -i -e 's:share/man:man:' install/man/Makefile # Compilation doesn't need ./configure make clean -make -j1 all \ +make -j1 bigide \ PREFIX=/usr \ LCL_PLATFORM=${LCL} \ OPT=${OPT} @@ -78,23 +110,44 @@ make install \ ln -sf ../share/lazarus/lazbuild ln -sf ../share/lazarus/startlazarus ) +# add link to lazarus-ide man page +( cd $PKG/usr/man/man1 + ln -sf lazarus-ide.1.gz lazarus.1.gz +) -find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true +# strip binaries and libraries +find $PKG -print0 -type f -a -perm /111 | \ + xargs -0 file -m /etc/file/magic/elf | \ + grep -e "executable" -e "shared object" | \ + grep ELF | \ + cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true -# Install desktop file, icon, and mime entry +# install desktop file, icon, and mime entry mkdir -p $PKG/usr/share/{applications,pixmaps,mime/packages} cat install/lazarus.desktop > $PKG/usr/share/applications/lazarus.desktop cat images/ide_icon48x48.png > $PKG/usr/share/pixmaps/lazarus.png cat install/lazarus-mime.xml > $PKG/usr/share/mime/packages/lazarus-mime.xml -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -ra COPYING* README.txt docs/* examples/ $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +# copy documentation and examples +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKGDOC +cp -ra COPYING* README.md docs/* examples/ $PKGDOC +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild + +rm -f $PKGDOC/INSTALL.txt +find $PKGDOC -depth -type d -empty -delete + +# 20220414 bkw: this symlink is mistargeted... fixed, and don't freak out +# if sbopkglint complains about a filesystem loop (there really is one). +# 20231229 ALe: sbopkglint does not complain anymore +#rm -f $PKG/usr/share/lazarus/components/chmhelp/lhelp/lhelp.app/Contents/MacOS/lhelp +#ln -s ../../../../lhelp $PKG/usr/share/lazarus/components/chmhelp/lhelp/lhelp.app/Contents/MacOS/lhelp +# build package mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE |