Date: Wednesday, February 24, 2016 @ 19:13:21 Author: heftig Revision: 260227
2.46.2-4 Added: glib2/trunk/0001-gsettings-Don-t-crash-when-no-schemas-are-installed.patch Modified: glib2/trunk/PKGBUILD Deleted: glib2/trunk/glib2.install ----------------------------------------------------------------+ 0001-gsettings-Don-t-crash-when-no-schemas-are-installed.patch | 49 ++++++++++ PKGBUILD | 6 - glib2.install | 13 -- 3 files changed, 53 insertions(+), 15 deletions(-) Added: 0001-gsettings-Don-t-crash-when-no-schemas-are-installed.patch =================================================================== --- 0001-gsettings-Don-t-crash-when-no-schemas-are-installed.patch (rev 0) +++ 0001-gsettings-Don-t-crash-when-no-schemas-are-installed.patch 2016-02-24 18:13:21 UTC (rev 260227) @@ -0,0 +1,49 @@ +From 4850cb55d3415b7d95c80c80ceb60f221f5dddf5 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <jan.steff...@gmail.com> +Date: Wed, 24 Feb 2016 18:58:25 +0100 +Subject: [PATCH] gsettings: Don't crash when no schemas are installed + +Still doesn't behave well ("gsettings help" causes an error), +but at least there's no segfault anymore. +--- + gio/gsettings-tool.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/gio/gsettings-tool.c b/gio/gsettings-tool.c +index 6a302ce..0026f55 100644 +--- a/gio/gsettings-tool.c ++++ b/gio/gsettings-tool.c +@@ -697,7 +697,7 @@ main (int argc, char **argv) + if (argc < 2) + return gsettings_help (FALSE, NULL); + +- global_schema_source = g_settings_schema_source_ref (g_settings_schema_source_get_default ()); ++ global_schema_source = g_settings_schema_source_get_default (); + + if (argc > 3 && g_str_equal (argv[1], "--schemadir")) + { +@@ -705,7 +705,6 @@ main (int argc, char **argv) + GError *error = NULL; + + global_schema_source = g_settings_schema_source_new_from_directory (argv[2], parent, FALSE, &error); +- g_settings_schema_source_unref (parent); + + if (global_schema_source == NULL) + { +@@ -719,6 +718,13 @@ main (int argc, char **argv) + argv = argv + 2; + argc -= 2; + } ++ else if (global_schema_source == NULL) ++ { ++ g_printerr (_("No schemas installed\n")); ++ return 1; ++ } ++ else ++ g_settings_schema_source_ref (global_schema_source); + + need_settings = TRUE; + +-- +2.7.1 + Modified: PKGBUILD =================================================================== --- PKGBUILD 2016-02-24 18:12:28 UTC (rev 260226) +++ PKGBUILD 2016-02-24 18:13:21 UTC (rev 260227) @@ -4,14 +4,16 @@ pkgbase=glib2 pkgname=(glib2 glib2-docs) pkgver=2.46.2 -pkgrel=3 +pkgrel=4 pkgdesc="Common C routines used by GTK+ and other libs" url="http://www.gtk.org/" arch=(i686 x86_64) makedepends=('pkg-config' 'python2' 'libxslt' 'docbook-xml' 'pcre' 'libffi' 'libelf') source=(http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver:0:4}/glib-$pkgver.tar.xz + 0001-gsettings-Don-t-crash-when-no-schemas-are-installed.patch revert-warn-glib-compile-schemas.patch memleak.patch) sha256sums=('5031722e37036719c1a09163cc6cf7c326e4c4f1f1e074b433c156862bd733db' + '06520be36842422fddcad839c07f15f04910b3dc3b6f8f146cfcaa86e9bc983b' '049240975cd2f1c88fbe7deb28af14d4ec7d2640495f7ca8980d873bb710cc97' '8337eeba4a32133d41575c8338fca32ac6a867e6e4a4e021355fcdeb606420a6') @@ -19,6 +21,7 @@ cd glib-$pkgver patch -Rp1 -i ../revert-warn-glib-compile-schemas.patch patch -Np1 -i ../memleak.patch + patch -Np1 -i ../0001-gsettings-Don-t-crash-when-no-schemas-are-installed.patch } build() { @@ -41,7 +44,6 @@ 'libelf: gresource inspection tool') options=('!docs' '!emptydirs') license=('LGPL') - install=glib2.install cd glib-$pkgver make completiondir=/usr/share/bash-completion/completions DESTDIR="$pkgdir" install Deleted: glib2.install =================================================================== --- glib2.install 2016-02-24 18:12:28 UTC (rev 260226) +++ glib2.install 2016-02-24 18:13:21 UTC (rev 260227) @@ -1,13 +0,0 @@ -post_install() { - glib-compile-schemas /usr/share/glib-2.0/schemas -} - -post_upgrade() { - glib-compile-schemas /usr/share/glib-2.0/schemas -} - -pre_remove() { - if [ -f /usr/share/glib-2.0/schemas/gschemas.compiled ]; then - rm /usr/share/glib-2.0/schemas/gschemas.compiled - fi -}