summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/glib2-static/PKGBUILD74
-rw-r--r--libre/glib2-static/disable-dynamic-tests.patch211
2 files changed, 234 insertions, 51 deletions
diff --git a/libre/glib2-static/PKGBUILD b/libre/glib2-static/PKGBUILD
index 4220009f2..f5a443408 100644
--- a/libre/glib2-static/PKGBUILD
+++ b/libre/glib2-static/PKGBUILD
@@ -3,29 +3,35 @@
# Contributor: Márcio Silva <coadde@hyperbola.info>
pkgname=glib2-static
-pkgver=2.56.1
-pkgrel=1.static1
+pkgver=2.58.3
+pkgrel=1
+pkgrel+=.static1
pkgdesc="Low level core library"
+pkgdesc+=" (static libraries)"
url="https://wiki.gnome.org/Projects/GLib"
license=(LGPL2.1)
arch=(x86_64)
arch+=(i686 armv7h)
depends=(pcre libffi libutil-linux zlib)
+depends+=("glib2=$pkgver")
_depends=(pcre-static libffi-static libutil-linux-static zlib)
-makedepends=(gettext gtk-doc shared-mime-info python libelf git util-linux dbus)
+makedepends=(gettext gtk-doc shared-mime-info python libelf git util-linux meson dbus)
makedepends+=("${_depends[@]}")
checkdepends=(desktop-file-utils)
optdepends=('python: gdbus-codegen, glib-genmarshal, glib-mkenums, gtester-report'
'libelf: gresource inspection tool')
options=(!emptydirs)
-_commit=d0364b443805dcb832c200fcf8bf58a64fdf3e7d # tags/2.56.1^0
+options+=(staticlibs)
+_commit=f2d1128ffae0de87680e411fb62ccfccafed6b1c # tags/2.58.3^0
source=("git+https://gitlab.gnome.org/GNOME/glib.git#commit=$_commit"
noisy-glib-compile-schemas.diff
glib-compile-schemas.hook gio-querymodules.hook)
+source+=(disable-dynamic-tests.patch)
sha256sums=('SKIP'
'81a4df0b638730cffb7fa263c04841f7ca6b9c9578ee5045db6f30ff0c3fc531'
'e1123a5d85d2445faac33f6dae1085fdd620d83279a4e130a83fe38db52b62b3'
- '5ba204a2686304b1454d401a39a9d27d09dd25e4529664e3fd565be3d439f8b6')
+ '5ba204a2686304b1454d401a39a9d27d09dd25e4529664e3fd565be3d439f8b6'
+ 'f4790fc845f2b4811ce5df5ef3a7dfcc23a1593ec4e19ae9173bb799a045d00f')
pkgver() {
cd glib
@@ -38,66 +44,32 @@ prepare() {
# Suppress noise from glib-compile-schemas.hook
patch -Np1 -i ../noisy-glib-compile-schemas.diff
- NOCONFIGURE=1 ./autogen.sh
+ # disable tests that fail on static builds
+ patch -Np1 -i ../disable-dynamic-tests.patch
}
build() {
- local debug=minimum
- check_option debug y && debug=yes
-
if [[ $CARCH = i686 ]]; then
# GTimer has trouble with x87 math, force SSE2 (which is implied
# on x86_64).
CFLAGS+=' -msse2 -mfpmath=sse'
fi
- cd glib
- ./configure \
- --prefix=/usr \
- --libdir=/usr/lib \
- --sysconfdir=/etc \
- --with-pcre=system \
- --enable-debug=$debug \
- --disable-gtk-doc \
- --disable-fam \
- --enable-static
- sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
- make
+ arch-meson glib build \
+ --default-library static \
+ -D selinux=false \
+ -D man=false \
+ -D gtk_doc=false
+ ninja -C build
}
check() {
- cd glib
- rm -rf "$srcdir/test-home"
- mkdir "$srcdir/test-home"
- HOME="$srcdir/test-home" make -j1 check
+ meson test -C build
}
package() {
- pkgdesc+=" (static libraries)"
- depends=("glib2=$pkgver")
- optdepends=()
- options=(staticlibs)
-
- cd glib
- make DESTDIR="$pkgdir" install
-
- rm -v -- "$pkgdir"/usr/lib/lib*.so*
- rm -vr -- \
- "$pkgdir"/usr/bin/ \
- "$pkgdir"/usr/include/ \
- "$pkgdir"/usr/lib/glib-*/ \
- "$pkgdir"/usr/lib/pkgconfig/ \
- "$pkgdir"/usr/share/
-}
-
-package_glib2-docs() {
- pkgdesc="Documentation for GLib"
- depends=()
- optdepends=()
- license+=(custom)
-
- mkdir -p "$pkgdir/usr/share"
- mv gtk-doc "$pkgdir/usr/share"
+ DESTDIR="$pkgdir" meson install -C build
- install -Dt "$pkgdir/usr/share/licenses/glib2-docs" -m644 glib/docs/reference/COPYING
+ # remove conflicting files
+ rm -rf "$pkgdir/usr/"{bin,include,share,lib/glib-2.0,lib/pkgconfig} $pkgdir/usr/lib/*.so*
}
diff --git a/libre/glib2-static/disable-dynamic-tests.patch b/libre/glib2-static/disable-dynamic-tests.patch
new file mode 100644
index 000000000..cde19b391
--- /dev/null
+++ b/libre/glib2-static/disable-dynamic-tests.patch
@@ -0,0 +1,211 @@
+diff --git a/gio/tests/giomodule.c b/gio/tests/giomodule.c
+index e832e95d37b6c19c9a7fce2adbc6eb47aced4256..893357110e0d74e94fd7f40b5f3172964b545daa 100644
+--- a/gio/tests/giomodule.c
++++ b/gio/tests/giomodule.c
+@@ -76,51 +76,57 @@ test_extension_point (void)
+ static void
+ test_module_scan_all (void)
+ {
+- if (g_test_subprocess ())
++ if (g_module_supported ())
+ {
+- GIOExtensionPoint *ep;
+- GIOExtension *ext;
+- GList *list;
+- ep = g_io_extension_point_register ("test-extension-point");
+- g_io_modules_scan_all_in_directory (g_test_get_filename (G_TEST_BUILT, "modules", NULL));
+- g_io_modules_scan_all_in_directory (g_test_get_filename (G_TEST_BUILT, "modules/.libs", NULL));
+- list = g_io_extension_point_get_extensions (ep);
+- g_assert_cmpint (g_list_length (list), ==, 2);
+- ext = list->data;
+- g_assert_cmpstr (g_io_extension_get_name (ext), ==, "test-b");
+- ext = list->next->data;
+- g_assert_cmpstr (g_io_extension_get_name (ext), ==, "test-a");
+- return;
++ if (g_test_subprocess ())
++ {
++ GIOExtensionPoint *ep;
++ GIOExtension *ext;
++ GList *list;
++ ep = g_io_extension_point_register ("test-extension-point");
++ g_io_modules_scan_all_in_directory (g_test_get_filename (G_TEST_BUILT, "modules", NULL));
++ g_io_modules_scan_all_in_directory (g_test_get_filename (G_TEST_BUILT, "modules/.libs", NULL));
++ list = g_io_extension_point_get_extensions (ep);
++ g_assert_cmpint (g_list_length (list), ==, 2);
++ ext = list->data;
++ g_assert_cmpstr (g_io_extension_get_name (ext), ==, "test-b");
++ ext = list->next->data;
++ g_assert_cmpstr (g_io_extension_get_name (ext), ==, "test-a");
++ return;
++ }
++ g_test_trap_subprocess (NULL, 0, 7);
++ g_test_trap_assert_passed ();
+ }
+- g_test_trap_subprocess (NULL, 0, 7);
+- g_test_trap_assert_passed ();
+ }
+
+ static void
+ test_module_scan_all_with_scope (void)
+ {
+- if (g_test_subprocess ())
++ if (g_module_supported ())
+ {
+- GIOExtensionPoint *ep;
+- GIOModuleScope *scope;
+- GIOExtension *ext;
+- GList *list;
++ if (g_test_subprocess ())
++ {
++ GIOExtensionPoint *ep;
++ GIOModuleScope *scope;
++ GIOExtension *ext;
++ GList *list;
+
+- ep = g_io_extension_point_register ("test-extension-point");
+- scope = g_io_module_scope_new (G_IO_MODULE_SCOPE_BLOCK_DUPLICATES);
+- g_io_module_scope_block (scope, "libtestmoduleb." G_MODULE_SUFFIX);
+- g_io_modules_scan_all_in_directory_with_scope (g_test_get_filename (G_TEST_BUILT, "modules", NULL), scope);
+- list = g_io_extension_point_get_extensions (ep);
+- g_io_modules_scan_all_in_directory_with_scope (g_test_get_filename (G_TEST_BUILT, "modules/.libs", NULL), scope);
+- list = g_io_extension_point_get_extensions (ep);
+- g_assert_cmpint (g_list_length (list), ==, 1);
+- ext = list->data;
+- g_assert_cmpstr (g_io_extension_get_name (ext), ==, "test-a");
+- g_io_module_scope_free (scope);
+- return;
++ ep = g_io_extension_point_register ("test-extension-point");
++ scope = g_io_module_scope_new (G_IO_MODULE_SCOPE_BLOCK_DUPLICATES);
++ g_io_module_scope_block (scope, "libtestmoduleb." G_MODULE_SUFFIX);
++ g_io_modules_scan_all_in_directory_with_scope (g_test_get_filename (G_TEST_BUILT, "modules", NULL), scope);
++ list = g_io_extension_point_get_extensions (ep);
++ g_io_modules_scan_all_in_directory_with_scope (g_test_get_filename (G_TEST_BUILT, "modules/.libs", NULL), scope);
++ list = g_io_extension_point_get_extensions (ep);
++ g_assert_cmpint (g_list_length (list), ==, 1);
++ ext = list->data;
++ g_assert_cmpstr (g_io_extension_get_name (ext), ==, "test-a");
++ g_io_module_scope_free (scope);
++ return;
++ }
++ g_test_trap_subprocess (NULL, 0, 7);
++ g_test_trap_assert_passed ();
+ }
+- g_test_trap_subprocess (NULL, 0, 7);
+- g_test_trap_assert_passed ();
+ }
+
+ int
+diff --git a/gmodule/meson.build b/gmodule/meson.build
+index e4a6a1c811c97ea32e27c79a766dd31205e7789b..77ffdc476a631eed8403a88b08006e6fb4b16494 100644
+--- a/gmodule/meson.build
++++ b/gmodule/meson.build
+@@ -8,7 +8,8 @@ libdl_dep = [ ]
+ g_module_lib_args = [ ]
+ g_module_impl = ''
+
+-dlopen_dlsym_test_code = '''
++if get_option('default_library') != 'static'
++ dlopen_dlsym_test_code = '''
+ #include <dlfcn.h>
+ int glib_underscore_test (void) { return 42; }
+ int main (int argc, char ** argv) {
+@@ -21,48 +22,49 @@ int main (int argc, char ** argv) {
+ return (!f2 || f1);
+ }'''
+
+-# On Windows force native WIN32 shared lib loader
+-if host_system == 'windows'
+- g_module_impl = 'G_MODULE_IMPL_WIN32'
+-# Force native AIX library loader
+-# dlopen() filepath must be of the form /path/libname.a(libname.so)
+-elif host_system == 'aix'
+- g_module_impl = 'G_MODULE_IMPL_AR'
+-elif cc.links(dlopen_dlsym_test_code, name : 'dlopen() and dlsym() in system libraries')
+- g_module_impl = 'G_MODULE_IMPL_DL'
+-# NSLinkModule (dyld) in system libraries (Darwin)
+-elif cc.has_function('NSLinkModule')
+- g_module_impl = 'G_MODULE_IMPL_DYLD'
+- g_module_need_uscore = 1
+-elif cc.links(dlopen_dlsym_test_code, args : '-ldl', name : 'dlopen() and dlsym() in libdl')
+- g_module_impl = 'G_MODULE_IMPL_DL'
+- libdl_dep = cc.find_library('dl')
+- g_module_lib_args = '-ldl'
+-endif
++ # On Windows force native WIN32 shared lib loader
++ if host_system == 'windows'
++ g_module_impl = 'G_MODULE_IMPL_WIN32'
++ # Force native AIX library loader
++ # dlopen() filepath must be of the form /path/libname.a(libname.so)
++ elif host_system == 'aix'
++ g_module_impl = 'G_MODULE_IMPL_AR'
++ elif cc.links(dlopen_dlsym_test_code, name : 'dlopen() and dlsym() in system libraries')
++ g_module_impl = 'G_MODULE_IMPL_DL'
++ # NSLinkModule (dyld) in system libraries (Darwin)
++ elif cc.has_function('NSLinkModule')
++ g_module_impl = 'G_MODULE_IMPL_DYLD'
++ g_module_need_uscore = 1
++ elif cc.links(dlopen_dlsym_test_code, args : '-ldl', name : 'dlopen() and dlsym() in libdl')
++ g_module_impl = 'G_MODULE_IMPL_DL'
++ libdl_dep = cc.find_library('dl')
++ g_module_lib_args = '-ldl'
++ endif
+
+-# additional checks for G_MODULE_IMPL_DL
+-if g_module_impl == 'G_MODULE_IMPL_DL'
+- # FIXME: check for OSF1/5.0 RTLD_GLOBAL brokenness (is this still relevant?)
++ # additional checks for G_MODULE_IMPL_DL
++ if g_module_impl == 'G_MODULE_IMPL_DL'
++ # FIXME: check for OSF1/5.0 RTLD_GLOBAL brokenness (is this still relevant?)
+
+- # Check whether we need preceding underscores
+- if cc.get_id() == 'msvc'
+- message('Building for MSVC: assuming that symbols are prefixed with underscore')
+- g_module_need_uscore = 1
+- elif meson.has_exe_wrapper()
+- # FIXME: communicate result via stdout instead of return value, so non-0 return is not printed in bold red
+- rres = cc.run(dlopen_dlsym_test_code,
+- args : g_module_lib_args,
+- name : 'dlsym() preceding underscores')
+- if host_system == 'windows' or rres.returncode() == 0
++ # Check whether we need preceding underscores
++ if cc.get_id() == 'msvc'
++ message('Building for MSVC: assuming that symbols are prefixed with underscore')
+ g_module_need_uscore = 1
++ elif meson.has_exe_wrapper()
++ # FIXME: communicate result via stdout instead of return value, so non-0 return is not printed in bold red
++ rres = cc.run(dlopen_dlsym_test_code,
++ args : g_module_lib_args,
++ name : 'dlsym() preceding underscores')
++ if host_system == 'windows' or rres.returncode() == 0
++ g_module_need_uscore = 1
++ endif
++ else
++ message('Cross-compiling: assuming that symbols aren\'t prefixed with underscore')
++ g_module_need_uscore = 0
+ endif
+- else
+- message('Cross-compiling: assuming that symbols aren\'t prefixed with underscore')
+- g_module_need_uscore = 0
+- endif
+
+- if cc.has_function('dlerror', args : g_module_lib_args)
+- g_module_have_dlerror = 1
++ if cc.has_function('dlerror', args : g_module_lib_args)
++ g_module_have_dlerror = 1
++ endif
+ endif
+ endif
+
+diff --git a/tests/module-test.c b/tests/module-test.c
+index fbf23169f730f3ecf2f24c1071f6ee1869fdc2fe..04a12128923258fe0ab0b37e618fe89b11cb0327 100644
+--- a/tests/module-test.c
++++ b/tests/module-test.c
+@@ -82,7 +82,7 @@ main (int argc,
+ g_test_init (&argc, &argv, NULL);
+
+ if (!g_module_supported ())
+- g_error ("dynamic modules not supported");
++ return 0;
+
+ plugin_a = g_test_build_filename (G_TEST_BUILT, "libmoduletestplugin_a", NULL);
+ plugin_b = g_test_build_filename (G_TEST_BUILT, "libmoduletestplugin_b", NULL);