diff options
Diffstat (limited to 'development/fpc/fpc.SlackBuild')
-rw-r--r-- | development/fpc/fpc.SlackBuild | 89 |
1 files changed, 63 insertions, 26 deletions
diff --git a/development/fpc/fpc.SlackBuild b/development/fpc/fpc.SlackBuild index 8d76064d0f..a7399aec49 100644 --- a/development/fpc/fpc.SlackBuild +++ b/development/fpc/fpc.SlackBuild @@ -2,9 +2,10 @@ # Slackware build script for Free Pascal -# Written by Andre Barboza <email removed>. +# Maintained by Antonio Leal <antonioleal@yahoo.com>. +# Previously maintained by B. Watson <urchlay@slackware.uk>. # Modified by the SlackBuilds.org project. -# Now maintained by B. Watson <urchlay@slackware.uk>. +# 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: @@ -23,6 +24,19 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 20231229 ALe: BUILD=3 +# Imported Debian patches to support -fPIC option, improved timestamps. +# Added fpc source code with option to exclude it. + +# 20230814 ALe: BUILD=2 +# - tested conflict with ptop: it no longer exists because in ptop SlackBuild +# the name /usr/bin/ptop.py is now being used. + +# 20230520 bkw: ARCH is now i586, use separate SRCARCH for the i386 +# in the source filenames. I severely doubt this would run on a 386 +# anyway. i586 is the minimum *Slackware supported* ARCH this will run +# on. Not bumping BUILD because the package contents don't change. + # 20220415 bkw: BUILD=2 # - remove *.rsj files from /usr/bin. @@ -39,7 +53,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=fpc VERSION=${VERSION:-3.2.2} BINVER=${BINVER:-3.2.2} -BUILD=${BUILD:-1} +BUILD=${BUILD:-3} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -51,20 +65,12 @@ 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} - case "$ARCH" in - i?86) ARCH="i386" + i?86) ARCH="i586" + SRCARCH="i386" LIBDIRSUFFIX="" ;; - x86_64) ARCH="x86_64" + x86_64) SRCARCH="x86_64" LIBDIRSUFFIX="64" ;; *) printf "$ARCH is not supported...\n" @@ -72,15 +78,31 @@ case "$ARCH" in ;; esac +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} + 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 {} \+ +} + rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$BINVER ${PRGNAM}build-$VERSION mkdir $PRGNAM-$BINVER ${PRGNAM}build-$VERSION cd $TMP/$PRGNAM-$BINVER -tar xvf $CWD/$PRGNAM-$BINVER.$ARCH-linux.tar --strip-components=1 +tar xvf $CWD/$PRGNAM-$BINVER.$SRCARCH-linux.tar --strip-components=1 cd $TMP/${PRGNAM}build-$VERSION tar xvf $CWD/${PRGNAM}build-$VERSION.tar.gz @@ -89,14 +111,14 @@ tar xvf $CWD/${PRGNAM}build-$VERSION.tar.gz ( mkdir -p $TMP/$PRGNAM-$BINVER/binary cd $TMP/$PRGNAM-$BINVER/binary - tar xvf $TMP/$PRGNAM-$BINVER/binary.$ARCH-linux.tar + tar xvf $TMP/$PRGNAM-$BINVER/binary.$SRCARCH-linux.tar cd $TMP/$PRGNAM-$BINVER - tar xvf $TMP/$PRGNAM-$BINVER/binary/base.$ARCH-linux.tar.gz - tar xvf $TMP/$PRGNAM-$BINVER/binary/utils.$ARCH-linux.tar.gz + tar xvf $TMP/$PRGNAM-$BINVER/binary/base.$SRCARCH-linux.tar.gz + tar xvf $TMP/$PRGNAM-$BINVER/binary/utils.$SRCARCH-linux.tar.gz cd $TMP/$PRGNAM-$BINVER/bin - if [ "$ARCH" = "x86_64" ]; then + if [ "$SRCARCH" = "x86_64" ]; then ln -s ../lib/fpc/$BINVER/ppcx64 else ln -s ../lib/fpc/$BINVER/ppc386 @@ -112,9 +134,15 @@ cd $TMP/${PRGNAM}build-$VERSION/${PRGNAM}build-$VERSION sed -i "s,\\(as\\|control\\) it's,\\1 its," install/man/man?/*.? # 20210905 bkw: patch taken from Debian with many thanks. Installs the -# IDE's data files somewhere besides /usr/bin, and patches the IDE to -# look for them there. -patch -p1 < $CWD/fix-IDE-data-file-location.patch +# - IDE's data files somewhere besides /usr/bin, and patches the IDE to look for them there. +patch -p1 < $CWD/patches/fix-IDE-data-file-location.patch +# 20240113 ALe: Patches imported from Debian fpc_3.2.2+dfsg-20.debian.tar.xz : +# - Fixed liking with libc when PIC is enabled (x86_64 specific) +patch -p1 < $CWD/patches/Fix-liking-with-libc-when-PIC-is-enabled.patch +# - Add glibc2.34.patch to adjust startup code for glibc2.34 (Closes: #1016556) +patch -p1 < $CWD/patches/glibc2.34.patch +# - Reproducibility never ends: add honor_SOURCE_DATE_EPOCH_in_date.patch to improve some timestamps in binaries +patch -p1 < $CWD/patches/honor_SOURCE_DATE_EPOCH_in_date.patch # 20210905 bkw: don't let the NOGDB=1 scare you. During the compile # we get this message: @@ -128,12 +156,23 @@ make -j1 NOGDB=1 PREFIX=$PKG/usr install [ "$LIBDIRSUFFIX" = "64" ] && mv $PKG/usr/lib $PKG/usr/lib${LIBDIRSUFFIX} cd $PKG/usr/bin -if [ "$ARCH" = "x86_64" ]; then +if [ "$SRCARCH" = "x86_64" ]; then ln -s ../lib$LIBDIRSUFFIX/fpc/$VERSION/ppcx64 else ln -s ../lib$LIBDIRSUFFIX/fpc/$VERSION/ppc386 fi +# 20231229 ALe: Optionally exclude the source from the package. +# Source is required by some apps (e.g lazarus IDE). +if [ "${SRC:-yes}" = "yes" ]; then + mkdir -p $PKG/usr/src + ( cd $PKG/usr/src + tar xvf $CWD/fpc-$VERSION.source.tar.gz + fixperms + ln -s fpc-$VERSION fpc + ) +fi + # copy docs mv $PKG/usr/share/doc $PKG/usr/doc rmdir $PKG/usr/share @@ -182,8 +221,6 @@ cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG # fix permissions for program docs and demos. -chown -R root:root . -find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ - \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ +fixperms /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE |