Files
haikuports/net-misc/curl/curl-8.18.0.recipe
2026-02-17 17:45:50 +01:00

172 lines
4.5 KiB
Bash

SUMMARY="A commandline-tool and library for downloading data from URLs"
DESCRIPTION="Curl is a command line tool for transferring data with URL \
syntax, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, \
LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.
curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form \
based upload, proxies, cookies, user+password authentication (Basic, Digest, \
NTLM, Negotiate, kerberos...), file transfer resume, proxy tunneling and a \
busload of other useful tricks."
HOMEPAGE="https://curl.haxx.se/"
COPYRIGHT="1996-2024 Daniel Stenberg"
LICENSE="Curl"
REVISION="1"
SOURCE_URI="https://github.com/curl/curl/releases/download/curl-${portVersion//\./_}/curl-$portVersion.tar.bz2"
CHECKSUM_SHA256="ffd671a3dad424fb68e113a5b9894c5d1b5e13a88c6bdf0d4af6645123b31faf"
ADDITIONAL_FILES="curl.rdef"
ARCHITECTURES="all"
SECONDARY_ARCHITECTURES="x86"
libVersion="4.8.0"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
portVersionCompat="$portVersion compat >= 7.16"
PROVIDES="
curl$secondaryArchSuffix = $portVersion
cmd:curl$secondaryArchSuffix = $portVersionCompat
cmd:wcurl$secondaryArchSuffix = $portVersionCompat
lib:libcurl$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
ca_root_certificates
lib:libnghttp2$secondaryArchSuffix
lib:libssh2$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
if [ "$effectiveTargetArchitecture" != x86_gcc2 ]; then
REQUIRES+="
lib:libpsl$secondaryArchSuffix
"
fi
PROVIDES_devel="
curl${secondaryArchSuffix}_devel = $portVersion
cmd:curl_config$secondaryArchSuffix = $portVersionCompat
devel:libcurl$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
curl$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libnghttp2$secondaryArchSuffix
devel:libssh2$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
if [ "$effectiveTargetArchitecture" != x86_gcc2 ]; then
BUILD_REQUIRES+="
devel:libpsl$secondaryArchSuffix
"
fi
BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoconf
cmd:automake
cmd:autoheader
cmd:cut
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:libtoolize$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
cmd:sed
"
TEST_REQUIRES="
cmd:id
cmd:perl
cmd:python3
cmd:sshd
"
defineDebugInfoPackage curl$secondaryArchSuffix \
$binDir/curl \
$libDir/libcurl.so.$libVersion
BUILD()
{
certsInstallDir="$portPackageLinksDir/ca_root_certificates"
certsDir="$certsInstallDir/$relativeDataRootDir/ssl"
if [ "$effectiveTargetArchitecture" = x86_gcc2 ]; then
configureArgs=--without-libpsl
else
configureArgs=
fi
autoreconf -vfi
autoconf
CPPFLAGS=-D_BSD_SOURCE runConfigure ./configure $configureArgs \
--enable-ipv6 --enable-manual \
--enable-websockets \
--with-openssl --with-openssl-quic --with-libssh2 \
--disable-static \
--with-ca-bundle="$certsDir/CARootCertificates.pem"
make $jobArgs
}
INSTALL()
{
make install
# remove libtool file
rm $libDir/libcurl.la
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
$portDir/additional-files/curl.rdef > curl.rdef
addResourcesToBinaries curl.rdef \
$binDir/curl
# prepare develop/lib
prepareInstalledDevelLib libcurl
fixPkgconfig
# fix curl-config
fixDevelopLibDirReferences $binDir/curl-config
sed -i \
-e "s,--libexecdir=$developLibDir,--libexecdir=$libExecDir,g" \
-e "s,--libdir=$developLibDir,--libdir=$libDir,g" \
$binDir/curl-config
# curl headers don't depend on the private libs
sed -i \
-e "s,Requires.private.*,," \
$developLibDir/pkgconfig/libcurl.pc
if [ -n "$secondaryArchSuffix" ]; then
maybe_manDir_man3=
else
maybe_manDir_man3=$manDir/man3
fi
# devel package
packageEntries devel \
$binDir/curl-config \
$dataDir/aclocal \
$developDir \
$maybe_manDir_man3
# Remove stuff we don't need in the secondary architecture base package.
if [ -n "$secondaryArchSuffix" ]; then
rm -rf $documentationDir
fi
}
TEST()
{
# TESTDONE: 1533 tests out of 1533 reported OK: 100% (8.13.0)
# TESTDONE: 1556 tests out of 1556 reported OK: 100% (this)
PATH="`finddir B_SYSTEM_LIB_DIRECTORY`/openssh:$PATH" \
USER="`id -n -u`" make TFLAGS="-v -a -p $jobArgs" test-nonflaky
}