diff options
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | 0001-docs-Fix-building-with-meson.patch | 85 | ||||
-rw-r--r-- | 0001-meson-Fix-permissions-of-installed-scripts.patch | 50 | ||||
-rw-r--r-- | PKGBUILD | 70 | ||||
-rw-r--r-- | libs.diff | 128 | ||||
-rw-r--r-- | noisy-glib-compile-schemas.diff | 24 | ||||
-rw-r--r-- | skip-broken-timer-test.patch | 12 |
7 files changed, 338 insertions, 51 deletions
@@ -1,9 +1,9 @@ # Generated by mksrcinfo v8 -# Tue Aug 1 17:10:00 UTC 2017 +# Mon Oct 16 15:44:57 UTC 2017 pkgbase = glib2-patched-thumbnailer pkgdesc = GLib2 patched with ahodesuka's thumbnailer patch. - pkgver = 2.52.3 - pkgrel = 1 + pkgver = 2.54.1 + pkgrel = 2 url = http://gist.github.com/ahodesuka/49c1d0eea4b64f24c4c7 arch = i686 arch = x86_64 @@ -20,19 +20,25 @@ pkgbase = glib2-patched-thumbnailer makedepends = libelf makedepends = git makedepends = util-linux - provides = glib2=2.52.3 + provides = glib2=2.54.1 conflicts = glib2 options = !docs options = !emptydirs - source = git://git.gnome.org/glib#commit=90bb8778f2eabf00bee5bff1259c48f1e7b791b8 + source = git://git.gnome.org/glib#commit=5fc5a3eaa6fc2ab23a3585cf22799adae642afa7 + source = 0001-docs-Fix-building-with-meson.patch + source = 0001-meson-Fix-permissions-of-installed-scripts.patch + source = libs.diff + source = noisy-glib-compile-schemas.diff source = glib-compile-schemas.hook source = gio-querymodules.hook - source = skip-broken-timer-test.patch source = https://gist.githubusercontent.com/ahodesuka/49c1d0eea4b64f24c4c7/raw/d0edf118e1c27700300038c1d82b3ff775c0216b/glib-thumbnailer.patch sha256sums = SKIP + sha256sums = 8b289f3e1a5a3b29d310d45610468199acfe6f2b38a0d1be38c9224437a0e40c + sha256sums = 12b1a2f4e304e4c03e48ae9564d73ae38619bbb7711a013138939ff8e5cc2327 + sha256sums = 54c43d5d4d4b5fa591eb639e63050ce5eac30aff6691fa9cf56631782b2aad33 + sha256sums = 81a4df0b638730cffb7fa263c04841f7ca6b9c9578ee5045db6f30ff0c3fc531 sha256sums = e1123a5d85d2445faac33f6dae1085fdd620d83279a4e130a83fe38db52b62b3 sha256sums = 5ba204a2686304b1454d401a39a9d27d09dd25e4529664e3fd565be3d439f8b6 - sha256sums = a39dc8c1c1707053d565d5b198b1f03f7c55b31e11335a1bfdc3f9803b114d5d sha256sums = 1a4673380fbdf8e8e5de3367089de6c97025633e54010575de63c5ab6c8a044d pkgname = glib2-patched-thumbnailer diff --git a/0001-docs-Fix-building-with-meson.patch b/0001-docs-Fix-building-with-meson.patch new file mode 100644 index 000000000000..02f69b70068f --- /dev/null +++ b/0001-docs-Fix-building-with-meson.patch @@ -0,0 +1,85 @@ +From a7cbd565aad04f92cbd9ac36696a9d033ae6bcc0 Mon Sep 17 00:00:00 2001 +From: Armin K <krejzi@email.com> +Date: Fri, 25 Aug 2017 13:36:23 +0200 +Subject: [PATCH] docs: Fix building with meson + +This fixes {gio,gobject}-doc ninja targets as well as +install process when gtk-doc is enabled +--- + docs/reference/gio/meson.build | 15 ++++++++++++++- + docs/reference/gobject/meson.build | 13 ++++++++++++- + 2 files changed, 26 insertions(+), 2 deletions(-) + +diff --git a/docs/reference/gio/meson.build b/docs/reference/gio/meson.build +index 7f0467726..8f8dc7ce5 100644 +--- a/docs/reference/gio/meson.build ++++ b/docs/reference/gio/meson.build +@@ -52,9 +52,12 @@ if get_option('with-docs') != 'no' + 'gnetworkmonitorbase.h', + 'gnetworkmonitornetlink.h', + 'gnetworkmonitornm.h', ++ 'gnetworkmonitorportal.h', + 'gnotificationbackend.h', + 'gnotification-private.h', ++ 'gosxappinfo.h', + 'gpollfilemonitor.h', ++ 'gproxyresolverportal.h', + 'gregistrysettingsbackend.h', + 'gresourcefile.h', + 'gsettingsbackendinternal.h', +@@ -95,12 +98,22 @@ if get_option('with-docs') != 'no' + configuration: version_conf + ) + ++ # Meson uses paths relative to meson.source_root() in dependencies, ++ # which is invalid relative to current_source_dir(), so the compile ++ # process fails to find glib headers ++ top_build_dir = meson.build_root() ++ top_source_dir = meson.source_root() ++ glib_top_build_dir = join_paths(top_build_dir, 'glib') ++ glib_top_source_dir = join_paths(top_source_dir, 'glib') ++ ++ scan_dep = declare_dependency(include_directories : [ top_source_dir, glib_top_build_dir, glib_top_source_dir ]) ++ + gnome.gtkdoc('gio', + main_xml : 'gio-docs.xml', + namespace : 'g', + gobject_typesfile : 'gio.types', + mode : 'none', +- dependencies : [libgio_dep, libgobject_dep, libglib_dep], ++ dependencies : [libgio_dep, libgobject_dep, libglib_dep, scan_dep], + src_dir : 'gio', + scan_args : [ + '--rebuild-types', +diff --git a/docs/reference/gobject/meson.build b/docs/reference/gobject/meson.build +index 1025e174f..9ec1f9123 100644 +--- a/docs/reference/gobject/meson.build ++++ b/docs/reference/gobject/meson.build +@@ -17,12 +17,23 @@ if get_option('with-docs') != 'no' + configuration: version_conf + ) + ++ # Meson uses paths relative to meson.source_root() in dependencies, ++ # which is invalid relative to current_source_dir(), so the compile ++ # process fails to find glib headers ++ doc_source_dir = meson.current_source_dir() ++ top_build_dir = meson.build_root() ++ top_source_dir = meson.source_root() ++ glib_top_build_dir = join_paths(top_build_dir, 'glib') ++ glib_top_source_dir = join_paths(top_source_dir, 'glib') ++ ++ scan_dep = declare_dependency(include_directories : [ doc_source_dir, top_source_dir, glib_top_build_dir, glib_top_source_dir ]) ++ + gnome.gtkdoc('gobject', + main_xml : 'gobject-docs.xml', + namespace : 'g', + gobject_typesfile : join_paths(meson.current_source_dir(), 'gobject.types'), + mode : 'none', +- dependencies : [libgobject_dep, libglib_dep], ++ dependencies : [libgobject_dep, libglib_dep, scan_dep], + src_dir : 'gobject', + scan_args : [ + '--deprecated-guards=G_DISABLE_DEPRECATED', +-- +2.14.1 + diff --git a/0001-meson-Fix-permissions-of-installed-scripts.patch b/0001-meson-Fix-permissions-of-installed-scripts.patch new file mode 100644 index 000000000000..d89868acf307 --- /dev/null +++ b/0001-meson-Fix-permissions-of-installed-scripts.patch @@ -0,0 +1,50 @@ +From e36f79439be76f125b67081eb4605b377d738cca Mon Sep 17 00:00:00 2001 +Message-Id: <e36f79439be76f125b67081eb4605b377d738cca.1505389490.git.jan.steffens@gmail.com> +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Thu, 14 Sep 2017 07:36:37 +0200 +Subject: [PATCH] meson: Fix permissions of installed scripts + +configure_file preserves the attributes, so the templates need to be +executable for the (installed) outputs to be executable. +--- + gio/gdbus-2.0/codegen/gdbus-codegen.in | 0 + gio/gdbus-2.0/codegen/meson.build | 1 - + glib-gettextize.in | 0 + gobject/meson.build | 1 - + 4 files changed, 2 deletions(-) + mode change 100644 => 100755 gio/gdbus-2.0/codegen/gdbus-codegen.in + mode change 100644 => 100755 glib-gettextize.in + +diff --git a/gio/gdbus-2.0/codegen/gdbus-codegen.in b/gio/gdbus-2.0/codegen/gdbus-codegen.in +old mode 100644 +new mode 100755 +diff --git a/gio/gdbus-2.0/codegen/meson.build b/gio/gdbus-2.0/codegen/meson.build +index 0e9ffbdfade70779..93d9106adba17a89 100644 +--- a/gio/gdbus-2.0/codegen/meson.build ++++ b/gio/gdbus-2.0/codegen/meson.build +@@ -13,7 +13,6 @@ gdbus_codegen_conf.set('VERSION', glib_version) + gdbus_codegen_conf.set('PYTHON', python.path()) + + # Install gdbus-codegen executable +-# FIXME: Set permissions + gdbus_codegen = configure_file(input : 'gdbus-codegen.in', + output : 'gdbus-codegen', + install : true, +diff --git a/glib-gettextize.in b/glib-gettextize.in +old mode 100644 +new mode 100755 +diff --git a/gobject/meson.build b/gobject/meson.build +index 0d39f2bbc36f816e..01f37a33a623f4b8 100644 +--- a/gobject/meson.build ++++ b/gobject/meson.build +@@ -76,7 +76,6 @@ python_tools_conf.set('VERSION', glib_version) + python_tools_conf.set('PYTHON', python.path()) + + foreach tool: python_tools +- # FIXME: Ensure we set the appropriate permissions + tool_bin = configure_file( + input : tool + '.in', + output : tool, +-- +2.14.1 + @@ -1,10 +1,10 @@ -# Maintainer: dudemanguy <random342@openmailbox.org> +# Maintainer: dudemanguy <random342@airmail.cc> # Contributor: Vaporeon <vaporeon@vaporeon.io> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=glib2-patched-thumbnailer -pkgver=2.52.3 -pkgrel=1 +pkgver=2.54.1 +pkgrel=2 pkgdesc="GLib2 patched with ahodesuka's thumbnailer patch." url="http://gist.github.com/ahodesuka/49c1d0eea4b64f24c4c7" arch=(i686 x86_64) @@ -14,17 +14,23 @@ makedepends=('gettext' 'gtk-doc' 'libffi' 'pcre' 'zlib' 'shared-mime-info' 'pyth checkdepends=(desktop-file-utils dbus) options=('!docs' '!emptydirs') license=(LGPL) -_commit=90bb8778f2eabf00bee5bff1259c48f1e7b791b8 # tags/2.52.3^0 +_commit=5fc5a3eaa6fc2ab23a3585cf22799adae642afa7 # tags/2.54.1^0 _patchver=d0edf118e1c27700300038c1d82b3ff775c0216b source=("git://git.gnome.org/glib#commit=$_commit" + 0001-docs-Fix-building-with-meson.patch + 0001-meson-Fix-permissions-of-installed-scripts.patch + libs.diff + noisy-glib-compile-schemas.diff glib-compile-schemas.hook gio-querymodules.hook - skip-broken-timer-test.patch https://gist.githubusercontent.com/ahodesuka/49c1d0eea4b64f24c4c7/raw/$_patchver/glib-thumbnailer.patch) sha256sums=('SKIP' + '8b289f3e1a5a3b29d310d45610468199acfe6f2b38a0d1be38c9224437a0e40c' + '12b1a2f4e304e4c03e48ae9564d73ae38619bbb7711a013138939ff8e5cc2327' + '54c43d5d4d4b5fa591eb639e63050ce5eac30aff6691fa9cf56631782b2aad33' + '81a4df0b638730cffb7fa263c04841f7ca6b9c9578ee5045db6f30ff0c3fc531' 'e1123a5d85d2445faac33f6dae1085fdd620d83279a4e130a83fe38db52b62b3' '5ba204a2686304b1454d401a39a9d27d09dd25e4529664e3fd565be3d439f8b6' - 'a39dc8c1c1707053d565d5b198b1f03f7c55b31e11335a1bfdc3f9803b114d5d' '1a4673380fbdf8e8e5de3367089de6c97025633e54010575de63c5ab6c8a044d') pkgver() { @@ -33,44 +39,44 @@ pkgver() { } prepare() { + mkdir -p build glib2-docs/usr/share cd glib - git revert -n 6560b37450cd # Noisy glib-compile-schemas - # Rounding error in timer tests? - # GLib:ERROR:timer.c:38:test_timer_basic: assertion failed (micros == ((guint64)(elapsed * 1e6)) % 1000000): (1 == 0) - [[ $CARCH == i686 ]] && patch -Np1 -i ../skip-broken-timer-test.patch + # https://bugzilla.gnome.org/show_bug.cgi?id=786796 + patch -Np1 -i ../0001-docs-Fix-building-with-meson.patch + # https://bugzilla.gnome.org/show_bug.cgi?id=787671 + patch -Np1 -i ../0001-meson-Fix-permissions-of-installed-scripts.patch + + # Unbreak .pc files when built with meson + # Fix gdb scripts install + patch -Np1 -i ../libs.diff + + # Suppress noise from glib-compile-schemas.hook + patch -Np1 -i ../noisy-glib-compile-schemas.diff + + # Apply patch to generate thumbnails patch -Np1 -i ../glib-thumbnailer.patch - NOCONFIGURE=1 ./autogen.sh } build() { - cd glib - ./configure --prefix=/usr --libdir=/usr/lib \ - --sysconfdir=/etc \ - --with-pcre=system \ - --disable-fam \ - --enable-gtk-doc \ - $(check_option debug y && echo --enable-debug=yes) - sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool - make + cd build + arch-meson ../glib + ninja } -#seems to get stuck after live-g-file 2 /live-g-file/create_structure for some reason; skip this -#check() { -# cd glib -# make check -#} +# skip this; test fails +# check() { +# cd build +# meson test -t 2 +# } package() { - - cd glib - make DESTDIR="$pkgdir" install - rm -r "$pkgdir/usr/share/gtk-doc" + cd build + DESTDIR="$pkgdir" ninja install + mv "$pkgdir/usr/share/gtk-doc" "$srcdir/glib2-docs/usr/share" # install hooks - install -d "$pkgdir/usr/share/libalpm/hooks/" - install -m644 "$srcdir"/{glib-compile-schemas,gio-querymodules}.hook \ - "$pkgdir/usr/share/libalpm/hooks/" + install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 ../*.hook } diff --git a/libs.diff b/libs.diff new file mode 100644 index 000000000000..9f9eb799fe90 --- /dev/null +++ b/libs.diff @@ -0,0 +1,128 @@ +diff --git i/gio/meson.build w/gio/meson.build +index 32526362666b5e80..d7030aa29a6f17eb 100644 +--- i/gio/meson.build ++++ w/gio/meson.build +@@ -727,7 +727,7 @@ libgio = shared_library('gio-2.0', + libgobject_dep, libgmodule_dep] + platform_deps + network_libs, + c_args : gio_c_args, + # intl.lib is not compatible with SAFESEH +- link_args : noseh_link_args, ++ link_args : noseh_link_args + library_link_args, + ) + + libgio_dep = declare_dependency(link_with : libgio, +diff --git i/glib/meson.build w/glib/meson.build +index 1da0bcd3cc601b9e..4286218c9c8361b2 100644 +--- i/glib/meson.build ++++ w/glib/meson.build +@@ -227,7 +227,7 @@ libglib = shared_library('glib-2.0', + soversion : soversion, + install : true, + # intl.lib is not compatible with SAFESEH +- link_args : noseh_link_args, ++ link_args : noseh_link_args + library_link_args, + include_directories : configinc, + link_with : [charset_lib, gnulib_lib], + dependencies : [pcre, thread_dep, libintl, librt] + libiconv + platform_deps, +@@ -284,7 +284,7 @@ configure_file( + output: 'libglib-2.0.so.@0@-gdb.py'.format(library_version), + configuration: gdb_conf, + install: true, +- install_dir: join_paths(get_option('datadir'), 'gdb/auto-load' + get_option('libdir')) ++ install_dir: join_paths(get_option('datadir'), 'gdb/auto-load' + glib_libdir) + ) + + if enable_systemtap +diff --git i/gmodule/meson.build w/gmodule/meson.build +index 191bca2446f9977e..fd0219d9225f2f3f 100644 +--- i/gmodule/meson.build ++++ w/gmodule/meson.build +@@ -37,7 +37,7 @@ elif cc.has_function('NSLinkModule') + 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' ++ g_module_lib_args = ['-ldl'] + endif + + # additional checks for G_MODULE_IMPL_DL +@@ -72,25 +72,29 @@ if g_module_impl == '' + message('WARNING: No suitable GModule implementation found!') + endif + ++# For pc files ++glib_conf.set('G_MODULE_SUPPORTED', g_module_impl == '0' ? 'false' : 'true') ++glib_conf.set('G_MODULE_LIBS', ' '.join(g_module_lib_args)) ++ + gmoduleconf_conf.set('G_MODULE_IMPL', g_module_impl) +-gmoduleconf_conf.set('G_MODULE_SUPPORTED', g_module_impl != '0') + gmoduleconf_conf.set('G_MODULE_HAVE_DLERROR', g_module_have_dlerror) + gmoduleconf_conf.set('G_MODULE_NEED_USCORE', g_module_need_uscore) + gmoduleconf_conf.set('G_MODULE_BROKEN_RTLD_GLOBAL', g_module_broken_rtld_global) + + gmoduleconf_h = configure_file(input : 'gmoduleconf.h.in', + output : 'gmoduleconf.h', + configuration : gmoduleconf_conf) + + install_headers(['gmodule.h'], subdir : 'glib-2.0') + + libgmodule = shared_library('gmodule-2.0', + sources : ['gmodule.c'], + version : library_version, + soversion : soversion, + install : true, + include_directories : [configinc, gmoduleinc], + dependencies : [libdl_dep, libglib_dep], ++ link_args : library_link_args, + c_args : ['-DG_LOG_DOMAIN="GModule"', '-DG_DISABLE_DEPRECATED'] + glib_hidden_visibility_args) + + libgmodule_dep = declare_dependency(link_with : libgmodule, +diff --git i/gobject/meson.build w/gobject/meson.build +index aecca57c743d5956..e033ae15f9c226b5 100644 +--- i/gobject/meson.build ++++ w/gobject/meson.build +@@ -61,6 +61,7 @@ libgobject = shared_library('gobject-2.0', + install : true, + include_directories : [configinc], + dependencies : [libintl, libffi_dep, libglib_dep], ++ link_args : library_link_args, + c_args : ['-DG_LOG_DOMAIN="GLib-GObject"', '-DGOBJECT_COMPILATION'] + glib_hidden_visibility_args) + + libgobject_dep = declare_dependency(link_with : libgobject, +@@ -102,7 +103,7 @@ configure_file( + output: 'libgobject-2.0.so.@0@-gdb.py'.format(library_version), + configuration: gdb_conf, + install: true, +- install_dir: join_paths(get_option('datadir'), 'gdb/auto-load/' + get_option('libdir')) ++ install_dir: join_paths(get_option('datadir'), 'gdb/auto-load/' + glib_libdir) + ) + + if enable_systemtap +diff --git i/gthread/meson.build w/gthread/meson.build +index 8ccac3369894bda4..2d5913a91525460f 100644 +--- i/gthread/meson.build ++++ w/gthread/meson.build +@@ -6,4 +6,5 @@ libgthread = shared_library('gthread-2.0', + soversion : soversion, + install : true, + dependencies : [libglib_dep], ++ link_args : library_link_args, + c_args : ['-DG_LOG_DOMAIN="GThread"' ] + glib_hidden_visibility_args) +diff --git i/meson.build w/meson.build +index 0f3f7917899e93ea..12277e8d327b7a83 100644 +--- i/meson.build ++++ w/meson.build +@@ -1533,6 +1533,13 @@ glib_conf.set('GIO_MODULE_DIR', '${libdir}/gio/modules') + # @G_MODULE_LIBS@ @SELINUX_LIBS@ @COCOA_LIBS@ @CARBON_LIBS@ @G_LIBS_EXTRA@ + # @PCRE_REQUIRES@ @GLIB_EXTRA_CFLAGS@ @G_THREAD_CFLAGS@ + ++# HACK ++glib_conf.set('G_THREAD_LIBS', '-pthread') ++glib_conf.set('G_THREAD_CFLAGS', '-pthread') ++glib_conf.set('G_MODULE_LDFLAGS', '-Wl,--export-dynamic') ++glib_conf.set('PCRE_REQUIRES', 'libpcre') ++library_link_args = [ '-Wl,-z,nodelete' ] ++ + # Tracing: dtrace + want_dtrace = get_option('enable-dtrace') + enable_dtrace = false diff --git a/noisy-glib-compile-schemas.diff b/noisy-glib-compile-schemas.diff new file mode 100644 index 000000000000..f5f2d9482229 --- /dev/null +++ b/noisy-glib-compile-schemas.diff @@ -0,0 +1,24 @@ +diff --git i/gio/glib-compile-schemas.c w/gio/glib-compile-schemas.c +index b8de0907248f6860..130f89b1728f7932 100644 +--- i/gio/glib-compile-schemas.c ++++ w/gio/glib-compile-schemas.c +@@ -1219,19 +1219,6 @@ parse_state_start_schema (ParseState *state, + return; + } + +- if (path && (g_str_has_prefix (path, "/apps/") || +- g_str_has_prefix (path, "/desktop/") || +- g_str_has_prefix (path, "/system/"))) +- { +- gchar *message = NULL; +- message = g_strdup_printf (_("Warning: Schema “%s” has path “%s”. " +- "Paths starting with " +- "“/apps/”, “/desktop/” or “/system/” are deprecated."), +- id, path); +- g_printerr ("%s\n", message); +- g_free (message); +- } +- + state->schema_state = schema_state_new (path, gettext_domain, + extends, extends_name, list_of); + diff --git a/skip-broken-timer-test.patch b/skip-broken-timer-test.patch deleted file mode 100644 index a19c684f36c4..000000000000 --- a/skip-broken-timer-test.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git i/glib/tests/Makefile.am w/glib/tests/Makefile.am -index 43b11f05da63fa02..37406ecdf17e0094 100644 ---- i/glib/tests/Makefile.am -+++ w/glib/tests/Makefile.am -@@ -106,7 +106,6 @@ test_programs = \ - test-printf \ - thread \ - timeout \ -- timer \ - tree \ - utf8-performance \ - utf8-pointer \ |