diff options
author | Hanketsu <hanketsu@egregore.fun> | 2024-10-27 16:33:38 +0100 |
---|---|---|
committer | Hanketsu <hanketsu@egregore.fun> | 2025-06-13 00:04:37 +0200 |
commit | f6a1b2c445dad6bdb1eb157e0a1a0096dc1d27c3 (patch) | |
tree | 5ab1350690fd7d6d05314625a31f0d17e5301872 | |
parent | 8055abc420c01ad7ce2fbd3dd2d629444e893b01 (diff) |
battering: palemoon: Manage brandings.
* battering/packages/palemoon.scm (make-palemoon): Handle different brandings.
* battering/packages/palemoon.scm (make-palemoon): Fix the new tab action.
* battering/packages/palemoon.scm (make-palemoon) <#:phases>['install-branding]: New phase.
-rw-r--r-- | battering/packages/palemoon.scm | 129 |
1 files changed, 74 insertions, 55 deletions
diff --git a/battering/packages/palemoon.scm b/battering/packages/palemoon.scm index 6b20c26..2611aea 100644 --- a/battering/packages/palemoon.scm +++ b/battering/packages/palemoon.scm @@ -31,7 +31,9 @@ #:use-module (gnu packages xorg)) -(define* (make-palemoon #:key (with-gtk3? #f)) +(define* (make-palemoon #:key + (with-gtk3? #f) + (branding "official")) (package (name "palemoon") (version "33.4.0.1") @@ -85,6 +87,7 @@ gconf)) (arguments (let* ((gtk-version (if with-gtk3? "gtk3" "gtk2")) + (branding-dir (format #f "~a/branding/~a" name branding)) (distdir (format #f "obj-~a/dist" (string-replace-substring @@ -92,7 +95,7 @@ %host-type) "unknown" "pc"))) - (dist-tarball + (tarball-dist (format #f "~a/~a-~a.~a-~a.tar.xz" distdir name @@ -102,56 +105,56 @@ (string-split (or (%current-target-system) (%current-system)) #\-)) "-") - gtk-version)) - (dist-branding - (format #f "~a/branding" distdir))) + gtk-version))) (list #:tests? #f - #:configure-flags #~(list #$(string-append "--enable-application=" name) - "--enable-appcompat-guid" - "--enable-av1" - #$(string-append "--enable-default-toolkit=cairo-" gtk-version) - "--enable-devtools" - "--enable-jemalloc" - "--enable-jxl" - "--enable-more-deterministic" - "--enable-necko-wifi" - "--enable-official-branding" ;; Official branding. - "--enable-optimize=\"-O2 -w\"" - "--enable-strip" - "--enable-system-ffi" - "--enable-system-pixman" - "--disable-debug" - "--disable-debug-symbols" - "--disable-elf-hack" - "--disable-gamepad" - "--disable-gold" - "--disable-tests" - "--disable-updater" - "--disable-webrtc" - ;; "--with-gl-provider=EGL" - "--with-pthreads" - "--with-x" - ;; Avoid bundled libraries. - ;; UNBUNDLE-ME! "--enable-system-sqlite" - ;; UNBUNDLE-ME! "--with-system-bz2" - ;; UNBUNDLE-ME! "--with-system-graphite2" - ;; UNBUNDLE-ME! "--with-system-harfbuzz" - ;; UNBUNDLE-ME! "--with-system-libevent" - ;; UNBUNDLE-ME! "--with-system-libvpx" - ;; UNBUNDLE-ME! "--with-system-nss" ; pending upgrade of 'nss' to 3.90 - ;; UNBUNDLE-ME! "--with-system-ogg" - ;; UNBUNDLE-ME! "--with-system-theora" ; wants theora-1.2, not yet released - ;; UNBUNDLE-ME! "--with-system-vorbis" - ;; UNBUNDLE-ME! "--with-system-jpeg" ;must be libjpeg-turbo - ;; UNBUNDLE-ME! "--with-system-zlib" - ;; UNBUNDLE-ME! "--with-system-icu" - ;; UNBUNDLE-ME! "--with-system-png" ;must be libpng-apng - #$(if with-gtk3? ;; NPAPI requires gtk2. It's for Adobe Flash and Silverlight. - "--disable-npapi" - "--enable-npapi") - #$(if with-gtk3? ;; TODO: find a way to link atk_bridge_adaptor_init - "--disable-accessibility" - "--enable-accessibility")) + #:configure-flags #~'(#$(string-append "--enable-application=" name) + "--enable-appcompat-guid" + "--enable-av1" + #$(string-append "--enable-default-toolkit=cairo-" gtk-version) + "--enable-devtools" + "--enable-jemalloc" + "--enable-jxl" + "--enable-more-deterministic" + "--enable-necko-wifi" + "--enable-official-branding" ;; Official branding. + #$(string-append "--with-branding=" branding-dir) + "--enable-optimize=\"-O2 -w\"" + "--enable-strip" + "--enable-system-ffi" + "--enable-system-pixman" + "--disable-debug" + "--disable-debug-symbols" + "--disable-debug-js-modules" + "--disable-elf-hack" + "--disable-gamepad" + "--disable-gold" + "--disable-tests" + "--disable-updater" + "--disable-webrtc" + ;; "--with-gl-provider=EGL" + "--with-pthreads" + "--with-x" + ;; Avoid bundled libraries. + ;; UNBUNDLE-ME! "--enable-system-sqlite" + ;; UNBUNDLE-ME! "--with-system-bz2" + ;; UNBUNDLE-ME! "--with-system-graphite2" + ;; UNBUNDLE-ME! "--with-system-harfbuzz" + ;; UNBUNDLE-ME! "--with-system-libevent" + ;; UNBUNDLE-ME! "--with-system-libvpx" + ;; UNBUNDLE-ME! "--with-system-nss" ; pending upgrade of 'nss' to 3.90 + ;; UNBUNDLE-ME! "--with-system-ogg" + ;; UNBUNDLE-ME! "--with-system-theora" ; wants theora-1.2, not yet released + ;; UNBUNDLE-ME! "--with-system-vorbis" + ;; UNBUNDLE-ME! "--with-system-jpeg" ;must be libjpeg-turbo + ;; UNBUNDLE-ME! "--with-system-zlib" + ;; UNBUNDLE-ME! "--with-system-icu" + ;; UNBUNDLE-ME! "--with-system-png" ;must be libpng-apng + #$(if with-gtk3? ;; NPAPI requires gtk2. It's for Adobe Flash and Silverlight. + "--disable-npapi" + "--enable-npapi") + #$(if with-gtk3? ;; TODO: find a way to link atk_bridge_adaptor_init + "--disable-accessibility" + "--enable-accessibility")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'fix-prefs @@ -176,8 +179,8 @@ ;; Switch the page from the properties to something local (("(https?://)start.palemoon.org(/?)" all https slash) "about:home")) (substitute* "palemoon/branding/official/palemoon.desktop" - ;; Remove the -new-tab from the desktop file (it opens the same page) - (("^Exec=palemoon.*") "Exec=palemoon")) + ;; New tab should open the user's specified "New Tab" page, not the palemoon start page. + (("^Exec=palemoon -new-tab .*") "Exec=palemoon -new-tab")) (substitute* '("palemoon/branding/shared/pref/preferences.inc" "palemoon/branding/unofficial/pref/palemoon-branding.js") ;; Remove the startup.homepage_welcome_url preference @@ -225,14 +228,30 @@ (bin (string-append #$output "/bin"))) (mkdir-p lib) (mkdir-p bin) - (invoke tar "xJpf" #$dist-tarball "-C" lib) + (invoke tar "xJpf" #$tarball-dist "-C" lib) (symlink (format #f "~a/~a/~a" lib #$name #$name) (format #f "~a/~a" bin #$name))))) (add-after 'install 'wrap-program (lambda* (#:key inputs #:allow-other-keys) (wrap-program (format #f "~a/lib/~a/~a" #$output #$name #$name) `("GDK_BACKEND" = ("x11")) - `("MOZ_ENABLE_WAYLAND" = ("0"))))))))) + `("MOZ_ENABLE_WAYLAND" = ("0"))))) + (add-after 'install 'install-branding + (lambda* (#:key outputs #:allow-other-keys) + (install-file #$(format #f "~a/branding/official/~a.desktop" name name) + (string-append #$output "/share/applications/")) + (for-each (lambda (size) + (let ((dir (format #f "~a/share/icons/hicolor/~ax~a/apps" #$output size size))) + (mkdir-p dir) + (copy-file + (format #f "~a/default~a.png" #$branding-dir size) + (in-vicinity dir (format #f "~a.png" #$name))))) + '(16 32 48)) + (let* ((dir (format #f "~a/share/icons/hicolor/128x128/apps" #$output))) + (mkdir-p dir) + (copy-file + (format #f "~a/mozicon128.png" #$branding-dir) + (in-vicinity dir (format #f "~a.png" #$name)))))))))) (home-page "https://palemoon.org") (synopsis "Independent browser derived from Firefox/Mozilla community code") (description "Pale Moon is an Open Source, Goanna-based web browser.") |