GNU bug report logs - #71837
[PATCH] gnu: clasp: Prevent ID clashes in dependent packages.

Previous Next

Package: guix-patches;

Reported by: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Date: Sat, 29 Jun 2024 07:04:01 UTC

Severity: normal

Tags: patch

Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 71837 in the body.
You can then email your comments to 71837 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#71837; Package guix-patches. (Sat, 29 Jun 2024 07:04:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Liliana Marie Prikler <liliana.prikler <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 29 Jun 2024 07:04:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: clasp: Prevent ID clashes in dependent packages.
Date: Sat, 29 Jun 2024 08:53:54 +0200
Clasp uses an interesting CRTP pattern to insert statically (i.e. compile-time)
generated numeric IDs into global fields.  However, these templates are
instantiated once per shared library---thus, whenever a library is linked, new
IDs are generated, and the original intent (safely type-casting objects across
libraries) is lost.  To help the linker out, we make sure that these IDs are
only instantiated in clasp and not when building other libraries.

* gnu/packages/patches/clasp-hide-event-ids.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it here.
* gnu/packages/clasp.scm (source)[patches]: Add it here.
(clingo)[#:phases]: Drop ‘skip-failing-tests’.
(python-clorm)[#:phases]<fix-breaking-tests>: Adjust accordingly.
(python-clintest): Drop arguments.
---
 gnu/local.mk                                  |  1 +
 .../patches/clasp-hide-event-ids.patch        | 41 +++++++++++++++++++
 gnu/packages/potassco.scm                     | 31 ++------------
 3 files changed, 45 insertions(+), 28 deletions(-)
 create mode 100644 gnu/packages/patches/clasp-hide-event-ids.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index d0cc62dd57..de13a0794e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1063,6 +1063,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/clang-runtime-3.7-fix-build-with-python3.patch	\
   %D%/packages/patches/clang-runtime-3.9-libsanitizer-mode-field.patch	\
   %D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch	\
+  %D%/packages/patches/clasp-hide-event-ids.patch		\
   %D%/packages/patches/classpath-aarch64-support.patch		\
   %D%/packages/patches/classpath-miscompilation.patch		\
   %D%/packages/patches/cling-use-shared-library.patch		\
diff --git a/gnu/packages/patches/clasp-hide-event-ids.patch b/gnu/packages/patches/clasp-hide-event-ids.patch
new file mode 100644
index 0000000000..9587f9ff3f
--- /dev/null
+++ b/gnu/packages/patches/clasp-hide-event-ids.patch
@@ -0,0 +1,41 @@
+From a4c4e4f3c410834c3e56f644841f5bcbb084225c Mon Sep 17 00:00:00 2001
+From: Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at>
+Date: Fri, 28 Jun 2024 11:15:16 +0200
+Subject: [PATCH] clasp: Hide Event_t<T>::id_s.
+
+This patch helps build clingo with non-local clasp while keeping the
+event system working as intended.
+---
+ clasp/util/misc_types.h | 2 ++
+ src/CMakeLists.txt      | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/clasp/util/misc_types.h b/clasp/util/misc_types.h
+index 3677873..09c2075 100644
+--- a/clasp/util/misc_types.h
++++ b/clasp/util/misc_types.h
+@@ -432,7 +432,9 @@ struct Event_t : Event {
+ 	Event_t(Subsystem sys, Verbosity verb) : Event(sys, id_s, verb) {}
+ 	static const uint32 id_s;
+ };
++#if _BUILDING_CLASP_
+ template <class T> const uint32 Event_t<T>::id_s = Event::nextId();
++#endif
+ 
+ template <class ToType, class EvType> const ToType* event_cast(const EvType& ev) { return ev.id == ToType::id_s ? static_cast<const ToType*>(&ev) : 0; }
+ 
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 8439d12..4f55990 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -123,6 +123,7 @@ source_group("${ide_header}\\mt" FILES ${header_mt})
+ endif()
+ 
+ add_library(libclasp ${header} ${header_util} ${header_cli} ${header_mt} ${src})
++target_compile_definitions(libclasp PRIVATE _BUILDING_CLASP_)
+ if (CLASP_BUILD_WITH_THREADS)
+ 	target_link_libraries(libclasp PUBLIC Threads::Threads)
+ 	target_compile_options(libclasp PRIVATE
+-- 
+2.45.1
+
diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index b7cfca2eec..5432fc10c3 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -112,6 +112,7 @@ (define-public clasp
                     (url "https://github.com/potassco/clasp")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
+              (patches (search-patches "clasp-hide-event-ids.patch"))
               (sha256
                (base32
                 "0qap7rar8a5mkqz28n2hnvr4cfv5x0rh4zs3wdp919dw4d034chr"))))
@@ -200,22 +201,7 @@ (define-public clingo
               (substitute* "cmake/ClingoConfig.cmake.in"
                 (("find_package\\(Clasp") "find_package(clasp"))
               (rename-file "cmake/ClingoConfig.cmake.in"
-                           "cmake/clingo-config.cmake.in")))
-          (add-after 'unpack 'skip-failing-tests
-            (lambda _
-              (with-directory-excursion "libclingo/tests"
-                (substitute* "CMakeLists.txt"
-                  (("COMMAND test_clingo" all)
-                   (string-append all
-                                  " -f "
-                                  "\"${CMAKE_CURRENT_SOURCE_DIR}/good.txt\"")))
-                (call-with-output-file "good.txt"
-                  (lambda (port)
-                    (for-each (lambda (test) (format port "~s~%" test))
-                              '("parse-ast-v2" "add-ast-v2" "build-ast-v2"
-                                "unpool-ast-v2" "parse_term"
-                                "propagator" "propgator-sequence-mining"
-                                "symbol" "visitor"))))))))))
+                           "cmake/clingo-config.cmake.in"))))))
     (inputs (list catch2-3 clasp libpotassco))
     (native-inputs (list bison re2c
                          mpark-variant
@@ -465,10 +451,7 @@ (define-public python-clorm
                  (lambda _
                    ;; noclingo tests rely on this being set
                    (setenv "CLORM_NOCLINGO" "1")
-                   (delete-file "tests/test_mypy_query.py")
-                   (substitute* "tests/test_clingo.py"
-                     (("self\\.assertTrue\\(os_called\\)" all)
-                      (string-append "# " all))))))))
+                   (delete-file "tests/test_mypy_query.py"))))))
     (propagated-inputs (list python-clingo))
     (native-inputs (list python-typing-extensions))
     (home-page "https://potassco.org")
