Files
haikuports/dev-libs/glib/glib2-2.81.0.recipe
Schrijvers Luc a7759a8f2e glib2, bump to 2.81.0, bootstrap gobject-introspection (#12957)
* glib2, bump to 2.81.0, bootstrap gobject-introspection

* Update dev-libs/glib/patches/glib2-2.81.0.patchset

Co-authored-by: Máximo Castañeda <antiswen@yahoo.es>

---------

Co-authored-by: Máximo Castañeda <antiswen@yahoo.es>
2025-10-20 08:15:28 +02:00

313 lines
9.7 KiB
Bash

SUMMARY="GLib is a cross-platform software utility library"
DESCRIPTION="GLib is a cross-platform software utility library that began as \
part of the GTK+ project. However, before releasing version 2 of GTK+, the \
project's developers decided to separate non-GUI-specific code from the GTK+ \
platform, thus creating GLib as a separate product. GLib was released as a \
separate library so other developers, those who did not make use of the \
GUI-related portions of GTK+, could make use of the non-GUI portions of the \
library without the overhead of depending on the entire GUI library.
Since GLib is a cross-platform library, applications using it to interface \
with the operating system are usually portable across different operating \
systems without major changes."
HOMEPAGE="https://www.gtk.org/"
COPYRIGHT="1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
1991-2003 Free Software Foundation, Inc.
1997-2006 University of Cambridge.
1998-2001, 2003-2010 Red Hat, Inc.
2007-2009 Nokia Corporation
2008, 2010 Oracle and/or its affiliates, Inc. All rights
2008-2010 Codethink Limited
2008-2010 Collabora Ltd.
1995-2010 Several others"
LICENSE="GNU LGPL v2"
REVISION="1"
SOURCE_URI="https://gitlab.gnome.org/GNOME/glib/-/archive/$portVersion/glib-$portVersion.tar.gz"
CHECKSUM_SHA256="e9c311a25abb5717fb83f0f3a36daddc039e61fe37cea61cad4d0e455a6cdca0"
SOURCE_DIR="glib-$portVersion"
PATCHES="glib2-$portVersion.patchset"
srvGitRev2="0854af0fdb6d527a8d1999835ac2c5059976c210"
SOURCE_URI_2="https://gitlab.gnome.org/GNOME/gvdb/-/archive/0854af0fdb6d527a8d1999835ac2c5059976c210/gvdb-$srvGitRev2.tar.gz"
CHECKSUM_SHA256_2="08352e54e8216d9001820c627c62858585465b51dc557cc22f0f4770ed182ebd"
SOURCE_DIR_2="gvdb-$srvGitRev2"
giVer="1.81.2"
SOURCE_URI_3="http://ftp.gnome.org/pub/GNOME/sources/gobject-introspection/${giVer%.*}/gobject-introspection-$giVer.tar.xz"
CHECKSUM_SHA256_3="ec973bf5c2c2e69d14642df38e508c24ae91a254b6c38d2828022c71f2a144e0"
SOURCE_DIR_3="gobject-introspection-$giVer"
PATCHES_3="glib2-$portVersion-source3.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
libVersion="0.8100.0"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
libGiVersion="1.0.0"
libGiVersionCompat="$libGiVersion compat >= ${libGiVersion%%.*}"
pythonVersion=3.10
pythonPackage=python${pythonVersion//.}
pythonModuleDir="python$pythonVersion/vendor-packages"
PROVIDES="
glib2$secondaryArchSuffix = $portVersion
cmd:gapplication$commandSuffix
cmd:gdbus$commandSuffix
cmd:gi_compile_repository$commandSuffix
cmd:gi_decompile_typelib$commandSuffix
cmd:gi_inspect_typelib$commandSuffix
cmd:gio$commandSuffix
cmd:gio_querymodules$commandSuffix
cmd:glib_compile_resources$commandSuffix
cmd:glib_compile_schemas$commandSuffix
cmd:glib_gettextize$commandSuffix
cmd:gsettings$commandSuffix
lib:libgio_2.0$secondaryArchSuffix = $libVersionCompat
lib:libgirepository_1.0$secondaryArchSuffix = $libGiVersionCompat
lib:libgirepository_2.0$secondaryArchSuffix = $libVersionCompat
lib:libglib_2.0$secondaryArchSuffix = $libVersionCompat
lib:libgmodule_2.0$secondaryArchSuffix = $libVersionCompat
lib:libgobject_2.0$secondaryArchSuffix = $libVersionCompat
lib:libgthread_2.0$secondaryArchSuffix = $libVersionCompat
"
REPLACES="
gobject_introspection$secondaryArchSuffix
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libffi$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libpcre2_8$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
glib2${secondaryArchSuffix}_devel = $portVersion compat >= 0
cmd:gdbus_codegen$commandSuffix
cmd:glib_genmarshal$commandSuffix
cmd:glib_mkenums$commandSuffix
cmd:gobject_query$commandSuffix
cmd:gresource$commandSuffix
cmd:gtester$commandSuffix
cmd:gtester_report$commandSuffix
devel:libgio_2.0$secondaryArchSuffix = $libVersionCompat
devel:libgirepository_1.0$secondaryArchSuffix = $libGiVersionCompat
devel:libgirepository_2.0$secondaryArchSuffix = $libVersionCompat
devel:libglib_2.0$secondaryArchSuffix = $libVersionCompat
devel:libgmodule_2.0$secondaryArchSuffix = $libVersionCompat
devel:libgobject_2.0$secondaryArchSuffix = $libVersionCompat
devel:libgthread_2.0$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
glib2$secondaryArchSuffix == $portVersion base
glib2${secondaryArchSuffix}_gir_tools == $giVer
haiku$secondaryArchSuffix
cmd:perl
cmd:python$pythonVersion
devel:libffi$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
devel:libpcre2_8$secondaryArchSuffix
devel:libz$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
"
SUMMARY_gir_tools="The gobject-introspections tools and python module"
DESCRIPTION_gir_tools="GObject introspection is a middleware layer between C libraries \
(using GObject) and language bindings. The C library can be scanned at \
compile time and generate a metadata file, in addition to the actual native \
C library. Then at runtime, language bindings can read this metadata and \
automatically provide bindings to call into the C library."
PROVIDES_gir_tools="
glib2${secondaryArchSuffix}_gir_tools = $giVer
cmd:g_ir_annotation_tool$commandSuffix = $giVer
cmd:g_ir_compiler$commandSuffix = $giVer
cmd:g_ir_generate$commandSuffix = $giVer
cmd:g_ir_inspect$commandSuffix = $giVer
cmd:g_ir_scanner$commandSuffix = $giVer
"
REQUIRES_gir_tools="
glib2$secondaryArchSuffix == $portVersion base
haiku$secondaryArchSuffix
cmd:python$pythonVersion
lib:libffi$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libffi$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
devel:libpcre2_8$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
packaging_$pythonPackage
cmd:aclocal
cmd:autoconf
cmd:bison
cmd:flex
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:libtoolize$secondaryArchSuffix
cmd:meson
cmd:ninja
cmd:pkg_config$secondaryArchSuffix
cmd:python$pythonVersion
cmd:which
"
defineDebugInfoPackage glib2$secondaryArchSuffix \
$commandBinDir/gapplication \
$commandBinDir/gdbus \
$commandBinDir/gi-compile-repository \
$commandBinDir/gi-decompile-typelib \
$commandBinDir/gi-inspect-typelib \
$commandBinDir/gio \
$commandBinDir/gio-querymodules \
$commandBinDir/glib-compile-resources \
$commandBinDir/glib-compile-schemas \
$commandBinDir/gsettings \
$(getPackagePrefix devel)/bin/gobject-query \
$(getPackagePrefix devel)/bin/gresource \
$(getPackagePrefix devel)/bin/gtester \
$(getPackagePrefix gir_tools)/bin/g-ir-compiler \
$(getPackagePrefix gir_tools)/bin/g-ir-generate \
$(getPackagePrefix gir_tools)/bin/g-ir-inspect \
$libDir/libgio-2.0.so.$libVersion \
$libDir/libgirepository-1.0.so.$libGiVersion \
$libDir/libgirepository-2.0.so.$libVersion \
$libDir/libglib-2.0.so.$libVersion \
$libDir/libgmodule-2.0.so.$libVersion \
$libDir/libgobject-2.0.so.$libVersion \
$libDir/libgthread-2.0.so.$libVersion
PATCH()
{
cd $sourceDir3
sed -i -e "s|'gobject-introspection'|\'$pythonModuleDir\'|" \
tools/g-ir-tool-template.in
}
BUILD()
{
rm -rf subprojects/gvdb
ln -s $sourceDir2 subprojects/gvdb
export CFLAGS="-D_BSD_SOURCE"
export LDFLAGS="-lbsd -lgnu -lnetwork"
export PATH=$PATH:$commandBinDir
export LIBRARY_PATH=$LIBRARY_PATH:$libDir
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$libDir/pkgconfig
meson setup \
--buildtype=debugoptimized \
--prefix=$prefix \
--bindir=$commandBinDir \
--datadir=$dataDir \
--includedir=$includeDir \
--libdir=$libDir \
--localedir=$dataDir/locale \
-D tests=false \
-D glib_debug=disabled \
-D introspection=disabled \
build
meson compile -C build
meson install --no-rebuild -C build
cd $sourceDir3
meson setup \
--buildtype=debugoptimized \
--prefix=$prefix \
--bindir=$commandBinDir \
--datadir=$dataDir \
--includedir=$includeDir \
--libdir=$libDir \
-D python.bytecompile=1 \
-D python.install_env="prefix" \
-D python.platlibdir=$prefix/lib/$pythonModuleDir \
-D gir_dir_prefix=$dataDir \
build
meson compile -C build
meson install --no-rebuild -C build
cd $sourceDir
meson setup \
--reconfigure \
--buildtype=debugoptimized \
--prefix=$prefix \
--bindir=$commandBinDir \
--datadir=$dataDir \
--includedir=$includeDir \
--libdir=$libDir \
--localedir=$dataDir/locale \
-D gir_dir_prefix=$dataDir \
-D tests=false \
-D glib_debug=disabled \
-D introspection=enabled \
build
PATH="$prefix/bin:$PATH" LD_LIBRARY_PATH="$prefix/lib:$LD_LIBRARY_PATH" \
meson compile -C build
}
INSTALL()
{
meson install --no-rebuild -C build
# we are not linux
rm -f $libDir/gio-launch-desktop
prepareInstalledDevelLibs libgio-2.0 \
libgirepository-1.0 \
libgirepository-2.0 \
libglib-2.0 \
libgmodule-2.0 \
libgobject-2.0 \
libgthread-2.0
# move the glibconfig header into devel as well
mv $libDir/glib-2.0 $developLibDir
fixPkgconfig
# devel package
packageEntries devel \
$developDir \
$commandBinDir/gdbus-codegen \
$commandBinDir/glib-genmarshal \
$commandBinDir/glib-mkenums \
$commandBinDir/gobject-query \
$commandBinDir/gresource \
$commandBinDir/gtester \
$commandBinDir/gtester-report \
$dataDir/aclocal
# gir_tools package
packageEntries gir_tools \
$commandBinDir/g-ir-annotation-tool \
$commandBinDir/g-ir-compiler \
$commandBinDir/g-ir-generate \
$commandBinDir/g-ir-inspect \
$commandBinDir/g-ir-scanner \
$manDir \
$prefix/lib/python$pythonVersion
}
TEST()
{
# Ok: 316
# Fail: 31
# Skipped: 6
# Timeout: 2
meson test --no-rebuild -C build
}