summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2020-09-01 22:21:37 +0200
committerErich Eckner <git@eckner.net>2020-09-01 22:21:37 +0200
commita41e0696a0dda58375fbc63744c8a9130e2b70ce (patch)
tree6d0ec04e7c85bca03a71b7854e34efdadcc815fc
parent315730df482a05d894f95d52dd8f7d178ca68b56 (diff)
downloadarchlinuxewe-a41e0696a0dda58375fbc63744c8a9130e2b70ce.tar.xz
glib2-static new
-rw-r--r--glib2-static/MR1405.patch24
-rw-r--r--glib2-static/MR1414.patch169
-rw-r--r--glib2-static/PKGBUILD50
3 files changed, 243 insertions, 0 deletions
diff --git a/glib2-static/MR1405.patch b/glib2-static/MR1405.patch
new file mode 100644
index 000000000..358f2f528
--- /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 000000000..67da4f01c
--- /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 000000000..188f54217
--- /dev/null
+++ b/glib2-static/PKGBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Erich Eckner <arch at eckner dot net>
+# Contributor: nightuser <nightuser.android@gmail.com>
+
+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}
+}