From d13f3a033e42b4a14d581390b8fa36cd1db7d023 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 6 Dec 2018 12:22:34 +0100 Subject: gnu: gnome-tweak-tool: Update to 3.28.1. Fixes . * gnu/packages/gnome.scm (gnome-tweak-tool): Deprecate and rename... (gnome-tweaks): ...to this. Update to 3.28.1. [build-system]: Use meson-build-system. [arguments]: Adjust configure flags; pass glib-or-gtk? flag; remove custom phases that are now provided by the meson-build-system; add phases "wrap" and "wrap-gi-typelib". [native-inputs]: Remove meson-for-build and ninja. [home-page]: Update. [description]: Use "Tweaks" instead of "Tweak Tool". * gnu/packages/patches/gnome-tweak-tool-search-paths.patch: Rename file... * gnu/packages/patches/gnome-tweaks-search-paths.patch: ...to this. * gnu/local.mk (dist_patch_DATA): Update patch file name. --- gnu/packages/gnome.scm | 66 ++++++++++------------ .../patches/gnome-tweak-tool-search-paths.patch | 52 ----------------- .../patches/gnome-tweaks-search-paths.patch | 52 +++++++++++++++++ 3 files changed, 82 insertions(+), 88 deletions(-) delete mode 100644 gnu/packages/patches/gnome-tweak-tool-search-paths.patch create mode 100644 gnu/packages/patches/gnome-tweaks-search-paths.patch (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 7c40a39f01..e1d2a65ccb 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6777,51 +6777,41 @@ fit the GNOME desktop.") existing databases over the internet.") (license license:gpl3+))) -(define-public gnome-tweak-tool +(define-public gnome-tweaks (package - (name "gnome-tweak-tool") - (version "3.26.4") + (name "gnome-tweaks") + (version "3.28.1") (source (origin (method url-fetch) - (uri (string-append "mirror://gnome/sources/gnome-tweak-tool/" + (uri (string-append "mirror://gnome/sources/gnome-tweaks/" (version-major+minor version) "/" - "gnome-tweak-tool-" version ".tar.xz")) - (patches (list - (search-patch "gnome-tweak-tool-search-paths.patch"))) + "gnome-tweaks-" version ".tar.xz")) + (patches + (list (search-patch "gnome-tweaks-search-paths.patch"))) (sha256 (base32 - "1pq5a0kzh1sz7s7ax5c7p6212k9d51nk5bfvjfyqn99cs928187x")))) - (build-system glib-or-gtk-build-system) + "1p5xydr0haz4389h6dvvbna6i1mipdzvmlfksnv0jqfvfs9sy6fp")))) + (build-system meson-build-system) (arguments - `(#:configure-flags '("--localstatedir=/tmp" - "--sysconfdir=/tmp") + `(#:glib-or-gtk? #t + #:configure-flags '("-Dlocalstatedir=/tmp" + "-Dsysconfdir=/tmp") #:imported-modules ((guix build python-build-system) - ,@%glib-or-gtk-build-system-modules) - #:phases (modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda* (#:key outputs #:allow-other-keys) - (invoke "meson" "build" - "--prefix" (assoc-ref outputs "out")))) - (replace 'check - (lambda _ (invoke "ninja" "-C" "build" "test"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (invoke "ninja" "-C" "build" "install"))) - (add-after 'install 'wrap-program - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) - (wrap-program (string-append out "/bin/gnome-tweak-tool") - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) - #t)) - (add-after 'install 'wrap - (@@ (guix build python-build-system) wrap))))) + ,@%meson-build-system-modules) + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap + (@@ (guix build python-build-system) wrap)) + (add-after 'wrap 'wrap-gi-typelib + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (wrap-program (string-append out "/bin/gnome-tweaks") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) + #t))))) (native-inputs `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache ("intltool" ,intltool) - ("meson" ,meson-for-build) - ("ninja" ,ninja) ("pkg-config" ,pkg-config))) (inputs `(("gnome-desktop" ,gnome-desktop) @@ -6834,14 +6824,18 @@ existing databases over the internet.") ("python" ,python) ("python-pygobject" ,python-pygobject))) (synopsis "Customize advanced GNOME 3 options") - (home-page "https://wiki.gnome.org/action/show/Apps/GnomeTweakTool") + (home-page "https://wiki.gnome.org/Apps/Tweaks") (description - "GNOME Tweak Tool allows adjusting advanced configuration settings in + "GNOME Tweaks allows adjusting advanced configuration settings in GNOME 3. This includes things like the fonts used in user interface elements, alternative user interface themes, changes in window management behavior, GNOME Shell appearance and extension, etc.") (license license:gpl3+))) +;; This package has been renamed by upstream. +(define-public gnome-tweak-tool + (deprecated-package "gnome-tweak-tool" gnome-tweaks)) + (define-public gnome-shell-extensions (package (name "gnome-shell-extensions") diff --git a/gnu/packages/patches/gnome-tweak-tool-search-paths.patch b/gnu/packages/patches/gnome-tweak-tool-search-paths.patch deleted file mode 100644 index 027c61b3af..0000000000 --- a/gnu/packages/patches/gnome-tweak-tool-search-paths.patch +++ /dev/null @@ -1,52 +0,0 @@ -Gnome-tweak-tool does not look at GSETTINGS_SCHEMA_PATH or XDG_DATA_DIRS, it -assumes that schemas are installed in one global directory -(GSETTINGS_SCHEMA_DIR/gsettingsschemadir). - -Guix/GuixSD uses a different directory for every gir package and has -packages pick-up files using XDG_DATA_DIRS. - -Upstream ticket: https://bugzilla.gnome.org/show_bug.cgi?id=764537 -janneke@gnu.org - ---- gnome-tweak-tool-3.18.1.orig/gtweak/gsettings.py 2015-04-08 15:21:32.000000000 +0200 -+++ gnome-tweak-tool-3.18.1/gtweak/gsettings.py 2016-04-03 11:26:38.658482704 +0200 -@@ -16,7 +16,8 @@ - # along with gnome-tweak-tool. If not, see . - - import logging --import os.path -+import os -+import sys - import xml.dom.minidom - import gettext - -@@ -31,6 +32,13 @@ - class GSettingsMissingError(Exception): - pass - -+def file_from_path(path, file_name): -+ for dir in path: -+ f = os.path.join(dir, file_name) -+ if os.path.exists(f): -+ return f -+ return None -+ - class _GSettingsSchema: - def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options): - if not schema_dir: -@@ -38,9 +46,14 @@ - if not schema_filename: - schema_filename = schema_name + ".gschema.xml" - -+ schema_prefix = os.path.join('glib-2.0', 'schemas') - schema_path = os.path.join(schema_dir, schema_filename) - if not os.path.exists(schema_path): -- logging.critical("Could not find schema %s" % schema_path) -+ schema_path = file_from_path(os.environ.get ('GSETTINGS_SCHEMA_PATH', '').split(os.path.pathsep), schema_filename) -+ if not (schema_path and os.path.exists(schema_path)): -+ schema_path = file_from_path(os.environ.get ('XDG_DATA_DIRS', '').split(os.path.pathsep), os.path.join(schema_prefix, schema_filename)) -+ if not (schema_path and os.path.exists(schema_path)): -+ logging.critical("Could not find schema %s" % schema_filename) - assert(False) - - self._schema_name = schema_name diff --git a/gnu/packages/patches/gnome-tweaks-search-paths.patch b/gnu/packages/patches/gnome-tweaks-search-paths.patch new file mode 100644 index 0000000000..e7524fa675 --- /dev/null +++ b/gnu/packages/patches/gnome-tweaks-search-paths.patch @@ -0,0 +1,52 @@ +Gnome-tweaks does not look at GSETTINGS_SCHEMA_PATH or XDG_DATA_DIRS, it +assumes that schemas are installed in one global directory +(GSETTINGS_SCHEMA_DIR/gsettingsschemadir). + +Guix/GuixSD uses a different directory for every gir package and has +packages pick-up files using XDG_DATA_DIRS. + +Upstream ticket: https://bugzilla.gnome.org/show_bug.cgi?id=764537 +janneke@gnu.org + +--- gnome-tweak-3.18.1.orig/gtweak/gsettings.py 2015-04-08 15:21:32.000000000 +0200 ++++ gnome-tweak-tool-3.18.1/gtweak/gsettings.py 2016-04-03 11:26:38.658482704 +0200 +@@ -16,7 +16,8 @@ + # along with gnome-tweak-tool. If not, see . + + import logging +-import os.path ++import os ++import sys + import xml.dom.minidom + import gettext + +@@ -31,6 +32,13 @@ + class GSettingsMissingError(Exception): + pass + ++def file_from_path(path, file_name): ++ for dir in path: ++ f = os.path.join(dir, file_name) ++ if os.path.exists(f): ++ return f ++ return None ++ + class _GSettingsSchema: + def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options): + if not schema_dir: +@@ -38,9 +46,14 @@ + if not schema_filename: + schema_filename = schema_name + ".gschema.xml" + ++ schema_prefix = os.path.join('glib-2.0', 'schemas') + schema_path = os.path.join(schema_dir, schema_filename) + if not os.path.exists(schema_path): +- logging.critical("Could not find schema %s" % schema_path) ++ schema_path = file_from_path(os.environ.get ('GSETTINGS_SCHEMA_PATH', '').split(os.path.pathsep), schema_filename) ++ if not (schema_path and os.path.exists(schema_path)): ++ schema_path = file_from_path(os.environ.get ('XDG_DATA_DIRS', '').split(os.path.pathsep), os.path.join(schema_prefix, schema_filename)) ++ if not (schema_path and os.path.exists(schema_path)): ++ logging.critical("Could not find schema %s" % schema_filename) + assert(False) + + self._schema_name = schema_name -- cgit v1.2.3