unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Hilton Chain <hako@ultrarare.space>
To: 74790@debbugs.gnu.org
Cc: "Hilton Chain" <hako@ultrarare.space>,
	"André Batista" <nandre@riseup.net>,
	"Clément Lassieur" <clement@lassieur.org>,
	"Jonathan Brielmaier" <jonathan.brielmaier@web.de>,
	"Mark H Weaver" <mhw@netris.org>, "Ian Eure" <ian@retrospec.tv>
Subject: [bug#74790] [PATCH] gnu: librewolf: Support Guix icecat browser extensions.
Date: Wed, 11 Dec 2024 23:07:28 +0800	[thread overview]
Message-ID: <fbe13c2e0bd1f1bd9c2f49398ade9d45480774ba.1733929563.git.hako@ultrarare.space> (raw)

* gnu/packages/patches/librewolf-use-system-wide-dir.patch: New file.
* gnu/local.mk (dist_patch_DATA): Regisiter it.
* gnu/packages/librewolf.scm (make-librewolf-source)[patches]: Add it along with
torbrowser-compare-paths.patch.
(librewolf)[native-search-paths]: Add ICECAT_SYSTEM_DIR.

Change-Id: I8609d25a7e2725ad94ab257d720326639eb06778
---

Reused torbrowser-compare-paths.patch, mind it for future updates. :)

 gnu/local.mk                                  |  1 +
 gnu/packages/librewolf.scm                    | 11 +++++-
 .../librewolf-use-system-wide-dir.patch       | 37 +++++++++++++++++++
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/librewolf-use-system-wide-dir.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 2d85c485f6..0faa3a70a9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1635,6 +1635,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/libgpg-error-hurd64.patch		\
   %D%/packages/patches/libguestfs-syms.patch            	\
   %D%/packages/patches/libobjc2-unbundle-robin-map.patch	\
+  %D%/packages/patches/librewolf-use-system-wide-dir.patch	\
   %D%/packages/patches/libvirt-add-install-prefix.patch	\
   %D%/packages/patches/libziparchive-add-includes.patch		\
   %D%/packages/patches/lightdm-arguments-ordering.patch		\
diff --git a/gnu/packages/librewolf.scm b/gnu/packages/librewolf.scm
index 5d432cfad8..7ea14c9182 100644
--- a/gnu/packages/librewolf.scm
+++ b/gnu/packages/librewolf.scm
@@ -188,7 +188,11 @@ (define* (make-librewolf-source #:key version firefox-hash librewolf-hash)
                (invoke "make" "all")
                (copy-file (string-append "librewolf-" #$version
                                          ".source.tar.gz")
-                          #$output))))))))
+                          #$output)))))
+      (patches
+       (search-patches
+        "torbrowser-compare-paths.patch"
+        "librewolf-use-system-wide-dir.patch")))))

 ;; Define the versions of rust needed to build librewolf, trying to match
 ;; upstream.  See the file taskcluster/ci/toolchain/rust.yml at
@@ -705,6 +709,11 @@ (define-public librewolf
                          rust-cbindgen-0.26
                          which
                          yasm))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "ICECAT_SYSTEM_DIR")
+            (separator #f)              ;single entry
+            (files '("lib/icecat")))))
     (home-page "https://librewolf.net/")
     (synopsis
      "Custom version of Firefox, focused on privacy, security and freedom")
diff --git a/gnu/packages/patches/librewolf-use-system-wide-dir.patch b/gnu/packages/patches/librewolf-use-system-wide-dir.patch
new file mode 100644
index 0000000000..c8a4d8cb12
--- /dev/null
+++ b/gnu/packages/patches/librewolf-use-system-wide-dir.patch
@@ -0,0 +1,37 @@
+Replace "/usr/lib/librewolf" (the system-wide directory for extensions and
+native manifests) with "$ICECAT_SYSTEM_DIR".
+
+diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
+index 0cbc825738..5c0bf6ae7f 100644
+--- a/toolkit/xre/nsXREDirProvider.cpp
++++ b/toolkit/xre/nsXREDirProvider.cpp
+@@ -280,25 +280,11 @@ nsresult nsXREDirProvider::GetBackgroundTasksProfilesRootDir(
+ static nsresult GetSystemParentDirectory(nsIFile** aFile) {
+   nsresult rv;
+   nsCOMPtr<nsIFile> localDir;
+-#  if defined(XP_MACOSX)
+-  rv = GetOSXFolderType(kOnSystemDisk, kApplicationSupportFolderType,
+-                        getter_AddRefs(localDir));
+-  if (NS_SUCCEEDED(rv)) {
+-    rv = localDir->AppendNative("LibreWolf"_ns);
+-  }
+-#  else
+-  constexpr auto dirname =
+-#    ifdef HAVE_USR_LIB64_DIR
+-      "/usr/lib64/librewolf"_ns
+-#    elif defined(__OpenBSD__) || defined(__FreeBSD__)
+-      "/usr/local/lib/librewolf"_ns
+-#    else
+-      "/usr/lib/librewolf"_ns
+-#    endif
+-      ;
+-  rv = NS_NewNativeLocalFile(dirname, getter_AddRefs(localDir));
+-#  endif
++  const char* systemParentDir = getenv("ICECAT_SYSTEM_DIR");
++  if (!systemParentDir || !*systemParentDir) return NS_ERROR_FAILURE;
+
++  rv = NS_NewNativeLocalFile(nsDependentCString(systemParentDir),
++                             getter_AddRefs(localDir));
+   if (NS_SUCCEEDED(rv)) {
+     localDir.forget(aFile);
+   }

base-commit: c2e2b0376b82a503e064fa826d1b153d94bf0b06
prerequisite-patch-id: f132b4af7b85df465998e4f459bf729f8b66f320
prerequisite-patch-id: ecd87e69b7aebebd64256db106ed96dc12f6c12d
prerequisite-patch-id: f27c33b6c7f5dcb37c36551ecde29f1f0c734935
prerequisite-patch-id: fc6ad5af54f75869a657c065c86b262d74a1efff
prerequisite-patch-id: 1665e62d1990a460bc5679bc89d600e94bab407a
prerequisite-patch-id: e1cd1fdc5036bbd74d338df158ae7c348b180cf4
prerequisite-patch-id: bea29848814b393ccd3619f0a744ee36632ac5df
--
2.46.0




             reply	other threads:[~2024-12-11 15:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-11 15:07 Hilton Chain [this message]
2024-12-11 20:28 ` [bug#74790] [PATCH] gnu: librewolf: Support Guix icecat browser extensions Clément Lassieur

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fbe13c2e0bd1f1bd9c2f49398ade9d45480774ba.1733929563.git.hako@ultrarare.space \
    --to=hako@ultrarare.space \
    --cc=74790@debbugs.gnu.org \
    --cc=clement@lassieur.org \
    --cc=ian@retrospec.tv \
    --cc=jonathan.brielmaier@web.de \
    --cc=mhw@netris.org \
    --cc=nandre@riseup.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).