guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 36d059847d13ded9255e5e02dae9d9a371805c2c
Author: Ludovic Courtès <[email protected]>
AuthorDate: Thu Oct 16 17:06:49 2025 +0200

    packages: Add ‘define-deprecated-package’.
    
    * gnu/packages/tex.scm (define-deprecated-package): Move to…
    * guix/packages.scm (define-deprecated-package): … here.  Add extra clause 
to
    handle the case where the package name differs from the variable name.
    
    Change-Id: Ie28e6c37a38dfb05e0b7a2530f14c8b07ef3df8b
---
 gnu/packages/tex.scm |  5 -----
 guix/packages.scm    | 23 ++++++++++++++++++++++-
 2 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index ce89ebc881..fd5b71ac39 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -263,11 +263,6 @@
 ;;;
 ;;; Code:
 
-(define-syntax-rule (define-deprecated-package old-name name)
-  "Define OLD-NAME as a deprecated package alias for NAME."
-  (define-deprecated/public old-name name
-    (deprecated-package (symbol->string 'old-name) name)))
-
 (define-public texlive-source
   (package
     (name "texlive-source")
diff --git a/guix/packages.scm b/guix/packages.scm
index 272cb99915..beb889f933 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2024 Ludovic Courtès <[email protected]>
+;;; Copyright © 2012-2025 Ludovic Courtès <[email protected]>
 ;;; Copyright © 2014, 2015, 2017, 2018, 2019 Mark H Weaver <[email protected]>
 ;;; Copyright © 2015 Eric Bavier <[email protected]>
 ;;; Copyright © 2016 Alex Kost <[email protected]>
@@ -116,6 +116,7 @@
             hidden-package?
             package-superseded
             deprecated-package
+            define-deprecated-package
             package-field-location
 
             this-package-input
@@ -793,6 +794,26 @@ object."
     (name old-name)
     (properties `((superseded . ,p)))))
 
+(define-syntax define-deprecated-package
+  (syntax-rules ()
+    "Define OLD-NAME as a deprecated package alias for NAME:
+
+  (define-deprecated-package OLD-NAME NAME)
+
+When the variable name differs from the package name (the 'name' field of the
+package), use the three-argument form like so:
+
+  (define-deprecated-package OLD-NAME OLD-PACKAGE-NAME NAME)
+
+This defines OLD-NAME as a an deprecated alias for NAME, with OLD-PACKAGE-NAME
+(a string) as the name of the package being deprecated."
+    ((_ old-name name)
+     (define-deprecated-package old-name (symbol->string 'old-name)
+       name))
+    ((_ old-name old-package-name name)
+     (define-deprecated/public old-name name
+       (deprecated-package old-package-name name)))))
+
 (define* (field-value-location port field
                                #:optional (file (port-filename port)))
   "Return the source location of the value of FIELD as read from PORT, or #f

Reply via email to