From 0ccafddca9d9fea971c5baeabf03d8e5123cc4bd Mon Sep 17 00:00:00 2001 From: Bruno Victal Date: Thu, 22 Jun 2023 20:33:17 +0100 Subject: gnu: shared-mime-info: Move to (gnu packages freedesktop). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (shared-mime-info): Move to … * gnu/packages/freedesktop.scm: … here. * gnu/packages/gnuzilla.scm: Use (gnu packages freedesktop). * gnu/packages/kde-games.scm: Ditto. * gnu/packages/kde-multimedia.scm: Ditto. * gnu/packages/kde-pim.scm: Ditto. * gnu/packages/kde-utils.scm: Ditto. * gnu/packages/maths.scm: Ditto. * gnu/packages/mp3.scm: Ditto. * gnu/packages/ruby.scm: Ditto. * guix/profiles.scm (xdg-mime-database): Adjust to new location. Signed-off-by: Liliana Marie Prikler --- gnu/packages/freedesktop.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gnu/packages/freedesktop.scm') diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 6385741d89..bd3df9ee68 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -465,6 +465,39 @@ (define-public maliit-keyboard display servers. It supports many different languages and emoji.") (license license:gpl3+))) +(define-public shared-mime-info + (package + (name "shared-mime-info") + (version "1.15") + (source (origin + (method url-fetch) + (uri (string-append + "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/" + "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version + ".tar.xz")) + (sha256 + (base32 + "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl")))) + (build-system gnu-build-system) + (arguments + ;; The build system appears not to be parallel-safe. + '(#:parallel-build? #f)) + (inputs + (list glib libxml2)) + (native-inputs + `(("gettext" ,gettext-minimal) + ("itstool" ,itstool) + ("pkg-config" ,pkg-config))) + (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info") + (synopsis "Database of common MIME types") + (description + "The shared-mime-info package contains the core database of common types +and the update-mime-database command used to extend it. It requires glib2 to +be installed for building the update command. Additionally, it uses intltool +for translations, though this is only a dependency for the maintainers. This +database is translated at Transifex.") + (license license:gpl2+))) + (define-public xdg-utils (package (name "xdg-utils") -- cgit v1.2.3 From 5539ad8c65a943bfc0cec35dea76d016bcb881fc Mon Sep 17 00:00:00 2001 From: Bruno Victal Date: Thu, 22 Jun 2023 20:33:18 +0100 Subject: gnu: Add xdgmime. This package is only used for testing shared-mime-info, and thus not exported. * gnu/packages/freedesktop.scm (xdgmime): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/freedesktop.scm | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'gnu/packages/freedesktop.scm') diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index bd3df9ee68..b6b9f5d4ee 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -33,6 +33,7 @@ ;;; Copyright © 2022 Petr Hodina ;;; Copyright © 2022 muradm ;;; Copyright © 2023 Alex Devaure +;;; Copyright © 2023 Bruno Victal ;;; ;;; This file is part of GNU Guix. ;;; @@ -465,6 +466,52 @@ (define-public maliit-keyboard display servers. It supports many different languages and emoji.") (license license:gpl3+))) +;; Private package used by shared-mime-info. +(define xdgmime + ;; No public release, match commit to the one used in the + ;; shared-mime-info release. + (let ((commit "de283fc430460b9b3a7e61432a6d273cd64cb102") + (revision "1")) + (package + (name "xdgmime") + (version (git-version "0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/xdg/xdgmime.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0m9k7nfxgchb9j0xh9cwsldz6564qisqdkvlhgkcgc0grd4nfbn9")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ; no tests + #:make-flags #~(list (string-append "DESTDIR=" #$output) + #$(string-append "CC=" (cc-for-target))) + #:imported-modules `((guix build copy-build-system) + ,@%gnu-build-system-modules) + #:modules `((guix build gnu-build-system) + ((guix build copy-build-system) #:prefix copy:) + (guix build utils)) + #:phases + #~(modify-phases %standard-phases + ;; Package uses a hand-crafted Makefile. + (delete 'configure) + (replace 'install + (lambda args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + '(("src" "bin/" #:include ("print-mime-data" + "test-mime-data" + "test-mime"))) + args)))))) + (home-page "https://gitlab.freedesktop.org/xdg/xdgmime/") + (synopsis "Module that parses the freedesktop.org MIME spec") + (description "This module is used for shared-mime-info package tests.") + (license (list license:lgpl2.1+ license:artistic2.0))))) + (define-public shared-mime-info (package (name "shared-mime-info") -- cgit v1.2.3 From 0a167432dbccb3ed5b6f27a48b61e570846cf784 Mon Sep 17 00:00:00 2001 From: Bruno Victal Date: Thu, 22 Jun 2023 20:33:19 +0100 Subject: gnu: shared-mime-info: Update to 2.2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (shared-mime-info): Update to 2.2. [source]: Use git-fetch. [build-system]: Use meson-build-system. [arguments]<#:parallel-build?>: Removed argument. <#:phases>: Replace ‘patch-source-shebangs’ with a version that skips mime detection checks. [native-inputs]: Drop labels. Add python and xdgmime. Remove itstool. * gnu/packages/patches/shared-mime-info-xdgmime-path.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Signed-off-by: Liliana Marie Prikler --- gnu/local.mk | 2 ++ gnu/packages/freedesktop.scm | 41 +++++++++++++++------- .../patches/shared-mime-info-xdgmime-path.patch | 22 ++++++++++++ 3 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 gnu/packages/patches/shared-mime-info-xdgmime-path.patch (limited to 'gnu/packages/freedesktop.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 5dae534ec3..d0c03b9078 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -59,6 +59,7 @@ # Copyright © 2023 Zheng Junjie <873216071@qq.com> # Copyright © 2023 Ivana Drazovic # Copyright © 2023 Andy Tai +# Copyright © 2023 Bruno Victal # # This file is part of GNU Guix. # @@ -1919,6 +1920,7 @@ dist_patch_DATA = \ %D%/packages/patches/libsequoia-remove-store.patch \ %D%/packages/patches/serf-python3.patch \ %D%/packages/patches/shakespeare-spl-fix-grammar.patch \ + %D%/packages/patches/shared-mime-info-xdgmime-path.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \ %D%/packages/patches/slim-session.patch \ %D%/packages/patches/slim-config.patch \ diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b6b9f5d4ee..b16fa5d387 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -512,29 +512,44 @@ (define xdgmime (description "This module is used for shared-mime-info package tests.") (license (list license:lgpl2.1+ license:artistic2.0))))) +;; Note: when updating shared-mime-info, don't forget to update xdgmime's commit +;; to the one used in the release. (define-public shared-mime-info (package (name "shared-mime-info") - (version "1.15") + (version "2.2") (source (origin - (method url-fetch) - (uri (string-append - "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/" - "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version - ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/xdg/shared-mime-info.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl")))) - (build-system gnu-build-system) + "04dfnnflspprxg7qia3whz1754lfvgi4ihvmihg379936zy5xd22")) + (patches (search-patches "shared-mime-info-xdgmime-path.patch")))) + (build-system meson-build-system) (arguments - ;; The build system appears not to be parallel-safe. - '(#:parallel-build? #f)) + (list + #:configure-flags + #~(list #$(format #f "-Dxdgmime-path=~a/bin" + (this-package-native-input "xdgmime")) + "-Dupdate-mimedb=true") + #:phases + #~(modify-phases %standard-phases + ;; Don't patch shebangs for the test files. + (replace 'patch-source-shebangs + (lambda _ + (let ((pred (lambda (file stat) + (and (eq? 'regular (stat:type stat)) + (not (string-prefix? "./tests/mime-detection" + file)))))) + (for-each patch-shebang + (find-files "." pred #:stat lstat)))))))) (inputs (list glib libxml2)) (native-inputs - `(("gettext" ,gettext-minimal) - ("itstool" ,itstool) - ("pkg-config" ,pkg-config))) + (list gettext-minimal pkg-config python xdgmime)) (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info") (synopsis "Database of common MIME types") (description diff --git a/gnu/packages/patches/shared-mime-info-xdgmime-path.patch b/gnu/packages/patches/shared-mime-info-xdgmime-path.patch new file mode 100644 index 0000000000..27c578f3fa --- /dev/null +++ b/gnu/packages/patches/shared-mime-info-xdgmime-path.patch @@ -0,0 +1,22 @@ +Adapted from . + +diff --git a/meson.build b/meson.build +index 3c75424..7058562 100644 +--- a/meson.build ++++ b/meson.build +@@ -26,11 +26,11 @@ xmlto = find_program('xmlto', required: false) + ############################################################################### + # Find xdgmime + +-xdgmime = get_option('xdgmime-path') / 'src' ++xdgmime = get_option('xdgmime-path') + +-xdgmime_print_mime_data = find_program(xdgmime/'print-mime-data', required: false) +-xdgmime_test_mime_data = find_program(xdgmime/'test-mime-data', required: false) +-xdgmime_test_mime = find_program(xdgmime/'test-mime', required: false) ++xdgmime_print_mime_data = find_program('print-mime-data', xdgmime/'print-mime-data', required: false) ++xdgmime_test_mime_data = find_program('test-mime-data', xdgmime/'test-mime-data', required: false) ++xdgmime_test_mime = find_program('test-mime', xdgmime/'test-mime', required: false) + xdgmime_found = ( + xdgmime_print_mime_data.found() and + xdgmime_test_mime_data.found() and -- cgit v1.2.3 From 4346c092ea8f1c3084609d3e9173d232bf04af0c Mon Sep 17 00:00:00 2001 From: Bruno Victal Date: Thu, 22 Jun 2023 20:33:20 +0100 Subject: gnu: shared-mime-info: Add doc output. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (shared-mime-info[#:phases]: Add ‘install-doc’. [outputs]: Add “doc”. [native-inputs]: Add docbook-xml-4.1.2, docbook-xsl and xmlto. Signed-off-by: Liliana Marie Prikler --- gnu/packages/freedesktop.scm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'gnu/packages/freedesktop.scm') diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b16fa5d387..65781fed11 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -545,11 +545,24 @@ (define-public shared-mime-info (not (string-prefix? "./tests/mime-detection" file)))))) (for-each patch-shebang - (find-files "." pred #:stat lstat)))))))) + (find-files "." pred #:stat lstat))))) + ;; The docs have no install rule. + (add-after 'install 'install-doc + (lambda* (#:key source #:allow-other-keys) + (let ((dest (string-append #$output:doc "/share/doc"))) + (with-directory-excursion "data/shared-mime-info-spec-html" + (install-file "shared-mime-info-spec.html" + (string-append dest "/html"))) + (install-file (string-append source + "/data/shared-mime-info-spec.xml") + dest))))))) (inputs (list glib libxml2)) (native-inputs - (list gettext-minimal pkg-config python xdgmime)) + (list gettext-minimal pkg-config python xdgmime + ;; For 'doc' output. + docbook-xml-4.1.2 docbook-xsl xmlto)) + (outputs (list "out" "doc")) (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info") (synopsis "Database of common MIME types") (description -- cgit v1.2.3 From e43498b32dcbbf055d72339086213cd60c336acf Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 19 Aug 2023 20:36:50 +0200 Subject: gnu: shared-mime-info: Make .drv reproducible again. This fixes an issue in commit 0a167432dbccb3ed5b6f27a48b61e570846cf784, that causes the .drv of shared-mime-info to change with each invocation of guix. For more information, refer to and . * gnu/packages/freedesktop.scm (shared-mime-info)[#:configure-flags]: Infer xdgmime-path via search-input-file. --- gnu/packages/freedesktop.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'gnu/packages/freedesktop.scm') diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 8cb4c61d9f..85ba5ba147 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -534,8 +534,10 @@ (define-public shared-mime-info (arguments (list #:configure-flags - #~(list #$(format #f "-Dxdgmime-path=~a/bin" - (this-package-native-input "xdgmime")) + #~(list (string-append + "-Dxdgmime-path=" + (dirname + (search-input-file %build-inputs "/bin/test-mime"))) "-Dupdate-mimedb=true") #:phases #~(modify-phases %standard-phases -- cgit v1.2.3 From d34e4676eda7e222e55ab0c039e02478d50d45a2 Mon Sep 17 00:00:00 2001 From: Bruno Victal Date: Fri, 27 Oct 2023 20:03:14 +0100 Subject: gnu: xdgmime: Update to 0.0-2.1792967. * gnu/packages/freedesktop.scm (xdgmime): Update to 0.0-2.1792967. Change-Id: I5d65544ad01526157dbe553d98dc78db037546c8 Signed-off-by: Liliana Marie Prikler --- gnu/packages/freedesktop.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages/freedesktop.scm') diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index c52e921756..e482297bc1 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -486,8 +486,8 @@ (define-public maliit-keyboard (define xdgmime ;; No public release, match commit to the one used in the ;; shared-mime-info release. - (let ((commit "de283fc430460b9b3a7e61432a6d273cd64cb102") - (revision "1")) + (let ((commit "179296748e92bd91bf531656632a1056307fb7b7") + (revision "2")) (package (name "xdgmime") (version (git-version "0.0" revision commit)) @@ -499,7 +499,7 @@ (define xdgmime (file-name (git-file-name name version)) (sha256 (base32 - "0m9k7nfxgchb9j0xh9cwsldz6564qisqdkvlhgkcgc0grd4nfbn9")))) + "04bpbqlkmwi2pqx1lj3awa9f9gwp4n91fpnz8hbbd0hl8x41przm")))) (build-system gnu-build-system) (arguments (list -- cgit v1.2.3 From 1b58b5f76b090305206dce0456c0497f651ad680 Mon Sep 17 00:00:00 2001 From: Bruno Victal Date: Fri, 27 Oct 2023 20:03:15 +0100 Subject: gnu: shared-mime-info: Update to 2.3. * gnu/packages/freedesktop.scm (shared-mime-info): Update to 2.3. Signed-off-by: Liliana Marie Prikler --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/freedesktop.scm') diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index e482297bc1..d920afe1e7 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -533,7 +533,7 @@ (define xdgmime (define-public shared-mime-info (package (name "shared-mime-info") - (version "2.2") + (version "2.3") (source (origin (method git-fetch) (uri (git-reference @@ -542,7 +542,7 @@ (define-public shared-mime-info (file-name (git-file-name name version)) (sha256 (base32 - "04dfnnflspprxg7qia3whz1754lfvgi4ihvmihg379936zy5xd22")) + "0w8sbhz00sk6k8pyiykfig4rm22jyibalj7g22j9qf3d2nfy8ivh")) (patches (search-patches "shared-mime-info-xdgmime-path.patch")))) (build-system meson-build-system) (arguments -- cgit v1.2.3 From 4963d4c6bb8d238d7577dfd2cb0dc6d944ae7283 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 11 Nov 2023 01:38:07 +0100 Subject: gnu: appstream: Update to 0.16.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (appstream): Update to 0.16.4. [arguments]<#:configure-flags>: Add “-Dsystemd=false”. <#:phases>: Adjust accordingly. Change-Id: I9c22cbd10681666c20e848dbc1e52ca08431d984 --- gnu/packages/freedesktop.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'gnu/packages/freedesktop.scm') diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index d920afe1e7..0aeeadf5a3 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -139,7 +139,7 @@ (define-module (gnu packages freedesktop) (define-public appstream (package (name "appstream") - (version "0.15.6") + (version "0.16.4") (source (origin (method url-fetch) @@ -148,11 +148,12 @@ (define-public appstream "appstream/releases/" "AppStream-" version ".tar.xz")) (sha256 - (base32 "03pirmc5r4izl6mzff879g7pk1nxq03kgpr2yvnnqnlb6r0ckmi3")))) + (base32 "1val1b3dggn9g33q2r9q7wsl75a64x4lcvswvkcjjbvakkbj5xyl")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t + #:configure-flags #~(list "-Dsystemd=false") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-libstemmer @@ -165,7 +166,7 @@ (define-public appstream (add-after 'unpack 'disable-failing-tests (lambda _ (substitute* "tests/test-pool.c" - (("[ \t]*g_test_add_func \\(\"/AppStream/PoolRead?.*;") + (("[ \t]*g_test_add_func \\(\"/AppStream/Stemming.*;") "")))) (add-before 'check 'check-setup (lambda _ -- cgit v1.2.3 From 7b95445865b8687eff0f8af678cfd3a4da281066 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 16 Nov 2023 00:12:44 +0100 Subject: gnu: appstream: Load stemmer in all circumstances. If the default stemmer language is computed to be "en", such as in a Guix build container, then the stemmer would not be loaded. * gnu/packages/patches/appstream-load-stemmer-early.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register it here. * gnu/packages/freedesktop.scm (appstream) [patches]: Use it here. [#:phases]: Remove. Change-Id: Iddd6ce5887247df46f670c49f9efc66772c82ff0 Signed-off-by: Liliana Marie Prikler --- gnu/local.mk | 1 + gnu/packages/freedesktop.scm | 9 +-- .../patches/appstream-force-reload-stemmer.patch | 89 ++++++++++++++++++++++ 3 files changed, 93 insertions(+), 6 deletions(-) create mode 100644 gnu/packages/patches/appstream-force-reload-stemmer.patch (limited to 'gnu/packages/freedesktop.scm') diff --git a/gnu/local.mk b/gnu/local.mk index a939b9be8d..5cb9874d9f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -918,6 +918,7 @@ dist_patch_DATA = \ %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \ %D%/packages/patches/antlr3-3_3-fix-java8-compilation.patch \ %D%/packages/patches/aoflagger-use-system-provided-pybind11.patch \ + %D%/packages/patches/appstream-force-reload-stemmer.patch \ %D%/packages/patches/apr-fix-atomics.patch \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/ark-skip-xar-test.patch \ diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 0aeeadf5a3..25b7998d05 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -148,7 +148,9 @@ (define-public appstream "appstream/releases/" "AppStream-" version ".tar.xz")) (sha256 - (base32 "1val1b3dggn9g33q2r9q7wsl75a64x4lcvswvkcjjbvakkbj5xyl")))) + (base32 "1val1b3dggn9g33q2r9q7wsl75a64x4lcvswvkcjjbvakkbj5xyl")) + (patches + (search-patches "appstream-force-reload-stemmer.patch")))) (build-system meson-build-system) (arguments (list @@ -163,11 +165,6 @@ (define-public appstream (substitute* "meson.build" (("/usr/include") (dirname libstemmer.h)))))) - (add-after 'unpack 'disable-failing-tests - (lambda _ - (substitute* "tests/test-pool.c" - (("[ \t]*g_test_add_func \\(\"/AppStream/Stemming.*;") - "")))) (add-before 'check 'check-setup (lambda _ (setenv "HOME" (getcwd))))))) diff --git a/gnu/packages/patches/appstream-force-reload-stemmer.patch b/gnu/packages/patches/appstream-force-reload-stemmer.patch new file mode 100644 index 0000000000..a2cf84c8b1 --- /dev/null +++ b/gnu/packages/patches/appstream-force-reload-stemmer.patch @@ -0,0 +1,89 @@ +From 32182d7a7a67d0d204cd0a37bd211bfd0177bc27 Mon Sep 17 00:00:00 2001 +Message-ID: <32182d7a7a67d0d204cd0a37bd211bfd0177bc27.1700093066.git.vivien@planete-kraus.eu> +From: Matthias Klumpp +Date: Thu, 16 Nov 2023 00:59:15 +0100 +Subject: [PATCH] stemmer: Resolve potential issue where stemmer may never be + initialized + +If the initial locale was equal to the current stemming language, we may +never have initialized the stemmer (which could lead to crashes or +stemming being disabled). + +So we force the reload to always happen on initialization. +CC: #558 +--- + src/as-stemmer.c | 33 +++++++++++++++++++++------------ + 1 file changed, 21 insertions(+), 12 deletions(-) + +diff --git a/src/as-stemmer.c b/src/as-stemmer.c +index 63d45267..16ebd09b 100644 +--- a/src/as-stemmer.c ++++ b/src/as-stemmer.c +@@ -47,6 +47,8 @@ G_DEFINE_TYPE (AsStemmer, as_stemmer, G_TYPE_OBJECT) + + static gpointer as_stemmer_object = NULL; + ++static void as_stemmer_reload_internal (AsStemmer *stemmer, const gchar *locale, gboolean force); ++ + /** + * as_stemmer_finalize: + **/ +@@ -76,21 +78,14 @@ as_stemmer_init (AsStemmer *stemmer) + + /* we don't use the locale in XML, so it can be POSIX */ + locale = as_get_current_locale_posix (); +- stemmer->current_lang = as_utils_locale_to_language (locale); + +- as_stemmer_reload (stemmer, stemmer->current_lang); ++ /* force a reload for initialization */ ++ as_stemmer_reload_internal (stemmer, locale, TRUE); + #endif + } + +-/** +- * as_stemmer_reload: +- * @stemmer: A #AsStemmer +- * @locale: The stemming language as POSIX locale. +- * +- * Allows realoading the #AsStemmer with a different language. +- */ +-void +-as_stemmer_reload (AsStemmer *stemmer, const gchar *locale) ++static void ++as_stemmer_reload_internal (AsStemmer *stemmer, const gchar *locale, gboolean force) + { + #ifdef HAVE_STEMMING + g_autofree gchar *lang = NULL; +@@ -99,7 +94,7 @@ as_stemmer_reload (AsStemmer *stemmer, const gchar *locale) + /* check if we need to reload */ + lang = as_utils_locale_to_language (locale); + locker = g_mutex_locker_new (&stemmer->mutex); +- if (as_str_equal0 (lang, stemmer->current_lang)) { ++ if (!force && as_str_equal0 (lang, stemmer->current_lang)) { + g_mutex_locker_free (locker); + return; + } +@@ -119,6 +114,20 @@ as_stemmer_reload (AsStemmer *stemmer, const gchar *locale) + #endif + } + ++/** ++ * as_stemmer_reload: ++ * @stemmer: A #AsStemmer ++ * @locale: The stemming language as POSIX locale. ++ * ++ * Allows realoading the #AsStemmer with a different language. ++ * Does nothing if the stemmer is already using the selected language. ++ */ ++void ++as_stemmer_reload (AsStemmer *stemmer, const gchar *locale) ++{ ++ as_stemmer_reload_internal (stemmer, locale, FALSE); ++} ++ + /** + * as_stemmer_stem: + * @stemmer: A #AsStemmer +-- +2.41.0 + -- cgit v1.2.3 From a4441ff3f0e9cf42e23c8c842fd5fa5846ff536d Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Sat, 2 Dec 2023 15:04:51 +0100 Subject: gnu: accountsservice: Update to 23.13.9. * gnu/packages/freedesktop.scm (accountsservice): Update to 23.13.9. [native-inuputs]: Add glibc-locales. * gnu/packages/patches/accountsservice-extensions.patch: Adjust to changes in the upstream code style. Change-Id: I19678b5ce36549a832099109b13cdaf91539b20a Signed-off-by: Liliana Marie Prikler --- gnu/packages/freedesktop.scm | 5 +++-- gnu/packages/patches/accountsservice-extensions.patch | 5 ++--- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'gnu/packages/freedesktop.scm') diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 25b7998d05..a934b3ac17 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -1746,7 +1746,7 @@ (define-public udisks (define-public accountsservice (package (name "accountsservice") - (version "22.08.8") + (version "23.13.9") (source (origin (method url-fetch) @@ -1754,7 +1754,7 @@ (define-public accountsservice "accountsservice/accountsservice-" version ".tar.xz")) (sha256 - (base32 "14d3lwik048h62qrzg1djdd2sqmxf3m1r859730pvzhrd6krg6ch")) + (base32 "0kwjkff5m7gnzpns6cy27az90w7sxzwzygyzwy90kyi4mvg4rnmd")) (patches (search-patches "accountsservice-extensions.patch")))) (build-system meson-build-system) (arguments @@ -1795,6 +1795,7 @@ (define-public accountsservice docbook-xsl gettext-minimal `(,glib "bin") ; for gdbus-codegen, etc. + glibc-locales ;for tests gobject-introspection gtk-doc libxml2 ;for XML_CATALOG_FILES diff --git a/gnu/packages/patches/accountsservice-extensions.patch b/gnu/packages/patches/accountsservice-extensions.patch index 2cfab580e3..8027a28a44 100644 --- a/gnu/packages/patches/accountsservice-extensions.patch +++ b/gnu/packages/patches/accountsservice-extensions.patch @@ -5,7 +5,7 @@ diff --git a/src/extensions.c b/src/extensions.c index 038dcb2..830465d 100644 --- a/src/extensions.c +++ b/src/extensions.c -@@ -121,16 +121,7 @@ daemon_read_extension_directory (GHashTable *ifaces, +@@ -122,15 +122,7 @@ daemon_read_extension_directory (GHashTable *ifaces, continue; } @@ -13,8 +13,7 @@ index 038dcb2..830465d 100644 - const gchar * const prefix = "../../dbus-1/interfaces/"; - if (g_str_has_prefix (symlink, prefix) && g_str_equal (symlink + strlen (prefix), name)) { - daemon_read_extension_file (ifaces, filename); -- } -- else { +- } else { - g_warning ("Found accounts service vendor extension symlink %s, but it must be exactly " - "equal to '../../dbus-1/interfaces/%s' for forwards-compatibility reasons.", - filename, name); -- cgit v1.2.3