diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2023-03-02 15:39:55 -0500 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2023-03-02 16:03:57 -0500 |
commit | 89e5f3f3847b3bfd507ea9f0874a73f99a53cbf9 (patch) | |
tree | ae879badac3c727f4a295a166987abd2b3ba8ad8 /gnu | |
parent | b2200e34886e732f7778093ee2a9e1613bc57965 (diff) | |
download | guix-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.scm | 91 |
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)) |