unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
To: 72406@debbugs.gnu.org
Cc: gemmaro.dev@gmail.com, andrew@trop.in,
	cox.katherine.e+guix@gmail.com, liliana.prikler@gmail.com
Subject: [bug#72406] [PATCH emacs-team WIP v4 04/24] build-system: emacs: Handle variants in elpa naming.
Date: Sun, 11 Aug 2024 14:58:44 +0200	[thread overview]
Message-ID: <513c9389023ca1434d3654e034aaaf58e50ddaa8.1723381182.git.liliana.prikler@gmail.com> (raw)
In-Reply-To: <cover.1723381182.git.liliana.prikler@gmail.com>

* guix/build/emacs-build-system.scm (%emacs-prefix): New variable.
(package-name-version->elpa-name-version): Infer the prefix to strip from the
emacs used to compile the package.
---
 guix/build/emacs-build-system.scm | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index aa083c6409..1894ac4c23 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -316,16 +316,29 @@ (define* (validate-compiled-autoloads #:key outputs #:allow-other-keys)
          (autoloads (find-files out "-autoloads.elc$")))
     (emacs-batch-eval (format #f "(mapc #'load '~s)" autoloads))))
 
-(define (emacs-package? name)
-  "Check if NAME correspond to the name of an Emacs package."
-  (string-prefix? "emacs-" name))
+(define %emacs-prefix
+  (make-parameter #f))
 
 (define (package-name-version->elpa-name-version name-ver)
   "Convert the Guix package NAME-VER to the corresponding ELPA name-version
 format.  Essentially drop the prefix used in Guix."
-  (if (emacs-package? name-ver)  ; checks for "emacs-" prefix
-      (string-drop name-ver (string-length "emacs-"))
-      name-ver))
+  ;; Get the preferred emacs prefix
+  (or (%emacs-prefix)
+      (%emacs-prefix
+       (let ((emacs (if (string-prefix? "/" (%emacs)) ; absolute file name
+                        (%emacs)
+                        (which "emacs"))))
+         (string-append
+          (package-name->name+version
+           (strip-store-file-name (dirname (dirname emacs))))
+          "-"))))
+
+  (cond
+   ((string-prefix? (%emacs-prefix) name-ver)
+    (string-drop name-ver (string-length (%emacs-prefix))))
+   ((string-prefix? "emacs-" name-ver)
+    (string-drop name-ver (string-length "emacs-")))
+   (else name-ver)))
 
 (define (store-directory->elpa-name-version store-dir)
   "Given a store directory STORE-DIR return the part of the basename after the
-- 
2.45.2





  parent reply	other threads:[~2024-08-11 13:03 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-31 19:58 [bug#72406] [PATCH emacs-team WIP 0/4] Simplify creation of emacs package variants Liliana Marie Prikler
2024-07-31 18:41 ` [bug#72406] [PATCH emacs-team WIP 2/4] build-system: emacs: Make emacs the default variant Liliana Marie Prikler
2024-07-31 18:42 ` [bug#72406] [PATCH emacs-team WIP 3/4] build-system: emacs: Define common variants Liliana Marie Prikler
2024-07-31 19:54 ` [bug#72406] [PATCH emacs-team WIP 4/4] etc: Provide snippet for defining emacs variants Liliana Marie Prikler
2024-07-31 19:57 ` [bug#72406] [PATCH emacs-team WIP 1/4] build-system: emacs: Define package-with-explicit-emacs Liliana Marie Prikler
2024-08-01  3:23 ` [bug#72406] [PATCH emacs-team WIP 0/4] Simplify creation of emacs package variants Suhail Singh
2024-08-01  4:32   ` Liliana Marie Prikler
2024-08-01  6:02     ` Suhail Singh
2024-08-01 16:54       ` Liliana Marie Prikler
2024-08-01 19:40         ` Suhail Singh
2024-08-11 12:59 ` [bug#72406] [PATCH emacs-team WIP v4 00/24] Build variants for other Emacsen Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 01/24] build-system: emacs: Define package-with-explicit-emacs Liliana Marie Prikler
2024-09-03 15:18     ` Simon Tournier
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 03/24] build-system: emacs: Define common variants Liliana Marie Prikler
2024-09-03 15:21     ` Simon Tournier
2024-09-03 15:39       ` Simon Tournier
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 02/24] build-system: emacs: Make emacs the default variant Liliana Marie Prikler
2024-09-03 15:29     ` Simon Tournier
2024-08-11 12:58   ` Liliana Marie Prikler [this message]
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 05/24] etc: Provide snippet for defining emacs variants Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 06/24] gnu: emacs-libgit: Build variants Liliana Marie Prikler
2024-09-03 15:32     ` Simon Tournier
2024-09-03 16:57       ` Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 10/24] gnu: emacs-fontaine: Reindent Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 07/24] gnu: emacs-eweouz: Build variants Liliana Marie Prikler
2024-09-03 15:47     ` Simon Tournier
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 08/24] gnu: emacs-tablist: Define variants Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 09/24] gnu: emacs-pdf-tools: Build variants Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 14/24] gnu: emacs-geiser: Define variants Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 13/24] gnu: emacs-edit-indirect: " Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 11/24] gnu: emacs-bui: " Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 12/24] gnu: emacs-dash: " Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 19/24] gnu: emacspeak: Build variants Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 20/24] gnu: emacs-xelb: " Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 18/24] [WIP] gnu: emacs-dvc: " Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 15/24] gnu: emacs-geiser-guile: Define variants Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 16/24] gnu: emacs-magit-popup: " Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 17/24] gnu: emacs-guix: Build variants Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 22/24] gnu: emacs-exwm-x: " Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 21/24] gnu: emacs-exwm: " Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 24/24] gnu: Build all the other emacs-* variants Liliana Marie Prikler
2024-08-11 12:58   ` [bug#72406] [PATCH emacs-team WIP v4 23/24] gnu: eless: Build variants Liliana Marie Prikler
2024-09-03 15:51   ` [bug#72406] [PATCH emacs-team WIP v4 00/24] Build variants for other Emacsen Simon Tournier
2024-09-03 16:52     ` Liliana Marie Prikler

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

  List information: https://guix.gnu.org/

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

  git send-email \
    --in-reply-to=513c9389023ca1434d3654e034aaaf58e50ddaa8.1723381182.git.liliana.prikler@gmail.com \
    --to=liliana.prikler@gmail.com \
    --cc=72406@debbugs.gnu.org \
    --cc=andrew@trop.in \
    --cc=cox.katherine.e+guix@gmail.com \
    --cc=gemmaro.dev@gmail.com \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).