diff options
author | Vladislav Nepogodin | 2021-05-10 23:35:45 +0400 |
---|---|---|
committer | Vladislav Nepogodin | 2021-05-10 23:35:45 +0400 |
commit | a9b58a4cf476d27037d7fd4f3e66395ca0b7e9f5 (patch) | |
tree | 84ca33d2339ca1d8c3579a9dda62d955321b6fa2 | |
download | aur-a9b58a4cf476d27037d7fd4f3e66395ca0b7e9f5.tar.gz |
Rename
-rw-r--r-- | .SRCINFO | 89 | ||||
-rw-r--r-- | PKGBUILD | 352 | ||||
-rw-r--r-- | arm.patch | 12 | ||||
-rw-r--r-- | build-arm-libopus.patch | 12 | ||||
-rw-r--r-- | builtin_js.patch | 21 | ||||
-rw-r--r-- | context-menu.patch | 22 | ||||
-rw-r--r-- | librewolf-nightly.desktop | 340 | ||||
-rw-r--r-- | librewolf-nightly.install | 38 | ||||
-rw-r--r-- | mozilla-vpn-ad.patch | 16 | ||||
-rw-r--r-- | remove_addons.patch | 74 |
10 files changed, 976 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..0bb5bce9fe32 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,89 @@ +pkgbase = librewolf-hg + pkgdesc = Community-maintained fork of Firefox, focused on privacy, security and freedom. (nightly edition) + pkgver = r646875.a6861c17708e + pkgrel = 1 + url = https://librewolf-community.gitlab.io/ + install = librewolf-nightly.install + arch = x86_64 + arch = aarch64 + license = MPL + license = GPL + license = LGPL + makedepends = unzip + makedepends = zip + makedepends = diffutils + makedepends = yasm + makedepends = mesa + makedepends = imake + makedepends = inetutils + makedepends = ccache + makedepends = rust + makedepends = xorg-server-xwayland + makedepends = xorg-server-xvfb + makedepends = autoconf2.13 + makedepends = mercurial + makedepends = clang + makedepends = llvm + makedepends = jack + makedepends = gtk2 + makedepends = nodejs + makedepends = cbindgen + makedepends = nasm + makedepends = python-setuptools + makedepends = python-psutil + makedepends = python-zstandard + makedepends = git + makedepends = binutils + makedepends = lld + depends = gtk3 + depends = libxt + depends = mime-types + depends = dbus-glib + depends = ffmpeg + depends = nss-hg + depends = ttf-font + depends = libpulse + depends = libvpx + depends = libjpeg + depends = zlib + depends = icu + depends = libevent + depends = pipewire + optdepends = networkmanager: Location detection via available WiFi networks + optdepends = libnotify: Notification integration + optdepends = pulseaudio: Audio support + optdepends = speech-dispatcher: Text-to-Speech + optdepends = hunspell-en_US: Spell checking, American English + optdepends = libappindicator-gtk3: Global menu support for GTK apps + optdepends = appmenu-gtk-module: Appmenu for GTK only + optdepends = plasma5-applets-window-appmenu: Appmenu for Plasma only + options = !emptydirs + options = !makeflags + options = !strip + backup = usr/lib/librewolf-nightly/librewolf.cfg + backup = usr/lib/librewolf-nightly/distribution/policies.json + source = hg+https://hg.mozilla.org/mozilla-unified#revision=autoland + source = librewolf-nightly.desktop + source = git+https://gitlab.com/vnepogodin/librewolf-common.git + source = git+https://gitlab.com/vnepogodin/librewolf-settings.git + source = remove_addons.patch + source = context-menu.patch + source = mozilla-vpn-ad.patch + source = builtin_js.patch + sha512sums = SKIP + sha512sums = 0d1d64832ae34a0c7bbb9e37eac48b9b3830481a0e0aa4c20321a1408a4a20b2b2045d24d8ae0d002895291c6f7d988cce16b1607ee73778a62d7f7d9143a248 + sha512sums = SKIP + sha512sums = SKIP + sha512sums = 861e692daf2be7239eb6b61435688a7abed2bef198067f5b3a9c1a44d8316d1e547c06e1bfb45be402c4c38b1bf13018ba594d433c1b70da6296bd5b90b0fbe3 + sha512sums = 5f7da8d54065c009f94c60eb9aa99d4d44d75b27800bcad5e9f2a365e0c853cb234c871c54855522598b1fe26669bd42a302705ac385d536c90f4ec199cf1df6 + sha512sums = 43d008c63a6b90a3710c4e1bf6ccebcb0987316213fa993fd1bd4b47d9a5d553f51471467c9d9ab454911b9d6fb575e3035cd7a3f9e61dbb72fe3b0a3b20a066 + sha512sums = 25c9fa51d0ebfeea9ad88c83325dae1d0643499253946278ffeaf04b7d1aad61a76e24a5b0e1689877fa6fd5ca67135006dd8edecb54418012c826f94ca22555 + source_aarch64 = arm.patch + source_aarch64 = build-arm-libopus.patch + sha512sums_aarch64 = 7c2f0c792eb5744eaf0f2ee7c0887a74118796d691029e824451b063d5ba9e65626617ad343f69837297b2002446e02ac1d5ab3bc470419ae092424abf08293f + sha512sums_aarch64 = 6d464cce32cb2e440fb137666aeefec1240bcbdfdef0e8633e0fbe22e2214446b2c992ee2c8716c682a42fcd1d66d9fdf1d6d5b40f8ec3b0eeec5ca9e3f1aa35 + sha512sums_aarch64 = 43d008c63a6b90a3710c4e1bf6ccebcb0987316213fa993fd1bd4b47d9a5d553f51471467c9d9ab454911b9d6fb575e3035cd7a3f9e61dbb72fe3b0a3b20a066 + sha512sums_aarch64 = 25c9fa51d0ebfeea9ad88c83325dae1d0643499253946278ffeaf04b7d1aad61a76e24a5b0e1689877fa6fd5ca67135006dd8edecb54418012c826f94ca22555 + +pkgname = librewolf-hg + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..48b79f871f86 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,352 @@ +# Maintainer: Vladislav Nepogodin (vnepogodin) <nepogodin.vlad@gmail.com> +# Contributor: Kyle De'Vir (QuartzDragon) <kyle[dot]devir[at]mykolab[dot]com> +# Contributor: Jonas Heinrich <onny@project-insanity.org> +# Contributor: Maxwell Anselm <silverhammermba+aur@gmail.com> +# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> +# Contributor: Ionut Biru <ibiru@archlinux.org> +# Contributor: Jakub Schmidtke <sjakub@gmail.com> + +pkgname=librewolf-hg +_pkgname=librewolf-nightly +__pkgname="Librewolf Nightly" +pkgver=r646875.a6861c17708e +pkgrel=1 +pkgdesc="Community-maintained fork of Firefox, focused on privacy, security and freedom. (nightly edition)" +arch=(x86_64 aarch64) +license=(MPL GPL LGPL) +url="https://librewolf-community.gitlab.io/" +depends=(gtk3 libxt mime-types dbus-glib + ffmpeg nss-hg ttf-font libpulse + libvpx libjpeg zlib icu libevent pipewire) +makedepends=(unzip zip diffutils yasm mesa imake inetutils ccache + rust xorg-server-xwayland xorg-server-xvfb + autoconf2.13 mercurial clang llvm jack gtk2 nodejs cbindgen nasm + python-setuptools python-psutil python-zstandard git binutils lld) +optdepends=('networkmanager: Location detection via available WiFi networks' + 'libnotify: Notification integration' + 'pulseaudio: Audio support' + 'speech-dispatcher: Text-to-Speech' + 'hunspell-en_US: Spell checking, American English' + 'libappindicator-gtk3: Global menu support for GTK apps' + 'appmenu-gtk-module: Appmenu for GTK only' + 'plasma5-applets-window-appmenu: Appmenu for Plasma only') +backup=('usr/lib/librewolf-nightly/librewolf.cfg' + 'usr/lib/librewolf-nightly/distribution/policies.json') +options=(!emptydirs !makeflags !strip) +_repo=https://hg.mozilla.org/mozilla-unified +install=librewolf-nightly.install +source=("hg+$_repo#revision=autoland" + $_pkgname.desktop + "git+https://gitlab.com/vnepogodin/librewolf-common.git" + "git+https://gitlab.com/vnepogodin/librewolf-settings.git" + remove_addons.patch + context-menu.patch + mozilla-vpn-ad.patch + builtin_js.patch) +source_aarch64=(arm.patch + build-arm-libopus.patch) +sha512sums=('SKIP' + '0d1d64832ae34a0c7bbb9e37eac48b9b3830481a0e0aa4c20321a1408a4a20b2b2045d24d8ae0d002895291c6f7d988cce16b1607ee73778a62d7f7d9143a248' + 'SKIP' + 'SKIP' + '861e692daf2be7239eb6b61435688a7abed2bef198067f5b3a9c1a44d8316d1e547c06e1bfb45be402c4c38b1bf13018ba594d433c1b70da6296bd5b90b0fbe3' + '5f7da8d54065c009f94c60eb9aa99d4d44d75b27800bcad5e9f2a365e0c853cb234c871c54855522598b1fe26669bd42a302705ac385d536c90f4ec199cf1df6' + '43d008c63a6b90a3710c4e1bf6ccebcb0987316213fa993fd1bd4b47d9a5d553f51471467c9d9ab454911b9d6fb575e3035cd7a3f9e61dbb72fe3b0a3b20a066' + '25c9fa51d0ebfeea9ad88c83325dae1d0643499253946278ffeaf04b7d1aad61a76e24a5b0e1689877fa6fd5ca67135006dd8edecb54418012c826f94ca22555') +sha512sums_aarch64=('7c2f0c792eb5744eaf0f2ee7c0887a74118796d691029e824451b063d5ba9e65626617ad343f69837297b2002446e02ac1d5ab3bc470419ae092424abf08293f' + '6d464cce32cb2e440fb137666aeefec1240bcbdfdef0e8633e0fbe22e2214446b2c992ee2c8716c682a42fcd1d66d9fdf1d6d5b40f8ec3b0eeec5ca9e3f1aa35' + '43d008c63a6b90a3710c4e1bf6ccebcb0987316213fa993fd1bd4b47d9a5d553f51471467c9d9ab454911b9d6fb575e3035cd7a3f9e61dbb72fe3b0a3b20a066' + '25c9fa51d0ebfeea9ad88c83325dae1d0643499253946278ffeaf04b7d1aad61a76e24a5b0e1689877fa6fd5ca67135006dd8edecb54418012c826f94ca22555') + +pkgver() { + cd mozilla-unified + printf "r%s.%s" "$(hg identify -n)" "$(hg identify -i)" | sed 's/\+//g' +} + +prepare() { + mkdir -p mozbuild + cd mozilla-unified + + cat >../mozconfig <<END +ac_add_options --enable-application=browser +mk_add_options MOZ_OBJDIR=${PWD@Q}/obj + +ac_add_options --prefix=/usr +ac_add_options --enable-release +ac_add_options --enable-hardening +ac_add_options --enable-rust-simd +ac_add_options --with-ccache +ac_add_options --enable-default-toolkit=cairo-gtk3-wayland +export CC='clang' +export CXX='clang++' + +# Branding +ac_add_options --enable-update-channel=nightly +ac_add_options --with-app-name=${_pkgname} +ac_add_options --with-app-basename=Librewolf +ac_add_options --with-branding=browser/branding/${_pkgname} +ac_add_options --with-distribution-id=org.archlinux +ac_add_options --with-unsigned-addon-scopes=app,system +ac_add_options --allow-addon-sideload +export MOZ_REQUIRE_SIGNING=1 +export MOZ_ADDON_SIGNING=1 +export MOZ_APP_REMOTINGNAME=${_pkgname//-/} + +export STRIP_FLAGS="--strip-debug --strip-unneeded" + +# System libraries +ac_add_options --with-system-nspr +ac_add_options --with-system-nss +ac_add_options --with-system-libvpx +ac_add_options --with-system-libevent +ac_add_options --with-system-icu +ac_add_options --with-system-zlib +ac_add_options --with-system-jpeg + +# Features +ac_add_options --enable-pulseaudio +ac_add_options --enable-alsa +ac_add_options --enable-jack +ac_add_options --disable-warnings-as-errors +ac_add_options --disable-crashreporter +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --disable-updater +ac_add_options --enable-strip +ac_add_options --disable-gpsd +ac_add_options --disable-synth-speechd +ac_add_options --disable-debug-symbols +ac_add_options --disable-debug-js-modules +ac_add_options --disable-cdp +ac_add_options --disable-trace-logging +ac_add_options --disable-rust-tests +ac_add_options --disable-ipdl-tests +ac_add_options --disable-necko-wifi +ac_add_options --disable-webspeech +ac_add_options --disable-webspeechtestbackend + +# Disables crash reporting, telemetry and other data gathering tools +mk_add_options MOZ_CRASHREPORTER=0 +mk_add_options MOZ_DATA_REPORTING=0 +mk_add_options MOZ_SERVICES_HEALTHREPORT=0 +mk_add_options MOZ_TELEMETRY_REPORTING=0 + +# options for ci / weaker build systems +# mk_add_options MOZ_MAKE_FLAGS="-j4" +# ac_add_options --enable-linker=gold +END + +if [[ $CARCH == 'aarch64' ]]; then + cat >>../mozconfig <<END +# taken from manjaro build: +ac_add_options --enable-optimize="-g0 -O2" +# from ALARM +# ac_add_options --disable-webrtc + +END + + export MOZ_DEBUG_FLAGS=" " + export CFLAGS+=" -g0" + export CXXFLAGS+=" -g0" + export RUSTFLAGS="-Cdebuginfo=0" + + # we should have more than enough RAM on the CI spot instances. + # ...or maybe not? + export LDFLAGS+=" -Wl,--no-keep-memory" + patch -p1 -i ../arm.patch + patch -p1 -i ../build-arm-libopus.patch + +else + + cat >>../mozconfig <<END +# probably not needed, enabled by default? +ac_add_options --enable-optimize +END +fi + + # Fix build-time error + patch -p1 -i ../builtin_js.patch + + # Remove some pre-installed addons that might be questionable + patch -p1 -i ../remove_addons.patch + + # To enable global menubar + # Set these to true + # browser.proton.appmenu.enabled + + # Disabling Pocket + sed -i 's/"pocket"/# "pocket"/g' browser/components/moz.build + + patch -p1 -i ../context-menu.patch + + # remove mozilla vpn ads + patch -p1 -i ../mozilla-vpn-ad.patch + + # this one only to remove an annoying error message: + sed -i 's#SaveToPocket.init();#// SaveToPocket.init();#g' browser/components/BrowserGlue.jsm + + # Remove Internal Plugin Certificates + _cert_sed='s#if (aCert.organizationalUnit == "Mozilla [[:alpha:]]\+") {\n' + _cert_sed+='[[:blank:]]\+return AddonManager\.SIGNEDSTATE_[[:upper:]]\+;\n' + _cert_sed+='[[:blank:]]\+}#' + _cert_sed+='// NOTE: removed#g' + sed -z "$_cert_sed" -i toolkit/mozapps/extensions/internal/XPIInstall.jsm + + # allow SearchEngines option in non-ESR builds + sed -i 's#"enterprise_only": true,#"enterprise_only": false,#g' browser/components/enterprisepolicies/schemas/policies-schema.json + + _settings_services_sed='s#firefox.settings.services.mozilla.com#f.s.s.m.c.qjz9zk#g' + + # stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10) + sed "$_settings_services_sed" -i browser/components/newtab/data/content/activity-stream.bundle.js + sed "$_settings_services_sed" -i modules/libpref/init/all.js + sed "$_settings_services_sed" -i services/settings/Utils.jsm + sed "$_settings_services_sed" -i toolkit/components/search/SearchUtils.jsm + + rm -f ${srcdir}/librewolf-common/source_files/mozconfig + cp -r ${srcdir}/librewolf-common/source_files/* ./ +} + +build() { + cd mozilla-unified + + export MOZ_SOURCE_REPO="$_repo" + export MOZ_NOSPAM=1 + export MOZBUILD_STATE_PATH="$srcdir/mozbuild" + export MACH_USE_SYSTEM_PYTHON=1 + + # LTO/PGO needs more open files + ulimit -n 4096 + + # -fno-plt with cross-LTO causes obscure LLVM errors + # LLVM ERROR: Function Import: link error + # CFLAGS="${CFLAGS/-fno-plt/}" + # CXXFLAGS="${CXXFLAGS/-fno-plt/}" + + # Do 3-tier PGO + echo "Building instrumented browser..." + +if [[ $CARCH == 'aarch64' ]]; then + + cat >.mozconfig ../mozconfig - <<END +ac_add_options --enable-profile-generate +END + +else + + cat >.mozconfig ../mozconfig - <<END +ac_add_options --enable-profile-generate=cross +END + +fi + + ./mach build + + echo "Profiling instrumented browser..." + ./mach package + LLVM_PROFDATA=llvm-profdata \ + JARLOG_FILE="$PWD/jarlog" \ + xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \ + ./mach python build/pgo/profileserver.py + + if [[ ! -s merged.profdata ]]; then + echo "No profile data produced." + return 1 + fi + + if [[ ! -s jarlog ]]; then + echo "No jar log produced." + return 1 + fi + + echo "Removing instrumented browser..." + ./mach clobber + + echo "Building optimized browser..." + +if [[ $CARCH == 'aarch64' ]]; then + + cat >.mozconfig ../mozconfig - <<END +ac_add_options --enable-lto +ac_add_options --enable-profile-use +ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata +ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog +ac_add_options --enable-linker=lld +END + +else + + cat >.mozconfig ../mozconfig - <<END +ac_add_options --enable-lto=cross +ac_add_options --enable-profile-use=cross +ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata +ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog +ac_add_options --enable-linker=lld +ac_add_options --disable-elf-hack +END + +fi + + ./mach build + + echo "Building symbol archive..." + ./mach buildsymbols +} + +package() { + cd mozilla-unified + DESTDIR="$pkgdir" ./mach install + mv "$pkgdir"/usr/lib/${_pkgname}/{$_pkgname,librewolf} + mv "$pkgdir"/usr/lib/${_pkgname}/{$_pkgname-bin,librewolf-bin} + rm "$pkgdir"/usr/lib/${_pkgname}/pingsender + + install -Dm644 "$srcdir/librewolf-settings/$_pkgname.psd" "$pkgdir/usr/share/psd/browsers/$_pkgname" + + _vendorjs="$pkgdir/usr/lib/$_pkgname/browser/defaults/preferences/vendor.js" + + install -Dm644 /dev/stdin "$_vendorjs" <<END +// Use LANG environment variable to choose locale +pref("intl.locale.requested", ""); + +// Use system-provided dictionaries +pref("spellchecker.dictionary_path", "/usr/share/hunspell"); + +// Don't disable extensions in the application directory +// done in librewolf.cfg +// pref("extensions.autoDisableScopes", 11); +END + + cd ${srcdir}/mozilla-unified + cp -r ${srcdir}/librewolf-settings/* ${pkgdir}/usr/lib/${_pkgname}/ + + _distini="$pkgdir/usr/lib/$_pkgname/distribution/distribution.ini" + install -Dm644 /dev/stdin "$_distini" <<END +[Global] +id=archlinux +version=1.0 +about=$__pkgname for Arch Linux + +[Preferences] +app.distributor=archlinux +app.distributor.channel=$_pkgname +app.partner.archlinux=archlinux +END + + for i in 16 32 48 64 128; do + install -Dm644 browser/branding/${_pkgname}/default$i.png \ + "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$_pkgname.png" + done + install -Dm644 browser/branding/${_pkgname}/content/about-logo.png \ + "$pkgdir/usr/share/icons/hicolor/192x192/apps/$_pkgname.png" + + # arch upstream provides a separate svg for this. we don't have that, so let's re-use 16.png + install -Dm644 browser/branding/${_pkgname}/default16.png \ + "$pkgdir/usr/share/icons/hicolor/symbolic/apps/$_pkgname-symbolic.png" + + # Install .desktop files + install -Dm644 ../$_pkgname.desktop \ + "$pkgdir/usr/share/applications/$_pkgname.desktop" + + ln -srf "$pkgdir"/usr/lib/${_pkgname}/librewolf \ + "$pkgdir"/usr/bin/$_pkgname +} diff --git a/arm.patch b/arm.patch new file mode 100644 index 000000000000..f5181134d45c --- /dev/null +++ b/arm.patch @@ -0,0 +1,12 @@ +diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp +index f8977a6..34f52fc 100644 +--- a/js/src/wasm/WasmSignalHandlers.cpp ++++ b/js/src/wasm/WasmSignalHandlers.cpp +@@ -247,7 +247,7 @@ using mozilla::DebugOnly; + // If you run into compile problems on a tier-3 platform, you can disable the + // emulation here. + +-#if defined(__linux__) && defined(__arm__) ++#if 0 && defined(__linux__) && defined(__arm__) + # define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS + #endif diff --git a/build-arm-libopus.patch b/build-arm-libopus.patch new file mode 100644 index 000000000000..27dfec73b46b --- /dev/null +++ b/build-arm-libopus.patch @@ -0,0 +1,12 @@ +diff -up a/media/libopus/silk/arm/arm_silk_map.c b/media/libopus/silk/arm/arm_silk_map.c +index 18d73db..7911576 100644 +--- a/media/libopus/silk/arm/arm_silk_map.c ++++ b/media/libopus/silk/arm/arm_silk_map.c +@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE. + # include "config.h" + #endif + +-#include "main_FIX.h" ++#include "fixed/main_FIX.h" + #include "NSQ.h" + #include "SigProc_FIX.h" diff --git a/builtin_js.patch b/builtin_js.patch new file mode 100644 index 000000000000..a984fefa7fc5 --- /dev/null +++ b/builtin_js.patch @@ -0,0 +1,21 @@ +diff --git a/js/src/builtin/TestingFunctions.cpp b/js/src/builtin/TestingFunctions.cpp +index 9189ceb214..eee87893e4 100644 +--- a/js/src/builtin/TestingFunctions.cpp ++++ b/js/src/builtin/TestingFunctions.cpp +@@ -7382,16 +7382,6 @@ JS_FOR_WASM_FEATURES(WASM_FEATURE, WASM_FEATURE) + "helperThreadCount()", + " Returns the number of helper threads available for off-thread tasks."), + +- JS_FN_HELP("createShapeSnapshot", CreateShapeSnapshot, 1, 0, +-"createShapeSnapshot(obj)", +-" Returns an object containing a shape snapshot for use with\n" +-" checkShapeSnapshot.\n"), +- +- JS_FN_HELP("checkShapeSnapshot", CheckShapeSnapshot, 2, 0, +-"checkShapeSnapshot(snapshot, [obj])", +-" Check shape invariants based on the given snapshot and optional object.\n" +-" If there's no object argument, the snapshot's object is used.\n"), +- + JS_FN_HELP("enableShapeConsistencyChecks", EnableShapeConsistencyChecks, 0, 0, + "enableShapeConsistencyChecks()", + " Enable some slow Shape assertions.\n"), diff --git a/context-menu.patch b/context-menu.patch new file mode 100644 index 000000000000..8729cfd77b04 --- /dev/null +++ b/context-menu.patch @@ -0,0 +1,22 @@ +diff --git a/browser/base/content/browser-context.inc b/browser/base/content/browser-context.inc +index 8e44d005f4..abf133843f 100644 +--- a/browser/base/content/browser-context.inc ++++ b/browser/base/content/browser-context.inc +@@ -107,9 +107,6 @@ + <menuitem id="context-savelink" + data-l10n-id="main-context-menu-save-link" + oncommand="gContextMenu.saveLink();"/> +- <menuitem id="context-savelinktopocket" +- data-l10n-id="main-context-menu-save-link-to-pocket" +- oncommand= "Pocket.savePage(gContextMenu.browser, gContextMenu.linkURL);"/> + <menuitem id="context-copyemail" + data-l10n-id="main-context-menu-copy-email" + oncommand="gContextMenu.copyEmail();"/> +@@ -259,7 +256,4 @@ + <menuitem id="context-savepage" + data-l10n-id="main-context-menu-page-save" + oncommand="gContextMenu.savePageAs();"/> +- <menuitem id="context-pocket" +- data-l10n-id="main-context-menu-save-to-pocket" +- oncommand="Pocket.savePage(gContextMenu.browser, gContextMenu.browser.currentURI.spec, gContextMenu.browser.contentTitle);"/> + <menu id="context-sendpagetodevice" diff --git a/librewolf-nightly.desktop b/librewolf-nightly.desktop new file mode 100644 index 000000000000..c5fa91b304cf --- /dev/null +++ b/librewolf-nightly.desktop @@ -0,0 +1,340 @@ +[Desktop Entry] +Version=1.0 +Name=LibreWolf Nightly +GenericName=Web Browser +GenericName[ar]=متصفح ويب +GenericName[ast]=Restolador Web +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[ca]=Navegador web +GenericName[cs]=Webový prohlížeč +GenericName[da]=Webbrowser +GenericName[de]=Webbrowser +GenericName[el]=Περιηγητής διαδικτύου +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fa]=مرورگر اینترنتی +GenericName[fi]=WWW-selain +GenericName[fr]=Navigateur Web +GenericName[gl]=Navegador Web +GenericName[he]=דפדפן אינטרנט +GenericName[hr]=Web preglednik +GenericName[hu]=Webböngésző +GenericName[it]=Browser web +GenericName[ja]=ウェブ・ブラウザ +GenericName[ko]=웹 브라우저 +GenericName[ku]=Geroka torê +GenericName[lt]=Interneto naršyklė +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[nn]=Nettlesar +GenericName[no]=Nettleser +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador Web +GenericName[ro]=Navigator Internet +GenericName[ru]=Веб-браузер +GenericName[sk]=Internetový prehliadač +GenericName[sl]=Spletni brskalnik +GenericName[sv]=Webbläsare +GenericName[tr]=Web Tarayıcı +GenericName[ug]=توركۆرگۈ +GenericName[uk]=Веб-браузер +GenericName[vi]=Trình duyệt Web +GenericName[zh_CN]=网络浏览器 +GenericName[zh_TW]=網路瀏覽器 +Comment=Browse the World Wide Web +Comment[ar]=تصفح الشبكة العنكبوتية العالمية +Comment[ast]=Restola pela Rede +Comment[bn]=ইন্টারনেট ব্রাউজ করুন +Comment[ca]=Navegueu per el web +Comment[cs]=Prohlížení stránek World Wide Webu +Comment[da]=Surf på internettet +Comment[de]=Im Internet surfen +Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web) +Comment[es]=Navegue por la web +Comment[et]=Lehitse veebi +Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید +Comment[fi]=Selaa Internetin WWW-sivuja +Comment[fr]=Naviguer sur le Web +Comment[gl]=Navegar pola rede +Comment[he]=גלישה ברחבי האינטרנט +Comment[hr]=Pretražite web +Comment[hu]=A világháló böngészése +Comment[it]=Esplora il web +Comment[ja]=ウェブを閲覧します +Comment[ko]=웹을 돌아 다닙니다 +Comment[ku]=Li torê bigere +Comment[lt]=Naršykite internete +Comment[nb]=Surf på nettet +Comment[nl]=Verken het internet +Comment[nn]=Surf på nettet +Comment[no]=Surf på nettet +Comment[pl]=Przeglądanie stron WWW +Comment[pt]=Navegue na Internet +Comment[pt_BR]=Navegue na Internet +Comment[ro]=Navigați pe Internet +Comment[ru]=Доступ в Интернет +Comment[sk]=Prehliadanie internetu +Comment[sl]=Brskajte po spletu +Comment[sv]=Surfa på webben +Comment[tr]=İnternet'te Gezinin +Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ +Comment[uk]=Перегляд сторінок Інтернету +Comment[vi]=Để duyệt các trang web +Comment[zh_CN]=浏览互联网 +Comment[zh_TW]=瀏覽網際網路 +Keywords=Internet;WWW;Browser;Web;Explorer +Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب +Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador +Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer +Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer +Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet +Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen +Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;LibreWolf;Φιρεφοχ;Ιντερνετ +Keywords[es]=Explorador;Internet;WWW +Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa +Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur +Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה; +Keywords[hr]=Internet;WWW;preglednik;Web +Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer +Keywords[it]=Internet;WWW;Browser;Web;Navigatore +Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk +Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ +Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside +Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online +Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador +Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador +Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис +Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer +Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet +Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara +Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд +Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web +Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;LibreWolf;ff;互联网;网站; +Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐 +Exec=librewolf-nightly %u +Icon=librewolf-nightly +Terminal=false +X-MultipleArgs=false +Type=Application +MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json; +StartupNotify=true +StartupWMClass=LibreWolf +Categories=Network;WebBrowser; +Actions=new-window;new-private-window; + +[Desktop Action new-window] +Name=New Window +Name[ach]=Dirica manyen +Name[af]=Nuwe venster +Name[an]=Nueva finestra +Name[ar]=نافذة جديدة +Name[as]=নতুন উইন্ডো +Name[ast]=Ventana nueva +Name[az]=Yeni Pəncərə +Name[be]=Новае акно +Name[bg]=Нов прозорец +Name[bn_BD]=নতুন উইন্ডো (N) +Name[bn_IN]=নতুন উইন্ডো +Name[br]=Prenestr nevez +Name[brx]=गोदान उइन्ड'(N) +Name[bs]=Novi prozor +Name[ca]=Finestra nova +Name[cak]=K'ak'a' tzuwäch +Name[cs]=Nové okno +Name[cy]=Ffenestr Newydd +Name[da]=Nyt vindue +Name[de]=Neues Fenster +Name[dsb]=Nowe wokno +Name[el]=Νέο παράθυρο +Name[en_GB]=New Window +Name[en_US]=New Window +Name[en_ZA]=New Window +Name[eo]=Nova fenestro +Name[es_AR]=Nueva ventana +Name[es_CL]=Nueva ventana +Name[es_ES]=Nueva ventana +Name[es_MX]=Nueva ventana +Name[et]=Uus aken +Name[eu]=Leiho berria +Name[fa]=پنجره جدید +Name[ff]=Henorde Hesere +Name[fi]=Uusi ikkuna +Name[fr]=Nouvelle fenêtre +Name[fy_NL]=Nij finster +Name[ga_IE]=Fuinneog Nua +Name[gd]=Uinneag ùr +Name[gl]=Nova xanela +Name[gn]=Ovetã pyahu +Name[gu_IN]=નવી વિન્ડો +Name[he]=חלון חדש +Name[hi_IN]=नया विंडो +Name[hr]=Novi prozor +Name[hsb]=Nowe wokno +Name[hu]=Új ablak +Name[hy_AM]=Նոր Պատուհան +Name[id]=Jendela Baru +Name[is]=Nýr gluggi +Name[it]=Nuova finestra +Name[ja]=新しいウィンドウ +Name[ja_JP-mac]=新規ウインドウ +Name[ka]=ახალი ფანჯარა +Name[kk]=Жаңа терезе +Name[km]=បង្អួចថ្មី +Name[kn]=ಹೊಸ ಕಿಟಕಿ +Name[ko]=새 창 +Name[kok]=नवें जनेल +Name[ks]=نئئ وِنڈو +Name[lij]=Neuvo barcon +Name[lo]=ຫນ້າຕ່າງໃຫມ່ +Name[lt]=Naujas langas +Name[ltg]=Jauns lūgs +Name[lv]=Jauns logs +Name[mai]=नव विंडो +Name[mk]=Нов прозорец +Name[ml]=പുതിയ ജാലകം +Name[mr]=नवीन पटल +Name[ms]=Tetingkap Baru +Name[my]=ဝင်းဒိုးအသစ် +Name[nb_NO]=Nytt vindu +Name[ne_NP]=नयाँ सञ्झ्याल +Name[nl]=Nieuw venster +Name[nn_NO]=Nytt vindauge +Name[or]=ନୂତନ ୱିଣ୍ଡୋ +Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ +Name[pl]=Nowe okno +Name[pt_BR]=Nova janela +Name[pt_PT]=Nova janela +Name[rm]=Nova fanestra +Name[ro]=Fereastră nouă +Name[ru]=Новое окно +Name[sat]=नावा विंडो (N) +Name[si]=නව කවුළුවක් +Name[sk]=Nové okno +Name[sl]=Novo okno +Name[son]=Zanfun taaga +Name[sq]=Dritare e Re +Name[sr]=Нови прозор +Name[sv_SE]=Nytt fönster +Name[ta]=புதிய சாளரம் +Name[te]=కొత్త విండో +Name[th]=หน้าต่างใหม่ +Name[tr]=Yeni pencere +Name[tsz]=Eraatarakua jimpani +Name[uk]=Нове вікно +Name[ur]=نیا دریچہ +Name[uz]=Yangi oyna +Name[vi]=Cửa sổ mới +Name[wo]=Palanteer bu bees +Name[xh]=Ifestile entsha +Name[zh_CN]=新建窗口 +Name[zh_TW]=開新視窗 +Exec=librewolf-nightly --new-window %u + +[Desktop Action new-private-window] +Name=New Private Window +Name[ach]=Dirica manyen me mung +Name[af]=Nuwe privaatvenster +Name[an]=Nueva finestra privada +Name[ar]=نافذة خاصة جديدة +Name[as]=নতুন ব্যক্তিগত উইন্ডো +Name[ast]=Ventana privada nueva +Name[az]=Yeni Məxfi Pəncərə +Name[be]=Новае акно адасаблення +Name[bg]=Нов прозорец за поверително сърфиране +Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো +Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো +Name[br]=Prenestr merdeiñ prevez nevez +Name[brx]=गोदान प्राइभेट उइन्ड' +Name[bs]=Novi privatni prozor +Name[ca]=Finestra privada nova +Name[cak]=K'ak'a' ichinan tzuwäch +Name[cs]=Nové anonymní okno +Name[cy]=Ffenestr Breifat Newydd +Name[da]=Nyt privat vindue +Name[de]=Neues privates Fenster +Name[dsb]=Nowe priwatne wokno +Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης +Name[en_GB]=New Private Window +Name[en_US]=New Private Window +Name[en_ZA]=New Private Window +Name[eo]=Nova privata fenestro +Name[es_AR]=Nueva ventana privada +Name[es_CL]=Nueva ventana privada +Name[es_ES]=Nueva ventana privada +Name[es_MX]=Nueva ventana privada +Name[et]=Uus privaatne aken +Name[eu]=Leiho pribatu berria +Name[fa]=پنجره ناشناس جدید +Name[ff]=Henorde Suturo Hesere +Name[fi]=Uusi yksityinen ikkuna +Name[fr]=Nouvelle fenêtre de navigation privée +Name[fy_NL]=Nij priveefinster +Name[ga_IE]=Fuinneog Nua Phríobháideach +Name[gd]=Uinneag phrìobhaideach ùr +Name[gl]=Nova xanela privada +Name[gn]=Ovetã ñemi pyahu +Name[gu_IN]=નવી ખાનગી વિન્ડો +Name[he]=חלון פרטי חדש +Name[hi_IN]=नयी निजी विंडो +Name[hr]=Novi privatni prozor +Name[hsb]=Nowe priwatne wokno +Name[hu]=Új privát ablak +Name[hy_AM]=Սկսել Գաղտնի դիտարկում +Name[id]=Jendela Mode Pribadi Baru +Name[is]=Nýr huliðsgluggi +Name[it]=Nuova finestra anonima +Name[ja]=新しいプライベートウィンドウ +Name[ja_JP-mac]=新規プライベートウインドウ +Name[ka]=ახალი პირადი ფანჯარა +Name[kk]=Жаңа жекелік терезе +Name[km]=បង្អួចឯកជនថ្មី +Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ +Name[ko]=새 사생활 보호 모드 +Name[kok]=नवो खाजगी विंडो +Name[ks]=نْو پرایوٹ وینڈو +Name[lij]=Nêuvo barcón privòu +Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່ +Name[lt]=Naujas privataus naršymo langas +Name[ltg]=Jauns privatais lūgs +Name[lv]=Jauns privātais logs +Name[mai]=नया निज विंडो (W) +Name[mk]=Нов приватен прозорец +Name[ml]=പുതിയ സ്വകാര്യ ജാലകം +Name[mr]=नवीन वैयक्तिक पटल +Name[ms]=Tetingkap Persendirian Baharu +Name[my]=New Private Window +Name[nb_NO]=Nytt privat vindu +Name[ne_NP]=नयाँ निजी सञ्झ्याल +Name[nl]=Nieuw privévenster +Name[nn_NO]=Nytt privat vindauge +Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ +Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ +Name[pl]=Nowe okno prywatne +Name[pt_BR]=Nova janela privativa +Name[pt_PT]=Nova janela privada +Name[rm]=Nova fanestra privata +Name[ro]=Fereastră privată nouă +Name[ru]=Новое приватное окно +Name[sat]=नावा निजेराक् विंडो (W ) +Name[si]=නව පුද්ගලික කවුළුව (W) +Name[sk]=Nové okno v režime Súkromné prehliadanie +Name[sl]=Novo zasebno okno +Name[son]=Sutura zanfun taaga +Name[sq]=Dritare e Re Private +Name[sr]=Нови приватан прозор +Name[sv_SE]=Nytt privat fönster +Name[ta]=புதிய தனிப்பட்ட சாளரம் +Name[te]=కొత్త ఆంతరంగిక విండో +Name[th]=หน้าต่างส่วนตัวใหม่ +Name[tr]=Yeni gizli pencere +Name[tsz]=Juchiiti eraatarakua jimpani +Name[uk]=Приватне вікно +Name[ur]=نیا نجی دریچہ +Name[uz]=Yangi maxfiy oyna +Name[vi]=Cửa sổ riêng tư mới +Name[wo]=Panlanteeru biir bu bees +Name[xh]=Ifestile yangasese entsha +Name[zh_CN]=新建隐私浏览窗口 +Name[zh_TW]=新增隱私視窗 +Exec=librewolf-nightly --private-window %u diff --git a/librewolf-nightly.install b/librewolf-nightly.install new file mode 100644 index 000000000000..a55ff0b204fa --- /dev/null +++ b/librewolf-nightly.install @@ -0,0 +1,38 @@ +msg() { + ALL_OFF="\e[1;0m" + BOLD="\e[1;1m" + RED="${BOLD}\e[1;31m" + local mesg=$1; shift + printf "${RED}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}" "$@" >&2 +} + +post_upgrade() { + msg "Remember to check for changes in /usr/lib/librewolf/librewolf.cfg.pacnew" + echo "" + msg "as those will currently not automatically overwrite your existing librewolf.cfg" + echo "" + msg "We would encourage you to migrate your own changes to the new overrides file" + echo "" + msg "at ~/.librewolf/librewolf.overrides.cfg instead, so making changes directly" + echo "" + msg "in your librewolf.cfg can be deprecated in favour of this solution." + echo "" + msg "The automatic backup of the librewolf.cfg will probably dropped in a few releases" + echo "" + msg "to ensure everyone receives all upstream cfg changes without any manual intervention" + echo "" + msg "like having to check the .pacnew file." + echo "" + msg "Check out https://gitlab.com/librewolf-community/settings/-/merge_requests/13" + echo "" + msg "for more information on this." + echo "" + msg "Included are profiles for Firejail and profile-sync-daemon." + echo "" + msg "To use psd add librewolf to ~/.config/psd/psd.conf." + echo "" +} + +post_install() { + post_upgrade +} diff --git a/mozilla-vpn-ad.patch b/mozilla-vpn-ad.patch new file mode 100644 index 000000000000..a87a8439c9b0 --- /dev/null +++ b/mozilla-vpn-ad.patch @@ -0,0 +1,16 @@ +diff --git a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html +index 4d22812723..2542791b9b 100644 +--- a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html ++++ b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html +@@ -54,11 +54,7 @@ + <div class="info"> + <h1 data-l10n-id="about-private-browsing-info-title"></h1> + <p data-l10n-id="about-private-browsing-info-description"></p> +- <a id="private-browsing-myths" data-l10n-id="about-private-browsing-info-myths"></a> + </div> + </div> +- +- <p id="private-browsing-vpn-text" class="vpn-promo" data-l10n-id="about-private-browsing-need-more-privacy"></p> +- <a id="private-browsing-vpn-link" class="vpn-promo" data-l10n-id="about-private-browsing-turn-on-vpn"></a> + </body> + </html> diff --git a/remove_addons.patch b/remove_addons.patch new file mode 100644 index 000000000000..40fef379e0b5 --- /dev/null +++ b/remove_addons.patch @@ -0,0 +1,74 @@ +diff --git a/browser/extensions/moz.build b/browser/extensions/moz.build +index 269dcb2..ed7c31d 100644 +--- a/browser/extensions/moz.build ++++ b/browser/extensions/moz.build +@@ -5,10 +5,7 @@ + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + + DIRS += [ +- "doh-rollout", + "formautofill", + "screenshots", +- "webcompat", +- "report-site-issue", + "pictureinpicture", + ] +diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in +index 496379c..dd6f359 100644 +--- a/browser/locales/Makefile.in ++++ b/browser/locales/Makefile.in +@@ -61,7 +61,6 @@ l10n-%: + ifneq (,$(wildcard ../extensions/formautofill/locales)) + @$(MAKE) -C ../extensions/formautofill/locales AB_CD=$* XPI_NAME=locale-$* + endif +- @$(MAKE) -C ../extensions/report-site-issue/locales AB_CD=$* XPI_NAME=locale-$* + @$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)' + @$(MAKE) -C ../../devtools/startup/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)' + @$(MAKE) l10n AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) +@@ -82,7 +81,6 @@ endif + @$(MAKE) -C ../../devtools/startup/locales chrome AB_CD=$* + @$(MAKE) chrome AB_CD=$* + @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales chrome AB_CD=$* +- @$(MAKE) -C ../extensions/report-site-issue/locales chrome AB_CD=$* + + package-win32-installer: $(SUBMAKEFILES) + $(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen ZIP_IN='$(ZIP_OUT)' installer +diff --git a/browser/locales/filter.py b/browser/locales/filter.py +index bb2e992..7d7768e 100644 +--- a/browser/locales/filter.py ++++ b/browser/locales/filter.py +@@ -20,7 +20,6 @@ def test(mod, path, entity=None): + "browser", + "browser/extensions/formautofill", + "browser/extensions/fxmonitor", +- "browser/extensions/report-site-issue", + "extensions/spellcheck", + "other-licenses/branding/firefox", + "browser/branding/official", +diff --git a/browser/locales/l10n.ini b/browser/locales/l10n.ini +index f4cb7ca..4efac13 100644 +--- a/browser/locales/l10n.ini ++++ b/browser/locales/l10n.ini +@@ -14,7 +14,6 @@ dirs = browser + devtools/startup + browser/extensions/formautofill + browser/extensions/fxmonitor +- browser/extensions/report-site-issue + + [includes] + # non-central apps might want to use %(topsrcdir)s here, or other vars +diff --git a/browser/locales/l10n.toml b/browser/locales/l10n.toml +index b9b18fe..af7c583 100644 +--- a/browser/locales/l10n.toml ++++ b/browser/locales/l10n.toml +@@ -133,10 +133,6 @@ locales = [ + reference = "browser/extensions/fxmonitor/locales/en-US/**" + l10n = "{l}browser/extensions/fxmonitor/**" + +-[[paths]] +- reference = "browser/extensions/report-site-issue/locales/en-US/**" +- l10n = "{l}browser/extensions/report-site-issue/**" +- + [[paths]] + reference = "services/sync/locales/en-US/**" + l10n = "{l}services/sync/**" |