Hi ports@, Below is a diff that makes Tor Browser work on aarch64. Tested on aarch64 and amd64.
Comments or OKs? If you're interested in the details you can read on; otherwise, just skip the part below and go right to the diff. A user previously proposed this already, but I assumed that Tor Browser was carrying some local patches for NSPR and thus we needed the version of NSPR bundled with Tor Browser. However, that turns out not to be the case: $ git clone https://gitlab.torproject.org/tpo/applications/tor-browser.git $ cd tor-browser $ git diff FIREFOX_102_15_0esr_BUILD1..tor-browser-102.15.0esr-12.5-1-build2 nsprpub/ I checked for a few older releases as well, and I didn't see any patches there either. So we don't need the bundled NSPR there. Which is great because the bundled NSPR does not compile on aarch64, even with the patches from devel/nspr integrated. Note that we can't do the same for e.g. NSS, because if you run this you'll see that Tor Browser does indeed have some patches for NSS: $ git diff FIREFOX_102_15_0esr_BUILD1..tor-browser-102.15.0esr-12.5-1-build2 security/nss Caspar Index: meta/tor-browser/Makefile =================================================================== RCS file: /cvs/ports/meta/tor-browser/Makefile,v retrieving revision 1.73 diff -u -p -r1.73 Makefile --- meta/tor-browser/Makefile 6 Sep 2023 09:42:28 -0000 1.73 +++ meta/tor-browser/Makefile 7 Sep 2023 09:33:46 -0000 @@ -3,7 +3,7 @@ COMMENT= Tor Browser meta package MAINTAINER= Caspar Schutijser <cas...@schutijser.com> PKGNAME= tor-browser-12.5.3 -ONLY_FOR_ARCHS = amd64 +ONLY_FOR_ARCHS = aarch64 amd64 RUN_DEPENDS= www/tor-browser/browser>=12.5.3 \ www/tor-browser/noscript>=11.4.26 \ Index: www/tor-browser/Makefile.inc =================================================================== RCS file: /cvs/ports/www/tor-browser/Makefile.inc,v retrieving revision 1.70 diff -u -p -r1.70 Makefile.inc --- www/tor-browser/Makefile.inc 6 Sep 2023 09:42:28 -0000 1.70 +++ www/tor-browser/Makefile.inc 7 Sep 2023 09:33:46 -0000 @@ -7,7 +7,7 @@ TB_VERSION = 12.5.3 TB_PREFIX = tb # keep meta/tor-browser in sync -ONLY_FOR_ARCHS ?= amd64 +ONLY_FOR_ARCHS ?= aarch64 amd64 SUBST_VARS += BROWSER_NAME TB_VERSION Index: www/tor-browser/browser/Makefile =================================================================== RCS file: /cvs/ports/www/tor-browser/browser/Makefile,v retrieving revision 1.116 diff -u -p -r1.116 Makefile --- www/tor-browser/browser/Makefile 6 Sep 2023 09:42:28 -0000 1.116 +++ www/tor-browser/browser/Makefile 7 Sep 2023 09:33:46 -0000 @@ -12,6 +12,7 @@ EXTRACT_SUFX = .tar.xz PKGNAME = ${TB_PREFIX}-browser-${TB_VERSION:S/a/alpha/} DISTNAME = src-firefox-tor-browser-102.15.0esr-12.5-1-build2 +REVISION = 0 FIX_EXTRACT_PERMISSIONS = Yes DISTFILES += ${DISTNAME}.tar.xz \ @@ -22,7 +23,7 @@ SO_VERSION = 8.0 MOZILLA_LIBS = xul clearkey lgpllibs mozavcodec mozavutil mozgtk MOZILLA_LIBS += freebl3 nss3 nssckbi MOZILLA_LIBS += nssutil3 smime3 softokn3 ssl3 -MOZILLA_LIBS += nspr4 mozsqlite3 plc4 plds4 ipcclientcerts +MOZILLA_LIBS += mozsqlite3 ipcclientcerts # mozilla public license for the browser PERMIT_PACKAGE= Yes @@ -36,8 +37,7 @@ MODPY_RUNDEP = No COMPILER = ports-clang -# tor-browser needs built-in nss, sqlite -MOZILLA_USE_BUNDLED_NSPR = Yes +# tor-browser needs built-in nss MOZILLA_USE_BUNDLED_NSS = Yes # 63 requires node because why not #1483595 BUILD_DEPENDS += lang/node Index: www/tor-browser/browser/pkg/PLIST =================================================================== RCS file: /cvs/ports/www/tor-browser/browser/pkg/PLIST,v retrieving revision 1.18 diff -u -p -r1.18 PLIST --- www/tor-browser/browser/pkg/PLIST 6 Sep 2023 09:42:29 -0000 1.18 +++ www/tor-browser/browser/pkg/PLIST 7 Sep 2023 09:33:46 -0000 @@ -203,12 +203,9 @@ lib/${BROWSER_NAME}/fonts/TwemojiMozilla @lib lib/${BROWSER_NAME}/libmozavutil.so.${LIBmozavutil_VERSION} @lib lib/${BROWSER_NAME}/libmozgtk.so.${LIBmozgtk_VERSION} @lib lib/${BROWSER_NAME}/libmozsqlite3.so.${LIBmozsqlite3_VERSION} -@lib lib/${BROWSER_NAME}/libnspr4.so.${LIBnspr4_VERSION} @lib lib/${BROWSER_NAME}/libnss3.so.${LIBnss3_VERSION} @lib lib/${BROWSER_NAME}/libnssckbi.so.${LIBnssckbi_VERSION} @lib lib/${BROWSER_NAME}/libnssutil3.so.${LIBnssutil3_VERSION} -@lib lib/${BROWSER_NAME}/libplc4.so.${LIBplc4_VERSION} -@lib lib/${BROWSER_NAME}/libplds4.so.${LIBplds4_VERSION} @lib lib/${BROWSER_NAME}/libsmime3.so.${LIBsmime3_VERSION} @lib lib/${BROWSER_NAME}/libsoftokn3.so.${LIBsoftokn3_VERSION} @lib lib/${BROWSER_NAME}/libssl3.so.${LIBssl3_VERSION}