all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Maxime Devos <maximedevos@telenet.be>
To: Mathieu Othacehe <othacehe@gnu.org>
Cc: 50201@debbugs.gnu.org
Subject: [bug#50201] [PATCH core-updates-frozen 0/52] Support cross-compilation in glib-or-gtk-build-system and fix cross-compilation errors
Date: Fri, 03 Sep 2021 14:35:57 +0200	[thread overview]
Message-ID: <5130a9b285c92995481da3eee481033f0e26a9b2.camel@telenet.be> (raw)
In-Reply-To: <87v93n9jhz.fsf_-_@gnu.org>


[-- Attachment #1.1: Type: text/plain, Size: 528 bytes --]

                                                                      Mathieu Othacehe schreef op ma 30-08-2021 om 14:58 [+0200]:
> Hey,
> 
> > +                         (string-append dir "/_giscanner.cpython-39-"
> > +                                        (normalise-system system) ".so"))
> 
> Won't this be "cpython-310-" or so when we will update the Python
> package definition?

Indeed.  I attached a patch independent of python's version number,
to be squashed in the v2 patch series.

Greetings,
Maxime

[-- Attachment #1.2: 0001-SQUASH-gobject-introspection-C-extension-correction.patch --]
[-- Type: text/x-patch, Size: 3982 bytes --]

From 653b54de7b24db588a6d063beab82ae2218153e5 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Fri, 3 Sep 2021 13:25:10 +0200
Subject: [PATCH] SQUASH! gobject-introspection! C extension correction!

* gnu/packages/glib.scm
  (python-extension-suffix, correct-library-name-phase): New procedures.
  (gobject-introspection)[arguments]<#:phases>{rename-library}: New phase.
---
 gnu/packages/glib.scm | 54 ++++++++++++++++++++++++++++++++-----------
 1 file changed, 41 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 0c2f548f62..6a9c2ac318 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -381,6 +381,42 @@ functions for strings and common data structures.")
                   (string-append doc html))
                  #t)))))))))
 
+(define (python-extension-suffix python triplet)
+  "Determine the suffix for C extensions for PYTHON when compiled
+for TRIPLET."
+  ;; python uses strings like 'x86_64-linux-gnu' instead of
+  ;; 'x86_64-unknown-linux-gnu'.
+  (define normalised-system
+    (string-replace-substring triplet "-unknown-" "-"))
+  (define major.minor (version-major+minor (package-version python)))
+  (define majorminor (string-delete #\. major.minor))
+  (string-append
+    ;; If guix' python package used "--with-pydebug", a #\d would
+    ;; need to be added, likewise "--with-pymalloc" and "--with-wide-unicode"
+    ;; would require a #\m and #\u, see cpython's configure.ac.
+    ".cpython-" majorminor "-" normalised-system
+    (if (target-mingw? triplet)
+        ".dll"
+        ".so")))
+
+(define (correct-library-name-phase python name)
+  "Return a G-exp evaluating to a phase renaming the python extension NAME
+from what Meson thinks its name should be to what python expects its name
+to be.  NAME must not include the platform-specific suffix.  This can only
+be used when cross-compiling."
+  #~(lambda _
+      (define name #$name)
+      (define native-suffix
+        #$(python-extension-suffix python
+                                   (nix-system->gnu-triplet (%current-system))))
+      (define target-suffix
+        #$(python-extension-suffix python (%current-target-system)))
+      (define native-name
+        (string-append name native-suffix))
+      (define target-name
+        (string-append name target-suffix))
+      (rename-file native-name target-name)))
+
 (define gobject-introspection
   (package
     (name "gobject-introspection")
@@ -431,19 +467,11 @@ functions for strings and common data structures.")
                ;; Meson gives python extensions an incorrect name, see
                ;; <https://github.com/mesonbuild/meson/issues/7049>.
                 #~((add-after 'install 'rename-library
-                     (lambda* (#:key build target #:allow-other-keys)
-                       (define dir
-                         (string-append #$output
-                                        "/lib/gobject-introspection/giscanner"))
-                       ;; python uses strings like 'x86_64-linux-gnu', not
-                       ;; 'x86_64-unknown-linux-gnu'.
-                       (define (normalise-system system)
-                         ((@ (ice-9 string-fun) string-replace-substring)
-                          system "-unknown-" "-"))
-                       (define (extension system)
-                         (string-append dir "/_giscanner.cpython-39-"
-                                        (normalise-system system) ".so"))
-                       (rename-file (extension build) (extension target)))))
+                     #$(correct-library-name-phase
+                         (this-package-input "python")
+                         #~(string-append #$output
+                                          "/lib/gobject-introspection/giscanner"
+                                          "/_giscanner"))))
                 #~()))))
     (native-inputs
      `(("glib" ,glib "bin")
-- 
2.33.0


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

  reply	other threads:[~2021-09-03 12:40 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-25 17:55 [bug#50201] [PATCH core-updates-frozen 0/52] Support cross-compilation in glib-or-gtk-build-system and fix cross-compilation errors Maxime Devos
2021-08-25 18:02 ` [bug#50201] [PATCH 01/52] gnu: dbus-glib: Support cross-compilation Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 02/52] gnu: elogind: Make #:configure-flags a G-exp Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 03/52] gnu: elogind: Fix cross-compilation Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 04/52] gnu: libcap: Fix cross-compilation build failures Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 05/52] gnu: perl: Find 'bash' when cross-compiling Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 06/52] gnu: nspr: Adjust to Mozilla cross-compilation conventions Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 07/52] gnu: nspr: Don't retain references to native inputs Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 08/52] gnu: mozjs-60: Fix cross-compilation build errors Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 09/52] gnu: poppler: Find pkg-config when cross-compiling Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 10/52] build-system/meson: Allow 'configure-flags' to be a G-exp Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 11/52] build-system/glib-or-gtk: Support cross-compilaton Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 12/52] gnu: dbus-cairo: Add missing bash-minimal input Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 13/52] gnu: polkit: Prevent cross-compilation build error Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 14/52] gnu: gobject-introspection: Don't build introspection data when cross-compiling Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 15/52] gobject-introspection: Fix inputs " Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 16/52] gobject-introspection: Correct library name " Maxime Devos
2021-08-30 12:58     ` [bug#50201] [PATCH core-updates-frozen 0/52] Support cross-compilation in glib-or-gtk-build-system and fix cross-compilation errors Mathieu Othacehe
2021-09-03 12:35       ` Maxime Devos [this message]
2021-09-19 15:43         ` Mathieu Othacehe
2021-09-19 18:25           ` Maxime Devos
2021-09-20 11:22             ` bug#50201: " Mathieu Othacehe
2021-08-25 18:02   ` [bug#50201] [PATCH 17/52] gnu: atk: Disable introspection when cross-compiling Maxime Devos
2021-08-30 13:00     ` [bug#50201] [PATCH core-updates-frozen 0/52] Support cross-compilation in glib-or-gtk-build-system and fix cross-compilation errors Mathieu Othacehe
2021-08-30 16:45       ` Maxime Devos
2021-08-31  9:49         ` Mathieu Othacehe
2021-09-11 21:30           ` Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 18/52] gnu: bdb: Fix cross-compilation build errors Maxime Devos
2021-08-25 18:02   ` [bug#50201] [PATCH 19/52] gnu: graphene: Don't build introspection data when cross-compiling Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 20/52] gnu: gamin: Recognise aarch64 as architecture " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 21/52] gnu: gamin: Fix 'configure' script " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 22/52] gnu: iso-codes: Move inputs to native-inputs " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 23/52] gnu: heimdal: Fix inputs " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 24/52] gnu: heimdal: Fix linking error " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 25/52] gnu: heimdal: Refer to cross-compiled bash Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 26/52] gnu: heimdal: Use the cross-compiled bash in "su" Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 27/52] gnu: heimdal: Find tools when cross-compiling Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 28/52] gnu: heimdal: Use libcom_err from input " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 29/52] gnu: json-glib: Add missing 'bash-minimal' input Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 30/52] gnu: json-glib: Find docbook inputs when cross-compiling Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 31/52] gnu: json-glib: Don't build gtk documentation " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 32/52] gnu: json-glib: Don't build introspection data " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 33/52] gnu: libthai: Add datrie as native-input " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 34/52] gnu: libdaemon: Support cross-compilation to aarch64-linux-gnu Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 35/52] gnu: avahi: Find 'TARGET-pkg-config' when cross-compiling Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 36/52] gnu: avahi: Use the cross-compiled bash Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 37/52] gnu: at-spi2-core: Don't cross-compile documentation Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 38/52] gnu: at-spi2-core: Find docbook when cross-compiling Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 39/52] gnu: at-spi2-core: Add missing "bash-minimal" input Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 40/52] gnu: xorg: Unify --disable-malloc0-returnsnull code Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 41/52] gnu: libxinerama: Add --disable-malloc0-returnsnull when necessary Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 42/52] gnu: libxi: " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 43/52] gnu: libxrandr: " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 44/52] gnu: libxxf85vm: " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 45/52] gnu: Add pkg-config-for-build Maxime Devos
2021-08-30 13:13     ` [bug#50201] [PATCH core-updates-frozen 0/52] Support cross-compilation in glib-or-gtk-build-system and fix cross-compilation errors Mathieu Othacehe
2021-09-02 14:53       ` Maxime Devos
2021-09-22 19:10         ` Ludovic Courtès
2021-09-23 10:38           ` Maxime Devos
2021-09-23 16:53             ` Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 46/52] gnu: wayland: Find wayland-scanner when cross-compiling Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 47/52] gnu: wayland: Find docbook-xml " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 48/52] gnu: libproxy: Don't run tests " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 49/52] gnu: gdk-pixbuf: Find docbook " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 50/52] gnu: gdk-pixbuf: Add bash-minimal input " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 51/52] gnu: pango: " Maxime Devos
2021-08-25 18:03   ` [bug#50201] [PATCH 52/52] gnu: at-spi2-atk: Don't compile tests " Maxime Devos
2021-08-28 13:33 ` [bug#50201] [PATCH core-updates-frozen 0/52] Support cross-compilation in glib-or-gtk-build-system and fix cross-compilation errors Mathieu Othacehe
2021-08-30 12:16   ` Maxime Devos
2021-08-30 12:30     ` Mathieu Othacehe
2021-08-30 12:19 ` Maxime Devos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5130a9b285c92995481da3eee481033f0e26a9b2.camel@telenet.be \
    --to=maximedevos@telenet.be \
    --cc=50201@debbugs.gnu.org \
    --cc=othacehe@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.