From a41e0696a0dda58375fbc63744c8a9130e2b70ce Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Tue, 1 Sep 2020 22:21:37 +0200 Subject: glib2-static new --- glib2-static/MR1405.patch | 24 +++++++ glib2-static/MR1414.patch | 169 ++++++++++++++++++++++++++++++++++++++++++++++ glib2-static/PKGBUILD | 50 ++++++++++++++ 3 files changed, 243 insertions(+) create mode 100644 glib2-static/MR1405.patch create mode 100644 glib2-static/MR1414.patch create mode 100644 glib2-static/PKGBUILD (limited to 'glib2-static') diff --git a/glib2-static/MR1405.patch b/glib2-static/MR1405.patch new file mode 100644 index 00000000..358f2f52 --- /dev/null +++ b/glib2-static/MR1405.patch @@ -0,0 +1,24 @@ +diff --git a/glib/tests/meson.build b/glib/tests/meson.build +index 3dedafcdb77e7ee484d600ee0d7c3aa66c85476e..8da477d1910aed30f3aae4c6081c3d458aa452d4 100644 +--- a/glib/tests/meson.build ++++ b/glib/tests/meson.build +@@ -47,7 +47,10 @@ glib_tests = { + 'markup-collect' : {}, + 'markup-escape' : {}, + 'markup-subparser' : {}, +- 'mem-overflow' : {}, ++ 'mem-overflow' : { ++ 'link_args' : cc.get_id() == 'gcc' and cc.version().version_compare('> 6') ++ ? ['-Wno-alloc-size-larger-than'] : [], ++ }, + 'mutex' : {}, + 'node' : {}, + 'once' : {}, +@@ -220,6 +223,7 @@ foreach test_name, extra_args : glib_tests + + exe = executable(test_name, source, + c_args : test_cargs + extra_args.get('c_args', []), ++ link_args : extra_args.get('link_args', []), + dependencies : test_deps + extra_args.get('dependencies', []), + install_dir: installed_tests_execdir, + install: install, diff --git a/glib2-static/MR1414.patch b/glib2-static/MR1414.patch new file mode 100644 index 00000000..67da4f01 --- /dev/null +++ b/glib2-static/MR1414.patch @@ -0,0 +1,169 @@ +diff --git a/glib/tests/search-utils.c b/glib/tests/search-utils.c +index 54926d5a59aaff1719059cfd38c8c3b2c3fac4de..7478a290a9e393170042ea8a91c9531fd0c197b6 100644 +--- a/glib/tests/search-utils.c ++++ b/glib/tests/search-utils.c +@@ -7,74 +7,120 @@ typedef struct + { + const gchar *string; + const gchar *prefix; ++ const gchar *locale; + gboolean should_match; + } SearchTest; + ++/* Test word separators and case */ ++SearchTest basic[] = { ++ { "Hello World", "he", "C", TRUE }, ++ { "Hello World", "wo", "C", TRUE }, ++ { "Hello World", "lo", "C", FALSE }, ++ { "Hello World", "ld", "C", FALSE }, ++ { "Hello-World", "wo", "C", TRUE }, ++ { "HelloWorld", "wo", "C", FALSE }, ++ { NULL, NULL, NULL, FALSE } ++}; ++ ++/* Test composed chars (accentued letters) */ ++SearchTest composed[] = { ++ { "Jörgen", "jor", "sv_SE.UTF-8", TRUE }, ++ { "Gaëtan", "gaetan", "fr_FR.UTF-8", TRUE }, ++ { "élève", "ele", "fr_FR.UTF-8", TRUE }, ++ { "Azais", "AzaÏs", "fr_FR.UTF-8", FALSE }, ++ { "AzaÏs", "Azais", "fr_FR.UTF-8", TRUE }, ++ { NULL, NULL, NULL, FALSE } ++}; ++ ++/* Test decomposed chars, they looks the same, but are actually ++ * composed of multiple unicodes */ ++SearchTest decomposed[] = { ++ { "Jorgen", "Jör", "sv_SE.UTF-8", FALSE }, ++ { "Jörgen", "jor", "sv_SE.UTF-8", TRUE }, ++ { NULL, NULL, NULL, FALSE } ++}; ++ ++/* Turkish special case */ ++SearchTest turkish[] = { ++ { "İstanbul", "ist", "tr_TR.UTF-8", TRUE }, ++ { "Diyarbakır", "diyarbakir", "tr_TR.UTF-8", TRUE }, ++ { NULL, NULL, NULL, FALSE } ++}; ++ ++/* Test unicode chars when no locale is available */ ++SearchTest c_locale_unicode[] = { ++ { "Jörgen", "jor", "C", TRUE }, ++ { "Jorgen", "Jör", "C", FALSE }, ++ { "Jörgen", "jor", "C", TRUE }, ++ { NULL, NULL, NULL, FALSE } ++}; ++ ++/* Multi words */ ++SearchTest multi_words[] = { ++ { "Xavier Claessens", "Xav Cla", "C", TRUE }, ++ { "Xavier Claessens", "Cla Xav", "C", TRUE }, ++ { "Foo Bar Baz", " b ", "C", TRUE }, ++ { "Foo Bar Baz", "bar bazz", "C", FALSE }, ++ { NULL, NULL, NULL, FALSE } ++}; ++ + static void +-test_search (void) ++test_search (gconstpointer d) + { +- SearchTest tests[] = +- { +- /* Test word separators and case */ +- { "Hello World", "he", TRUE }, +- { "Hello World", "wo", TRUE }, +- { "Hello World", "lo", FALSE }, +- { "Hello World", "ld", FALSE }, +- { "Hello-World", "wo", TRUE }, +- { "HelloWorld", "wo", FALSE }, +- +- /* Test composed chars (accentued letters) */ +- { "Jörgen", "jor", TRUE }, +- { "Gaëtan", "gaetan", TRUE }, +- { "élève", "ele", TRUE }, +- { "Azais", "AzaÏs", FALSE }, +- { "AzaÏs", "Azais", TRUE }, +- +- /* Test decomposed chars, they looks the same, but are actually +- * composed of multiple unicodes */ +- { "Jorgen", "Jör", FALSE }, +- { "Jörgen", "jor", TRUE }, +- +- /* Turkish special case */ +- { "İstanbul", "ist", TRUE }, +- { "Diyarbakır", "diyarbakir", TRUE }, +- +- /* Multi words */ +- { "Xavier Claessens", "Xav Cla", TRUE }, +- { "Xavier Claessens", "Cla Xav", TRUE }, +- { "Foo Bar Baz", " b ", TRUE }, +- { "Foo Bar Baz", "bar bazz", FALSE }, +- +- { NULL, NULL, FALSE } +- }; ++ const SearchTest *tests = d; + guint i; +- +- setlocale(LC_ALL, ""); ++ gboolean all_skipped = TRUE; + + g_debug ("Started"); +- for (i = 0; tests[i].string != NULL; i ++) ++ ++ for (i = 0; tests[i].string != NULL; i++) + { + gboolean match; + gboolean ok; +- +- match = g_str_match_string (tests[i].prefix, tests[i].string, TRUE); +- ok = (match == tests[i].should_match); ++ gboolean skipped; ++ ++ if (setlocale (LC_ALL, tests[i].locale)) ++ { ++ skipped = FALSE; ++ all_skipped = FALSE; ++ match = g_str_match_string (tests[i].prefix, tests[i].string, TRUE); ++ ok = (match == tests[i].should_match); ++ } ++ else ++ { ++ skipped = TRUE; ++ g_test_message ("Locale '%s' is unavailable", tests[i].locale); ++ } + + g_debug ("'%s' - '%s' %s: %s", tests[i].prefix, tests[i].string, + tests[i].should_match ? "should match" : "should NOT match", +- ok ? "OK" : "FAILED"); ++ skipped ? "SKIPPED" : ok ? "OK" : "FAILED"); + +- g_assert (ok); ++ g_assert (skipped || ok); + } ++ ++ if (all_skipped) ++ g_test_skip ("No locales for the test set are available"); + } + + int + main (int argc, + char **argv) + { ++ gchar *user_locale; ++ + g_test_init (&argc, &argv, NULL); + +- g_test_add_func ("/search", test_search); ++ setlocale (LC_ALL, ""); ++ user_locale = setlocale (LC_ALL, NULL); ++ g_debug ("Current user locale: %s", user_locale); ++ ++ g_test_add_data_func ("/search/basic", basic, test_search); ++ g_test_add_data_func ("/search/composed", composed, test_search); ++ g_test_add_data_func ("/search/decomposed", decomposed, test_search); ++ g_test_add_data_func ("/search/turkish", turkish, test_search); ++ g_test_add_data_func ("/search/c_locale_unicode", c_locale_unicode, test_search); ++ g_test_add_data_func ("/search/multi_words", multi_words, test_search); + + return g_test_run (); + } diff --git a/glib2-static/PKGBUILD b/glib2-static/PKGBUILD new file mode 100644 index 00000000..188f5421 --- /dev/null +++ b/glib2-static/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Erich Eckner +# Contributor: nightuser + +pkgname=glib2-static +pkgver=2.64.5 +pkgrel=1 +pkgdesc="Low level core library: Static library" +url="https://wiki.gnome.org/Projects/GLib" +license=(LGPL2.1) +arch=(x86_64) +depends=() +makedepends=(gettext zlib libffi shared-mime-info python libelf git util-linux meson dbus) +checkdepends=(desktop-file-utils) +options=('!docs' '!libtool' '!emptydirs' '!strip' 'staticlibs') +source=("http://ftp.gnome.org/pub/gnome/sources/glib/${pkgver%.*}/glib-$pkgver.tar.xz" + 'MR1405.patch' + 'MR1414.patch') +sha256sums=('9cbd5bd2715ead1c28d53c46f7b7b6ff6166f5887b772c1a9e3bf2910cfecc11' + '934d87deaf597d7122f89d03c22b122a89eacbe46e887ce8e920a344926da2fb' + '19cd43aa20962e2e27c55553b871ab1bb970289219545447887cc5e654245fed') + +prepare() { + cd "glib-$pkgver" + + patch -Np1 -i "$srcdir/MR1405.patch" + patch -Np1 -i "$srcdir/MR1414.patch" +} + +build() { + CFLAGS+=' -Wno-unused-result' + arch-meson "glib-$pkgver" _build \ + --default-library static \ + --buildtype release \ + -Dselinux=disabled \ + -Dman=false \ + -Dgtk_doc=false \ + -Dinternal_pcre=false + ninja -C _build +} + +check() { + meson test -C _build --no-suite flaky --timeout-multiplier 2 --print-errorlogs +} + +package() { + DESTDIR="$pkgdir" meson install -C _build + + # Only install static library + rm -rf "$pkgdir"/usr/{bin,include,share,lib/glib-2.0,lib/pkgconfig} +} -- cgit v1.2.3-54-g00ecf