guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/06: gnu: icedove: Use gexps.


From: guix-commits
Subject: 02/06: gnu: icedove: Use gexps.
Date: Tue, 11 Oct 2022 07:32:22 -0400 (EDT)

apteryx pushed a commit to branch master
in repository guix.

commit 64e8ed1061ffbb0fd07b41c85faffd06f7d6376a
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Mon Oct 10 20:17:04 2022 -0400

    gnu: icedove: Use gexps.
    
    * gnu/packages/gnuzilla.scm (icedove) [arguments]: Use gexps, adjusting 
phases
    as needed.
---
 gnu/packages/gnuzilla.scm | 425 +++++++++++++++++++++++-----------------------
 1 file changed, 212 insertions(+), 213 deletions(-)

diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 304b98832e..04e283111e 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -1250,214 +1250,214 @@ standards of the IceCat project.")
      `((cpe-name . "thunderbird_esr")))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                              ; no check target
-       #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
-       #:modules ((guix build utils)            ;find-files
+     (list
+      #:tests? #f                             ;no check target
+      #:imported-modules %cargo-utils-modules ;for `generate-all-checksums'
+      #:modules `((guix build utils)          ;find-files
                   (sxml simple)
                   (ice-9 regex)
                   ,@%gnu-build-system-modules)
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'prepare-thunderbird-sources
-           (lambda* (#:key inputs #:allow-other-keys)
-             (mkdir "comm")
-             (copy-recursively (assoc-ref inputs "thunderbird-sources")
-                               "comm")
-             (delete-file "sourcestamp.txt")))
-         (add-after 'patch-source-shebangs 'patch-cargo-checksums
-           (lambda _
-             (use-modules (guix build cargo-utils))
-             (let ((null-hash 
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
-               (for-each (lambda (file)
-                           (format #t "patching checksums in ~a~%" file)
-                           (substitute* file
-                             (("^checksum = \".*\"")
-                              (string-append "checksum = \"" null-hash "\""))))
-                         (find-files "." "Cargo.lock$"))
-               (for-each generate-all-checksums
-                         '("third_party/rust"
-                           "toolkit/library/rust")))))
-         (add-after 'patch-cargo-checksums 'remove-cargo-frozen-flag
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'prepare-thunderbird-sources
+            (lambda* (#:key inputs #:allow-other-keys)
+              (mkdir "comm")
+              (copy-recursively (assoc-ref inputs "thunderbird-sources")
+                                "comm")
+              (delete-file "sourcestamp.txt")))
+          (add-after 'patch-source-shebangs 'patch-cargo-checksums
+            (lambda _
+              (use-modules (guix build cargo-utils))
+              (let ((null-hash 
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934\
+ca495991b7852b855"))
+                (for-each (lambda (file)
+                            (format #t "patching checksums in ~a~%" file)
+                            (substitute* file
+                              (("^checksum = \".*\"")
+                               (string-append "checksum = \"" null-hash 
"\""))))
+                          (find-files "." "Cargo.lock$"))
+                (for-each generate-all-checksums
+                          '("third_party/rust"
+                            "toolkit/library/rust")))))
+          (add-after 'patch-cargo-checksums 'remove-cargo-frozen-flag
             (lambda _
               ;; Remove --frozen flag from cargo invokation, otherwise it'll
               ;; complain that it's not able to change Cargo.lock.
               ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
               (substitute* "build/RunCbindgen.py"
                 (("\"--frozen\",") ""))))
-         ;; Fixes issue where each installation directory generates its own 
profile.
-         ;; See e.g. https://trac.torproject.org/projects/tor/ticket/31457
-         (add-after 'patch-source-shebangs 'fix-profile-setting
-           (lambda _
-             (substitute* "comm/mail/moz.configure"
-               (("MOZ_DEDICATED_PROFILES, True")
-                "MOZ_DEDICATED_PROFILES, False"))))
-         (add-after 'prepare-thunderbird-sources 'rename-to-icedove
-           (lambda _
-             (substitute* "comm/mail/confvars.sh"
-               (("MOZ_APP_NAME=thunderbird")
-                "MOZ_APP_NAME=icedove")
-               (("MOZ_UPDATER=1")
-                "MOZ_UPDATER=0"))
-             ;; Remove branding to comply with Mozilla's trademark policy
-             (with-directory-excursion "comm/mail/branding/nightly"
-               (delete-file "content/about-wordmark.svg")
-               (call-with-output-file "content/about-wordmark.svg"
-                 (lambda (port)
-                   (sxml->xml '(svg (@ (xmlns "http://www.w3.org/2000/svg";)
-                                       (viewBox "0 0 789.1 90.78")
-                                       (width "333")
-                                       (height "48")
-                                       (fill "#fff"))
-                                    (text (@ (x "400") (y "70")
-                                             (text-anchor "middle")
-                                             (font-size "90"))
-                                          "Icedove Daily"))
-                              port)))
-               (substitute* '("locales/en-US/brand.properties"
-                              "locales/en-US/brand.ftl"
-                              "locales/en-US/brand.dtd"
-                              "configure.sh")
-                 (("Thunderbird") "Icedove")
-                 (("mozilla.org") "guix.gnu.org")))
-             ;; Remove other mentions of Thunderbird in user-visible text.
-             (with-directory-excursion "comm/mail/base/content"
-               (substitute* '("overrides/app-license-name.html")
-                 (("Thunderbird") "Icedove")))
-             (with-directory-excursion "comm/mail/components/"
-               (substitute* '("MailGlue.jsm"
-                              "extensions/schemas/addressBook.json"
-                              "extensions/schemas/tabs.json"
-                              "extensions/schemas/cloudFile.json"
-                              
"extensions/schemas/chrome_settings_overrides.json"
-                              "extensions/schemas/windows.json"
-                              "extensions/parent/ext-mail.js"
-                              "im/messages/mail/Info.plist"
-                              "enterprisepolicies/moz.build"
-                              "enterprisepolicies/helpers/moz.build"
-                              "enterprisepolicies/schemas/moz.build")
-                 (("Thunderbird") "Icedove")))
-             (substitute* '("comm/mailnews/base/prefs/content/accountUtils.js"
-                            "comm/mail/base/content/customizeToolbar.js"
-                            "comm/suite/components/customizeToolbar.js")
-               (("AppConstants.MOZ_APP_NAME (.)= \"thunderbird" _ e)
-                (format #f "AppConstants.MOZ_APP_NAME ~a= \"icedove" e)))
-
-             ;; Override addon URLs and settings
-             (substitute* "comm/mail/app/profile/all-thunderbird.js"
-               (("(pref\\(\"extensions.webservice.discoverURL\").*" _ m)
-                (string-append m ", 
\"https://directory.fsf.org/wiki/Icedove\";);"))
-               (("(pref\\(\"extensions.getAddons.search.url\").*" _ m)
-                (string-append m ", \"https://guix.gnu.org/packages\";);"))
-               (("(pref\\(\"extensions.update.enabled\").*" _ m)
-                (string-append m ", false);"))
-               (("(pref\\(\"extensions.systemAddon.update.enabled\").*" _ m)
-                (string-append m ", false);"))
-               (("(pref\\(\"lightweightThemes.update.enabled\").*" _ m)
-                (string-append m ", false);")))))
-         (add-after 'build 'neutralize-store-references
-           (lambda _
-             ;; Mangle the store references to compilers & other build tools in
-             ;; about:buildconfig, reducing Icedove's closure significant.
-             ;; The resulting files are saved in lib/thunderbird/omni.ja
-             (substitute*
-                 ;; Use find because the path "obj-x86_64-pc-linux-gnu" 
contains
-                 ;; the architecture and the system -> more complicated.
-                 (find-files "." "buildconfig.html")
-               (((format #f "(~a/)([0-9a-df-np-sv-z]{32})"
-                         (regexp-quote (%store-directory)))
-                 _ store hash)
-                (string-append store
-                               (string-take hash 8)
-                               "<!-- Guix: not a runtime dependency -->"
-                               (string-drop hash 8))))))
-         (delete 'bootstrap)
-         (replace 'configure
-           (lambda* (#:key inputs outputs configure-flags #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bash (which "bash"))
-                    (abs-srcdir (getcwd))
-                    (srcdir (string-append "../" (basename abs-srcdir)))
-                    (flags `(,(string-append "--prefix=" out)
-                             ,@configure-flags))
-                    (mozconfig (string-append (getcwd) "/.mozconfig")))
-               (setenv "SHELL" bash)
-               (setenv "CONFIG_SHELL" bash)
-               (setenv "QA_CONFIGURE_OPTIONS" ".*")
-               (setenv "MOZBUILD_STATE_PATH"
-                       (string-append (getcwd) "/mach_state"))
-               (setenv "MOZCONFIG"
-                       (string-append (getcwd) "/.mozconfig"))
-
-               (setenv "AR" "llvm-ar")
-               (setenv "NM" "llvm-nm")
-               (setenv "CC" "clang")
-               (setenv "CXX" "clang++")
-
-               (setenv "MOZ_NOSPAM" "1")
-               (setenv "MACH_USE_SYSTEM_PYTHON" "1")
-               (setenv "PYTHON"
-                       (search-input-file inputs "/bin/python"))
-               (setenv "MOZ_BUILD_DATE" ,%icedove-build-id) ; avoid timestamp
-               (setenv "MOZ_APP_NAME" "icedove")
-               (setenv "LDFLAGS" (string-append "-Wl,-rpath="
-                                                (assoc-ref outputs "out")
-                                                "/lib/icedove"))
-               (mkdir-p (string-append (getcwd) "/builddir"))
-               (with-output-to-file mozconfig
-                 (lambda ()
-                   (display
-                    (string-append
-                     "ac_add_options --disable-crashreporter\n"
-                     "ac_add_options --disable-debug\n"
-                     "ac_add_options --disable-debug-symbols\n"
-                     "ac_add_options --disable-elf-hack\n"
-                     "ac_add_options --disable-jit\n"
-                     "ac_add_options --disable-necko-wifi\n"
-                     "ac_add_options --disable-official-branding\n"
-                     "ac_add_options --disable-tests\n"
-                     "ac_add_options --disable-updater\n"
-                     "ac_add_options --disable-webrtc\n"
-                     "ac_add_options --enable-application=comm/mail\n"
-                     "ac_add_options --enable-default-toolkit=\"cairo-gtk3\"\n"
-                     "ac_add_options --enable-optimize\n"
-                     "ac_add_options --enable-pulseaudio\n"
-                     "ac_add_options --enable-release\n"
-                     "ac_add_options --enable-strip\n"
-                     "ac_add_options --enable-system-ffi\n"
-                     "ac_add_options --enable-system-pixman\n"
-                     "ac_add_options --prefix=" out "\n"
-                     "ac_add_options --with-clang-path=" (assoc-ref 
%build-inputs "clang") "/bin/clang\n"
-                     "ac_add_options --with-distribution-id=org.gnu\n"
-                     "ac_add_options --with-libclang-path=" (assoc-ref 
%build-inputs "clang") "/lib\n"
-                     "ac_add_options --with-system-bz2\n"
-                     "ac_add_options --with-system-icu\n"
-                     "ac_add_options --with-system-jpeg\n"
-                     "ac_add_options --with-system-libevent\n"
-                     "ac_add_options --with-system-nspr\n"
-                     ;"ac_add_options --with-system-nss\n"
-                     "ac_add_options --with-system-zlib\n"
-                     "ac_add_options --without-wasm-sandboxed-libraries\n"
-                     "mk_add_options MOZ_MAKE_FLAGS=-j"
-                     (number->string (parallel-job-count)) "\n"))))
-               (display (getcwd))
-               (newline)
-               (display "mach configure")
-               (invoke "./mach" "configure"))))
-         (replace 'build
-           (lambda _ (invoke "./mach" "build")))
-         (replace 'install
-           (lambda _ (invoke "./mach" "install")))
-         ;; Thunderbird doesn't provide any .desktop file.
-         ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1637575
-         (add-after 'install 'install-desktop-file
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (apps (string-append out "/share/applications")))
-               (mkdir-p apps)
-               (with-output-to-file (string-append apps "/icedove.desktop")
-                 (lambda _
-                   (format #t
-                           "[Desktop Entry]~@
+          ;; Fixes issue where each installation directory generates its own
+          ;; profile (see:
+          ;; https://trac.torproject.org/projects/tor/ticket/31457).
+          (add-after 'patch-source-shebangs 'fix-profile-setting
+            (lambda _
+              (substitute* "comm/mail/moz.configure"
+                (("MOZ_DEDICATED_PROFILES, True")
+                 "MOZ_DEDICATED_PROFILES, False"))))
+          (add-after 'prepare-thunderbird-sources 'rename-to-icedove
+            (lambda _
+              (substitute* "comm/mail/confvars.sh"
+                (("MOZ_APP_NAME=thunderbird")
+                 "MOZ_APP_NAME=icedove")
+                (("MOZ_UPDATER=1")
+                 "MOZ_UPDATER=0"))
+              ;; Remove branding to comply with Mozilla's trademark policy
+              (with-directory-excursion "comm/mail/branding/nightly"
+                (delete-file "content/about-wordmark.svg")
+                (call-with-output-file "content/about-wordmark.svg"
+                  (lambda (port)
+                    (sxml->xml '(svg (@ (xmlns "http://www.w3.org/2000/svg";)
+                                        (viewBox "0 0 789.1 90.78")
+                                        (width "333")
+                                        (height "48")
+                                        (fill "#fff"))
+                                     (text (@ (x "400") (y "70")
+                                              (text-anchor "middle")
+                                              (font-size "90"))
+                                           "Icedove Daily"))
+                               port)))
+                (substitute* '("locales/en-US/brand.properties"
+                               "locales/en-US/brand.ftl"
+                               "locales/en-US/brand.dtd"
+                               "configure.sh")
+                  (("Thunderbird") "Icedove")
+                  (("mozilla.org") "guix.gnu.org")))
+              ;; Remove other mentions of Thunderbird in user-visible text.
+              (with-directory-excursion "comm/mail/base/content"
+                (substitute* '("overrides/app-license-name.html")
+                  (("Thunderbird") "Icedove")))
+              (with-directory-excursion "comm/mail/components/"
+                (substitute* '("MailGlue.jsm"
+                               "extensions/schemas/addressBook.json"
+                               "extensions/schemas/tabs.json"
+                               "extensions/schemas/cloudFile.json"
+                               
"extensions/schemas/chrome_settings_overrides.json"
+                               "extensions/schemas/windows.json"
+                               "extensions/parent/ext-mail.js"
+                               "im/messages/mail/Info.plist"
+                               "enterprisepolicies/moz.build"
+                               "enterprisepolicies/helpers/moz.build"
+                               "enterprisepolicies/schemas/moz.build")
+                  (("Thunderbird") "Icedove")))
+              (substitute* '("comm/mailnews/base/prefs/content/accountUtils.js"
+                             "comm/mail/base/content/customizeToolbar.js"
+                             "comm/suite/components/customizeToolbar.js")
+                (("AppConstants.MOZ_APP_NAME (.)= \"thunderbird" _ e)
+                 (format #f "AppConstants.MOZ_APP_NAME ~a= \"icedove" e)))
+
+              ;; Override addon URLs and settings
+              (substitute* "comm/mail/app/profile/all-thunderbird.js"
+                (("(pref\\(\"extensions.webservice.discoverURL\").*" _ m)
+                 (string-append m ", 
\"https://directory.fsf.org/wiki/Icedove\";);"))
+                (("(pref\\(\"extensions.getAddons.search.url\").*" _ m)
+                 (string-append m ", \"https://guix.gnu.org/packages\";);"))
+                (("(pref\\(\"extensions.update.enabled\").*" _ m)
+                 (string-append m ", false);"))
+                (("(pref\\(\"extensions.systemAddon.update.enabled\").*" _ m)
+                 (string-append m ", false);"))
+                (("(pref\\(\"lightweightThemes.update.enabled\").*" _ m)
+                 (string-append m ", false);")))))
+          (add-after 'build 'neutralize-store-references
+            (lambda _
+              ;; Mangle the store references to compilers & other build tools 
in
+              ;; about:buildconfig, reducing Icedove's closure significant.
+              ;; The resulting files are saved in lib/thunderbird/omni.ja
+              (substitute*
+                  ;; Use find because the path "obj-x86_64-pc-linux-gnu" 
contains
+                  ;; the architecture and the system -> more complicated.
+                  (find-files "." "buildconfig.html")
+                (((format #f "(~a/)([0-9a-df-np-sv-z]{32})"
+                          (regexp-quote (%store-directory)))
+                  _ store hash)
+                 (string-append store
+                                (string-take hash 8)
+                                "<!-- Guix: not a runtime dependency -->"
+                                (string-drop hash 8))))))
+          (delete 'bootstrap)
+          (replace 'configure
+            (lambda* (#:key inputs configure-flags #:allow-other-keys)
+              (let* ((bash (which "bash"))
+                     (abs-srcdir (getcwd))
+                     (srcdir (string-append "../" (basename abs-srcdir)))
+                     (flags `(,(string-append "--prefix=" #$output)
+                              ,@configure-flags))
+                     (mozconfig (string-append (getcwd) "/.mozconfig")))
+                (setenv "SHELL" bash)
+                (setenv "CONFIG_SHELL" bash)
+                (setenv "QA_CONFIGURE_OPTIONS" ".*")
+                (setenv "MOZBUILD_STATE_PATH"
+                        (string-append (getcwd) "/mach_state"))
+                (setenv "MOZCONFIG"
+                        (string-append (getcwd) "/.mozconfig"))
+
+                (setenv "AR" "llvm-ar")
+                (setenv "NM" "llvm-nm")
+                (setenv "CC" "clang")
+                (setenv "CXX" "clang++")
+
+                (setenv "MOZ_NOSPAM" "1")
+                (setenv "MACH_USE_SYSTEM_PYTHON" "1")
+                (setenv "PYTHON"
+                        (search-input-file inputs "/bin/python"))
+                (setenv "MOZ_BUILD_DATE" #$%icedove-build-id) ; avoid timestamp
+                (setenv "MOZ_APP_NAME" "icedove")
+                (setenv "LDFLAGS" (string-append "-Wl,-rpath=" #$output
+                                                 "/lib/icedove"))
+                (mkdir-p (string-append (getcwd) "/builddir"))
+                (with-output-to-file mozconfig
+                  (lambda ()
+                    (display
+                     (string-append
+                      "ac_add_options --disable-crashreporter\n"
+                      "ac_add_options --disable-debug\n"
+                      "ac_add_options --disable-debug-symbols\n"
+                      "ac_add_options --disable-elf-hack\n"
+                      "ac_add_options --disable-jit\n"
+                      "ac_add_options --disable-necko-wifi\n"
+                      "ac_add_options --disable-official-branding\n"
+                      "ac_add_options --disable-tests\n"
+                      "ac_add_options --disable-updater\n"
+                      "ac_add_options --disable-webrtc\n"
+                      "ac_add_options --enable-application=comm/mail\n"
+                      "ac_add_options 
--enable-default-toolkit=\"cairo-gtk3\"\n"
+                      "ac_add_options --enable-optimize\n"
+                      "ac_add_options --enable-pulseaudio\n"
+                      "ac_add_options --enable-release\n"
+                      "ac_add_options --enable-strip\n"
+                      "ac_add_options --enable-system-ffi\n"
+                      "ac_add_options --enable-system-pixman\n"
+                      "ac_add_options --prefix=" #$output "\n"
+                      "ac_add_options --with-clang-path=" (assoc-ref 
%build-inputs "clang") "/bin/clang\n"
+                      "ac_add_options --with-distribution-id=org.gnu\n"
+                      "ac_add_options --with-libclang-path=" (assoc-ref 
%build-inputs "clang") "/lib\n"
+                      "ac_add_options --with-system-bz2\n"
+                      "ac_add_options --with-system-icu\n"
+                      "ac_add_options --with-system-jpeg\n"
+                      "ac_add_options --with-system-libevent\n"
+                      "ac_add_options --with-system-nspr\n"
+                                        ;"ac_add_options --with-system-nss\n"
+                      "ac_add_options --with-system-zlib\n"
+                      "ac_add_options --without-wasm-sandboxed-libraries\n"
+                      "mk_add_options MOZ_MAKE_FLAGS=-j"
+                      (number->string (parallel-job-count)) "\n"))))
+                (display (getcwd))
+                (newline)
+                (display "mach configure")
+                (invoke "./mach" "configure"))))
+          (replace 'build
+            (lambda _ (invoke "./mach" "build")))
+          (replace 'install
+            (lambda _ (invoke "./mach" "install")))
+          ;; Thunderbird doesn't provide any .desktop file.
+          ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1637575
+          (add-after 'install 'install-desktop-file
+            (lambda _
+              (let ((apps (string-append #$output "/share/applications")))
+                (mkdir-p apps)
+                (with-output-to-file (string-append apps "/icedove.desktop")
+                  (lambda _
+                    (format #t
+                            "[Desktop Entry]~@
                             Name=Icedove~@
                             Exec=~a/bin/icedove~@
                             Icon=icedove~@
@@ -1471,20 +1471,19 @@ standards of the IceCat project.")
                             [Desktop Action ComposeMessage]~@
                             Name=Write new message~@
                             Exec=~@*~a/bin/icedove -compose~%"
-                           out))))))
-         (add-after 'install 'wrap-program
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (lib (string-append out "/lib"))
-                    (gtk (assoc-ref inputs "gtk+"))
-                    (gtk-share (string-append gtk "/share"))
-                    (pulseaudio (assoc-ref inputs "pulseaudio"))
-                    (pulseaudio-lib (string-append pulseaudio "/lib"))
-                    (eudev (assoc-ref inputs "eudev"))
-                    (eudev-lib (string-append eudev "/lib")))
-               (wrap-program (car (find-files lib "^icedove$"))
-                 `("XDG_DATA_DIRS" prefix (,gtk-share))
-                 `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib 
,eudev-lib)))))))))
+                            #$output))))))
+          (add-after 'install 'wrap-program
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let* ((lib (string-append #$output "/lib"))
+                     (gtk #$(this-package-input "gtk+"))
+                     (gtk-share (string-append gtk "/share"))
+                     (pulseaudio #$(this-package-input "pulseaudio"))
+                     (pulseaudio-lib (string-append pulseaudio "/lib"))
+                     (eudev #$(this-package-input "eudev"))
+                     (eudev-lib (string-append eudev "/lib")))
+                (wrap-program (car (find-files lib "^icedove$"))
+                  `("XDG_DATA_DIRS" prefix (,gtk-share))
+                  `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib 
,eudev-lib)))))))))
     (inputs
      (list alsa-lib
            bzip2



reply via email to

[Prev in Thread] Current Thread [Next in Thread]