summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-03-02 15:39:55 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-03-02 16:03:57 -0500
commit89e5f3f3847b3bfd507ea9f0874a73f99a53cbf9 (patch)
treeae879badac3c727f4a295a166987abd2b3ba8ad8 /gnu
parentb2200e34886e732f7778093ee2a9e1613bc57965 (diff)
downloadguix-89e5f3f3847b3bfd507ea9f0874a73f99a53cbf9.tar.gz
gnu: make-mozilla-with-l10n: Use the copy-build-system.
Fixes <https://issues.guix.gnu.org/61742>.

* gnu/packages/gnuzilla.scm (make-mozilla-with-l10n): Rewrite to use the
copy-build-system.

Reported-by: Feng Shu <tumashu@163.com>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/gnuzilla.scm91
1 files changed, 48 insertions, 43 deletions
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 5a2e716042..2707fe6230 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -50,8 +50,9 @@
   #:use-module (guix modules)
   #:use-module (guix monads)
   #:use-module (guix utils)
-  #:use-module (guix build-system gnu)
   #:use-module (guix build-system cargo)
+  #:use-module (guix build-system copy)
+  #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages audio)
@@ -1681,51 +1682,55 @@ associated with their name."))
     (package
       (inherit base)
       (name (symbol->string project))
-      (build-system trivial-build-system)
+      ;; Use the copy-build-system, as it provides the necessary UTF-8 locales
+      ;; support.
+      (build-system copy-build-system)
       (arguments
        (list
-        #:modules '((guix build union)
+        #:imported-modules `(,@%copy-build-system-modules
+                             (guix build union))
+        #:modules '((guix build copy-build-system)
+                    (guix build union)
                     (guix build utils))
-        #:builder
-        #~(begin
-            (use-modules (guix build union)
-                         (guix build utils))
-
-            (union-build #$output (list #$base #$l10n-package)
-                         #:create-all-directories? #t)
-
-            (define* (expose name #:optional (proc copy-file)
-                             #:key (source #$base))
-              (let ((dest (string-append #$output "/" name)))
-                (mkdir-p (dirname dest))
-                (proc (string-append source "/" name) dest)))
-
-            (let ((wrapper (string-append "lib/" #$name "/" #$name))
-                  (real-binary (string-append "lib/" #$name "/." #$name
-                                              "-real"))
-                  (desktop-file (string-append "share/applications/"
-                                               #$name ".desktop")))
-              ;; Copy wrapper file.
-              (delete-file (string-append #$output "/" wrapper))
-              (expose wrapper)
-
-              ;; Recreate bin symlink.
-              (delete-file (string-append #$output "/bin/" #$name))
-              (symlink (string-append #$output "/" wrapper)
-                       (string-append #$output "/bin/" #$name))
-
-              ;; Copy actual binary.
-              (delete-file (string-append #$output "/" real-binary))
-              (expose real-binary)
-
-              ;; Copy desktop file.
-              (delete-file (string-append #$output "/" desktop-file))
-              (expose desktop-file)
-
-              ;; Adjust the references in the desktop file and wrapper.
-              (substitute* (list (string-append #$output "/" desktop-file)
-                                 (string-append #$output "/" wrapper))
-                ((#$base) #$output)))))))))
+        #:phases
+        #~(modify-phases %standard-phases
+            (replace 'install
+              (lambda _
+                (union-build #$output (list #$base #$l10n-package)
+                             #:create-all-directories? #t)
+
+                (define* (expose name #:optional (proc copy-file)
+                                 #:key (source #$base))
+                  (let ((dest (string-append #$output "/" name)))
+                    (mkdir-p (dirname dest))
+                    (proc (string-append source "/" name) dest)))
+
+                (let ((wrapper (string-append "lib/" #$name "/" #$name))
+                      (real-binary (string-append "lib/" #$name "/." #$name
+                                                  "-real"))
+                      (desktop-file (string-append "share/applications/"
+                                                   #$name ".desktop")))
+                  ;; Copy wrapper file.
+                  (delete-file (string-append #$output "/" wrapper))
+                  (expose wrapper)
+
+                  ;; Recreate bin symlink.
+                  (delete-file (string-append #$output "/bin/" #$name))
+                  (symlink (string-append #$output "/" wrapper)
+                           (string-append #$output "/bin/" #$name))
+
+                  ;; Copy actual binary.
+                  (delete-file (string-append #$output "/" real-binary))
+                  (expose real-binary)
+
+                  ;; Copy desktop file.
+                  (delete-file (string-append #$output "/" desktop-file))
+                  (expose desktop-file)
+
+                  ;; Adjust the references in the desktop file and wrapper.
+                  (substitute* (list (string-append #$output "/" desktop-file)
+                                     (string-append #$output "/" wrapper))
+                    ((#$base) #$output)))))))))))
 
 (define-public icecat
   (make-mozilla-with-l10n 'icecat icecat-minimal icecat-l10n))