@@ -627,14 +610,6 @@ (define-public python-clintest
                (base32
                 "0xzbby9ram55h87ykm652kgm45b8rlhbjc8gjkz308h1jnjllmmy"))))
     (build-system pyproject-build-system)
-    (arguments
-     (list #:phases
-           #~(modify-phases %standard-phases
-               (add-after 'unpack 'delete-failing-tests
-                 (lambda _
-                   ;; XXX: Clingo statistics are broken in dependencies already.
-                   (for-each delete-file '("tests/test_solver.py"
-                                           "tests/test_test.py")))))))
     (inputs (list python-clingo))
     (native-inputs (list python-pytest))
     (home-page "https://potassco.org/clintest/")

base-commit: 01ea5ebc71a5f104af2ed220cb29f88523298ca7
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#71837; Package guix-patches. (Sat, 29 Jun 2024 21:24:02 GMT) Full text and rfc822 format available.

Message #8 received at 71837 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: 71837 <at> debbugs.gnu.org
Subject: [PATCH 2/2] gnu: komikku: Update to 1.46.0.
Date: Sat, 29 Jun 2024 10:51:50 +0200
* gnu/packages/gnome.scm (komikku): Update to 1.46.0.
[source]: Use “https://codeberg.org” for the URL.
[home-page]: Use “https://apps.gnome.org/Komikku”.
---
 gnu/packages/gnome.scm | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 988a39c87b..238d1631ce 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -13510,17 +13510,17 @@ (define-public gnome-builder
 (define-public komikku
   (package
     (name "komikku")
-    (version "1.34.2")
+    (version "1.46.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.com/valos/Komikku/")
+             (url "https://codeberg.org/valos/Komikku/")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "044m3z7h1hi2avx4z6qgjzhgn1fkf1iclxhr4j7pb6flbqvwnxhs"))))
+         "1ggg4hgd1kyc69b06kcgvvjwmz72xgjakva19gs3nrszr4cinank"))))
     (build-system meson-build-system)
     (arguments
      (list
@@ -13580,7 +13580,7 @@ (define-public komikku
            `(,glib "bin")
            gobject-introspection
            pkg-config))
-    (home-page "https://gitlab.com/valos/Komikku")
+    (home-page "https://apps.gnome.org/Komikku")
     (synopsis "Manga reader for GNOME")
     (description "Komikku is an online/offline manga reader for GNOME,
 developed with the aim of being used with the Librem 5 phone.")
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#71837; Package guix-patches. (Sat, 29 Jun 2024 21:47:02 GMT) Full text and rfc822 format available.

Message #11 received at 71837 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: 71837 <at> debbugs.gnu.org
Subject: [PATCH 1/2] gnu: libadwaita: Update to 1.5.2.
Date: Sat, 29 Jun 2024 10:51:34 +0200
* gnu/packages/gnome.scm (libadwaita): Update to 1.5.2.
---
 gnu/packages/gnome.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b4caaf29a7..988a39c87b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -13752,7 +13752,7 @@ (define-public ocrfeeder
 (define-public libadwaita
   (package
     (name "libadwaita")
-    (version "1.4.0")
+    (version "1.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libadwaita/"
@@ -13760,7 +13760,7 @@ (define-public libadwaita
                                   "libadwaita-" version ".tar.xz"))
               (sha256
                (base32
-                "1hj7kxza6263x662v4ffndlz8dhfx19cz3y4iwhnhdflaj50j6p5"))))
+                "05icswk84kf4pbcybv8j9r9n98q1dgr1m7zn6k72p4dlbh0fxyn9"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
-- 
2.45.1





Information forwarded to liliana.prikler <at> gmail.com, maxim.cournoyer <at> gmail.com, vivien <at> planete-kraus.eu, guix-patches <at> gnu.org:
bug#71837; Package guix-patches. (Wed, 03 Jul 2024 19:38:01 GMT) Full text and rfc822 format available.

Message #14 received at 71837 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: 71837 <at> debbugs.gnu.org
Subject: [PATCH v2 1/3] gnu: libadwaita: Update to 1.5.2.
Date: Sat, 29 Jun 2024 10:51:34 +0200
* gnu/packages/gnome.scm (libadwaita): Update to 1.5.2.
---
 gnu/packages/gnome.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b4caaf29a7..988a39c87b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -13752,7 +13752,7 @@ (define-public ocrfeeder
 (define-public libadwaita
   (package
     (name "libadwaita")
-    (version "1.4.0")
+    (version "1.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libadwaita/"
@@ -13760,7 +13760,7 @@ (define-public libadwaita
                                   "libadwaita-" version ".tar.xz"))
               (sha256
                (base32
-                "1hj7kxza6263x662v4ffndlz8dhfx19cz3y4iwhnhdflaj50j6p5"))))
+                "05icswk84kf4pbcybv8j9r9n98q1dgr1m7zn6k72p4dlbh0fxyn9"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases

base-commit: 972c06dc79641864b05590b2cd905cc8b810062b
prerequisite-patch-id: 7c61d3862f582ed6ad89994f2a2204485bb94d5d
prerequisite-patch-id: f6c4adbef94c3035a2c5d772f8d33ba563e43163
prerequisite-patch-id: 195523867e21de90d11bdda7d6c12f10214cc5df
-- 
2.45.2





Information forwarded to liliana.prikler <at> gmail.com, maxim.cournoyer <at> gmail.com, vivien <at> planete-kraus.eu, guix-patches <at> gnu.org:
bug#71837; Package guix-patches. (Wed, 03 Jul 2024 19:38:02 GMT) Full text and rfc822 format available.

Message #17 received at 71837 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: 71837 <at> debbugs.gnu.org
Subject: [PATCH v2 2/3] gnu: webp-pixbuf-loader: Update to 0.2.4.
Date: Wed, 3 Jul 2024 06:24:54 +0200
* gnu/packages/gtk.scm (webp-pixbuf-loader): Update to 0.2.4.
---
 gnu/packages/gtk.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 56763cd835..fb10351849 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -2970,7 +2970,7 @@ (define-public gromit-mpx
 (define-public webp-pixbuf-loader
   (package
     (name "webp-pixbuf-loader")
-    (version "0.0.4")
+    (version "0.2.4")
     (source
      (origin
        (method git-fetch)
@@ -2979,7 +2979,7 @@ (define-public webp-pixbuf-loader
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1kshsz91mirjmnmv796nba1r8jg8a613anhgd38dhh2zmnladcwn"))))
+        (base32 "0dsdkw0i8fg3051653zmz68s068a2w23d708av64afzvav1xvhv0"))))
     (build-system meson-build-system)
     (arguments
      (list
-- 
2.45.2





Information forwarded to liliana.prikler <at> gmail.com, maxim.cournoyer <at> gmail.com, vivien <at> planete-kraus.eu, guix-patches <at> gnu.org:
bug#71837; Package guix-patches. (Wed, 03 Jul 2024 19:39:01 GMT) Full text and rfc822 format available.

Message #20 received at 71837 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: 71837 <at> debbugs.gnu.org
Subject: [PATCH v2 3/3] gnu: komikku: Update to 1.46.0.
Date: Sat, 29 Jun 2024 10:51:50 +0200
* gnu/packages/gnome.scm (komikku): Update to 1.46.0.
[source]: Use “https://codeberg.org” for the URL.
[home-page]: Use “https://apps.gnome.org/Komikku”.
[#:phases]<python-and-gi-wrap>: Also wrap GDK_PIXBUF_MODULE_FILE.
[inputs]: Add webp-pixbuf-loader.
---
 gnu/packages/gnome.scm | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 988a39c87b..452b1f1eef 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -13510,17 +13510,17 @@ (define-public gnome-builder
 (define-public komikku
   (package
     (name "komikku")
-    (version "1.34.2")
+    (version "1.46.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.com/valos/Komikku/")
+             (url "https://codeberg.org/valos/Komikku/")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "044m3z7h1hi2avx4z6qgjzhgn1fkf1iclxhr4j7pb6flbqvwnxhs"))))
+         "1ggg4hgd1kyc69b06kcgvvjwmz72xgjakva19gs3nrszr4cinank"))))
     (build-system meson-build-system)
     (arguments
      (list
@@ -13546,7 +13546,9 @@ (define-public komikku
             (lambda* (#:key outputs #:allow-other-keys)
               (wrap-program (search-input-file outputs "bin/komikku")
                 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
-                `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
+                `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
+                `("GDK_PIXBUF_MODULE_FILE" =
+                  (,(getenv "GDK_PIXBUF_MODULE_FILE")))))))))
     (inputs
      (list bash-minimal
            gtk
@@ -13572,7 +13574,8 @@ (define-public komikku
            python-rarfile
            python-requests
            python-unidecode
-           webkitgtk))
+           webkitgtk
+           webp-pixbuf-loader))
     (native-inputs
      (list blueprint-compiler
            desktop-file-utils
@@ -13580,7 +13583,7 @@ (define-public komikku
            `(,glib "bin")
            gobject-introspection
            pkg-config))
-    (home-page "https://gitlab.com/valos/Komikku")
+    (home-page "https://apps.gnome.org/Komikku")
     (synopsis "Manga reader for GNOME")
     (description "Komikku is an online/offline manga reader for GNOME,
 developed with the aim of being used with the Librem 5 phone.")
-- 
2.45.2





Reply sent to Liliana Marie Prikler <liliana.prikler <at> gmail.com>:
You have taken responsibility. (Sun, 07 Jul 2024 06:19:01 GMT) Full text and rfc822 format available.

Notification sent to Liliana Marie Prikler <liliana.prikler <at> gmail.com>:
bug acknowledged by developer. (Sun, 07 Jul 2024 06:19:02 GMT) Full text and rfc822 format available.

Message #25 received at 71837-done <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: 71837-done <at> debbugs.gnu.org
Subject: Re: [PATCH v2 3/3] gnu: komikku: Update to 1.46.0.
Date: Sun, 07 Jul 2024 08:17:44 +0200
Am Samstag, dem 29.06.2024 um 10:51 +0200 schrieb Liliana Marie
Prikler:
> * gnu/packages/gnome.scm (komikku): Update to 1.46.0.
> [source]: Use “https://codeberg.xn--org-9o0a for the URL.
> [home-page]: Use “https://apps.gnome.org/Komikku”.
> [#:phases]<python-and-gi-wrap>: Also wrap GDK_PIXBUF_MODULE_FILE.
> [inputs]: Add webp-pixbuf-loader.
> ---
Pushed




Information forwarded to guix-patches <at> gnu.org:
bug#71837; Package guix-patches. (Sun, 07 Jul 2024 06:23:02 GMT) Full text and rfc822 format available.

Message #28 received at 71837-done <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: 71837-done <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: clasp: Prevent ID clashes in dependent packages.
Date: Sun, 07 Jul 2024 08:21:35 +0200
Am Samstag, dem 29.06.2024 um 08:53 +0200 schrieb Liliana Marie
Prikler:
> Clasp uses an interesting CRTP pattern to insert statically (i.e.
> compile-time) generated numeric IDs into global fields.  However,
> these templates are instantiated once per shared library---thus,
> whenever a library is linked, new IDs are generated, and the original
> intent (safely type-casting objects across libraries) is lost.  To
> help the linker out, we make sure that these IDs are only
> instantiated in clasp and not when building other libraries.
> 
> * gnu/packages/patches/clasp-hide-event-ids.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Register it here.
> * gnu/packages/clasp.scm (source)[patches]: Add it here.
> (clingo)[#:phases]: Drop ‘skip-failing-tests’.
> (python-clorm)[#:phases]<fix-breaking-tests>: Adjust accordingly.
> (python-clintest): Drop arguments.
> ---
Looks like I got my patch IDs messed up somehow.

Anyhow, this is pushed.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 04 Aug 2024 11:24:12 GMT) Full text and rfc822 format available.

This bug report was last modified 74 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.