slackware-current/source/n/curl/curl.SlackBuild
Patrick J Volkerding b6d2c7f5fa Wed Sep 11 17:47:14 UTC 2024
a/efibootmgr-18-x86_64-1.txz:  Upgraded.
a/grub-2.12-x86_64-16.txz:  Rebuilt.
  Long ago, we began giving all the scripts in /etc/grub.d/ the .new treatment
  to prevent local customizations from being overwritten with a package
  upgrade. But, this no longer appears to be a good idea, especially if we're
  ever going to offer the possibility to automate grub-install and grub-update.
  So, we are no longer going to preserve the contents of these files when the
  grub package is upgraded. We *will* however preserve the existing
  permissions, so you'll be able to turn off scripts that you don't want
  running, and you'll be able to make new scripts, or make edited and renamed
  copies of the scripts shipped in this package, so there's no real loss of
  functionality here.
  It looks like 40_custom is intended to be locally edited, so we make an
  exception and do not overwrite that one.
d/python-setuptools-74.1.2-x86_64-1.txz:  Upgraded.
kde/okteta-0.26.17-x86_64-1.txz:  Upgraded.
l/gobject-introspection-1.80.1-x86_64-2.txz:  Rebuilt.
  Fix running against python-setuptools-74.1.2:
  [PATCH] giscanner: remove dependency on distutils.msvccompiler.
l/python-importlib_metadata-8.5.0-x86_64-1.txz:  Upgraded.
n/curl-8.10.0-x86_64-1.txz:  Upgraded.
2024-09-11 20:35:16 +02:00

158 lines
4.8 KiB
Bash
Executable file

#!/bin/bash
# Copyright 2008, 2009, 2010, 2011, 2013, 2014, 2016, 2017, 2018, 2020, 2021 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=curl
VERSION=${VERSION:-$(echo curl-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
exit 0
fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
TMP=${TMP:-/tmp}
PKG=$TMP/package-curl
# Set this variable to "--without-ssl" to build a no-SSL version:
SSLOPT=${SSLOPT:-"--with-openssl"}
if [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
rm -rf $PKG
mkdir -p $PKG
cd $TMP
rm -rf curl-$VERSION
tar xvf $CWD/curl-$VERSION.tar.xz || exit 1
cd curl-$VERSION || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \+ -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--with-libssh2 \
--with-gssapi \
--enable-ares \
--enable-static=no \
--without-ca-bundle \
--with-ca-path=/etc/ssl/certs \
--with-nghttp2=/usr \
--with-nghttp3=/usr \
--with-openssl-quic \
$SSLOPT || exit 1
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
# Don't ship .la files:
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
# We have always installed the man3 documentation, so we'll keep doing it
# even though these are no longer installed by default. No || exit 1, if
# it works, it works, and if it doesn't, we tried.
( cd docs/libcurl
make install-man3 DESTDIR=$PKG
cd opts
make install-man3 DESTDIR=$PKG
)
# We don't ship the related perl script (yet):
rm -f $PKG/usr/man/man1/mk-ca-bundle.1
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
strip -g $PKG/usr/lib${LIBDIRSUFFIX}/libcurl.a
mkdir -p $PKG/usr/doc/curl-$VERSION
cp -a \
COPYING* README* UPGRADE \
$PKG/usr/doc/curl-$VERSION
( cd docs
cp -a \
BUGS CONTRIBUTE FAQ FEATURES INSTALL INTERNALS MANUAL README* RESOURCES THANKS TODO examples \
$PKG/usr/doc/curl-$VERSION )
# Get rid of .deps cruft:
rm -rf $PKG/usr/doc/curl-$VERSION/examples/.deps
# If there's a CHANGES file, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
if [ -r CHANGES ]; then
DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
cat CHANGES | head -n 1000 > $DOCSDIR/ChangeLog
touch -r CHANGES $DOCSDIR/ChangeLog
fi
# Compress and if needed symlink the man pages:
if [ -d $PKG/usr/man ]; then
( cd $PKG/usr/man
for manpagedir in $(find . -type d -name "man*") ; do
( cd $manpagedir
for eachpage in $( find . -type l -maxdepth 1) ; do
ln -s $( readlink $eachpage ).gz $eachpage.gz
rm $eachpage
done
gzip -9 *.?
)
done
)
fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $TMP/curl-$VERSION-$ARCH-$BUILD.txz