Files
haikuports/sys-apps/util-linux/util_linux-2.34.recipe
Alexander von Gluck 404de5e9cb util_linux: Fix architecture specification
* Not specifying ?any will prevent the fdisk subpackage
  from building on non-x86
* No rev bump as this doesn't impact existing architecture
  packages
2025-05-29 13:23:22 -05:00

264 lines
6.9 KiB
Bash

SUMMARY="A random collection of Linux utilities"
DESCRIPTION="Various useful Linux utilities."
HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/"
COPYRIGHT="Various Authors"
LICENSE="GNU GPL v2
GNU LGPL v2
BSD (4-clause)
Public Domain"
REVISION="5"
SOURCE_URI="https://www.kernel.org/pub/linux/utils/util-linux/v$portVersion/util-linux-$portVersion.tar.xz"
CHECKSUM_SHA256="743f9d0c7252b6db246b659c1e1ce0bd45d8d4508b4dfa427bbb4a3e9b9f62b5"
SOURCE_DIR="util-linux-$portVersion"
PATCHES="util_linux-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
# On x86_gcc2 we don't want to install the commands in bin/<arch>/, but in bin/.
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
util_linuxLibs="libblkid libfdisk libsmartcols libuuid"
libblkidVersion="1.1.0"
libfdiskVersion="1.1.0"
libsmartcolsVersion="1.1.0"
libuuidVersion="1.3.0"
portVersionCompat="$portVersion compat >= 2"
for i in $util_linuxLibs; do
eval "${i}VersionCompat=\"\$${i}Version compat >= \${${i}Version%%.*}\""
done
PROVIDES="
util_linux$secondaryArchSuffix = $portVersionCompat
cmd:colrm$commandSuffix = $portVersion
cmd:column$commandSuffix = $portVersion
cmd:hexdump$commandSuffix = $portVersion
cmd:nologin$commandSuffix = $portVersion
cmd:rename$commandSuffix = $portVersion
cmd:ul$commandSuffix = $portVersion
lib:libsmartcols$secondaryArchSuffix = $libsmartcolsVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libncursesw$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
SUMMARY_libuuid="Util-linux implementation of libuuid"
PROVIDES_libuuid="
util_linux${secondaryArchSuffix}_libuuid = $portVersionCompat
cmd:uuidgen$commandSuffix = $portVersion
lib:libuuid$secondaryArchSuffix = $libuuidVersionCompat
"
REQUIRES_libuuid="
haiku$secondaryArchSuffix
"
SUMMARY_libblkid="A library to identify block devices"
PROVIDES_libblkid="
util_linux${secondaryArchSuffix}_libblkid = $portVersionCompat
lib:libblkid$secondaryArchSuffix = $libblkidVersionCompat
"
REQUIRES_libblkid="
haiku$secondaryArchSuffix
util_linux$secondaryArchSuffix == $portVersion base
"
SUMMARY_cal="A random collection of Linux utilities (cal)"
PROVIDES_cal="
util_linux${secondaryArchSuffix}_cal = $portVersionCompat
cmd:cal$commandSuffix = $portVersion
"
REQUIRES_cal="
haiku$secondaryArchSuffix
lib:libncursesw$secondaryArchSuffix
"
if [ -z "$commandSuffix" ]; then
CONFLICTS_cal="
cmd:cal
"
fi
SUMMARY_col="Filter out reverse line feeds"
PROVIDES_col="
util_linux${secondaryArchSuffix}_col
cmd:col$commandSuffix = $portVersion
"
SUMMARY_fdisk="A random collection of Linux utilities (fdisk)"
ARCHITECTURES_fdisk="?all !x86_gcc2"
SECONDARY_ARCHITECTURES_fdisk="?x86"
PROVIDES_fdisk="
util_linux${secondaryArchSuffix}_fdisk = $portVersionCompat
cmd:blkid$commandSuffix = $portVersion
cmd:fdisk$commandSuffix = $portVersionCompat
lib:libfdisk$secondaryArchSuffix = $libfdiskVersionCompat
"
REQUIRES_fdisk="
util_linux$secondaryArchSuffix == $portVersion base
haiku$secondaryArchSuffix
lib:libblkid$secondaryArchSuffix
lib:libncursesw$secondaryArchSuffix
lib:libuuid$secondaryArchSuffix
"
PROVIDES_devel="
util_linux${secondaryArchSuffix}_devel = $portVersionCompat
devel:libblkid$secondaryArchSuffix = $libblkidVersionCompat
devel:libfdisk$secondaryArchSuffix = $libfdiskVersionCompat
devel:libsmartcols$secondaryArchSuffix = $libsmartcolsVersionCompat
devel:libuuid$secondaryArchSuffix = $libuuidVersionCompat
"
REQUIRES_devel="
util_linux$secondaryArchSuffix == $portVersion base
util_linux${secondaryArchSuffix}_libblkid
util_linux${secondaryArchSuffix}_libuuid
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libncursesw$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoconf
cmd:autom4te
cmd:automake
cmd:autopoint
cmd:bison
cmd:gcc$secondaryArchSuffix
cmd:libtoolize$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
cmd:sed
"
defineDebugInfoPackage util_linux$secondaryArchSuffix \
"${commandBinDir/$portName/${portName}_col}"/col \
"$commandBinDir"/colrm \
"$commandBinDir"/column \
"${commandBinDir/$portName/${portName}_cal}"/cal \
"$commandBinDir"/hexdump \
"$commandBinDir"/nologin \
"$commandBinDir"/rename \
"$commandBinDir"/ul \
"$libDir"/libsmartcols.so.$libsmartcolsVersion \
BUILD()
{
CPPFLAGS="-D_BSD_SOURCE -DB_USE_POSITIVE_POSIX_ERRORS"
LDFLAGS="-Wl,--as-needed -lnetwork -lbsd -lposix_error_mapper"
CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" ./autogen.sh
# Skip some tests in configure to avoid crashes
config_opts="
scanf_cv_alloc_modifier=no
"
if [ "$effectiveTargetArchitecture" = x86_64 ]; then
config_opts+="
ax_cv_have_tls=no
"
fi
CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" \
runConfigure --omit-dirs "binDir sbinDir" ./configure $config_opts \
--bindir="$commandBinDir" --sbindir="$commandBinDir" \
--disable-all-programs \
--disable-nls \
--disable-libmount \
--disable-makedev \
--disable-static \
--enable-blkid \
--enable-cal \
--enable-col \
--enable-colrm \
--enable-column \
--enable-fdisk \
--enable-hexdump \
--enable-libfdisk \
--enable-libsmartcols \
--enable-libuuid \
--enable-nologin \
--enable-rename \
--enable-ul \
--enable-uuidgen \
--without-udev \
# --disable-all-programs kills several --enable-* switches, so enable them:
for i in \
BLKID \
COL COLRM COLUMN \
FDISK \
HEXDUMP \
LIBBLKID \
UUIDGEN \
; do
sed -i \
-e "/BUILD_${i}_TRUE/ s/\"#\"/\"\"/;" \
-e "/BUILD_${i}_FALSE/ s/\"\"/\"#\"/;" \
config.status
done
make
}
INSTALL()
{
make install
# Cleanup
rm -rf $prefix/sbin
rm -f "$libDir"/lib*.la
prepareInstalledDevelLibs $util_linuxLibs
fixPkgconfig
packageEntries cal \
"$commandBinDir"/cal \
"$dataDir"/bash-completion/completions/cal \
"$manDir"/man1/cal.1
packageEntries col \
"$commandBinDir"/col \
"$dataDir"/bash-completion/completions/col \
"$manDir"/man1/col.1
packageEntries libblkid \
$libDir/libblkid.so.*
# With the fdisk subpackage being marked as untested, haikuporter does not
# create the subdirectory for it in $packagingBaseDir when ALLOW_UNTESTED=no
# so we need to skip the call to "packageEntries fdisk ..." in that case.
if [ -d "$packagingBaseDir"/util_linux${secondaryArchSuffix}_fdisk ]; then
maybe_packageEntries_fdisk="packageEntries fdisk"
else
maybe_packageEntries_fdisk=rm
fi
$maybe_packageEntries_fdisk \
"$commandBinDir"/fdisk \
"$dataDir"/bash-completion/completions/fdisk \
"$manDir"/man8/fdisk.8 \
$libDir/libfdisk.so.* $commandBinDir/blkid
packageEntries libuuid $libDir/libuuid.so.* $commandBinDir/uuidgen
packageEntries devel \
"$developDir" \
"$manDir"/man3
}
TEST()
{
# Set TS_OPTS="" otherwise "--nonroot" is passed to tests/run.sh which
# then returns "Ignore util-linux test suite [non-root UID expected]."
LIBRARY_PATH="$sourceDir/.libs${LIBRARY_PATH:+:$LIBRARY_PATH}" \
make check TS_OPTS=
}