From f2e19a16ee9aed888a45f3a5b3280fa62c52b9e3 Mon Sep 17 00:00:00 2001 From: bill-auger Date: Sat, 26 Mar 2022 05:54:49 -0400 Subject: [iceweasel]: move v97.0.2 to libre-testing see note in the 'revert v98 branding' commit, and https://lists.parabola.nu/pipermail/dev/2022-March/008200.html --- libre-testing/iceweasel/PKGBUILD | 926 +++++++++++++++--------------- libre-testing/iceweasel/iceweasel.desktop | 44 +- 2 files changed, 508 insertions(+), 462 deletions(-) (limited to 'libre-testing') diff --git a/libre-testing/iceweasel/PKGBUILD b/libre-testing/iceweasel/PKGBUILD index 089cce366..006579d60 100644 --- a/libre-testing/iceweasel/PKGBUILD +++ b/libre-testing/iceweasel/PKGBUILD @@ -1,223 +1,523 @@ -# Maintainer (Arch:firefox): Jan Alexander Steffens (heftig) -# Contributor (Arch:firefox): Ionut Biru -# Contributor (Arch:firefox): Jakub Schmidtke - -# Contributor (ConnochaetOS): Henry Jensen - -# Maintainer: Andreas Grapentin -# Maintainer: Luke Shumaker +# Maintainer (arch): Jan Alexander Steffens (heftig) +# Contributor: Ionut Biru +# Contributor: Jakub Schmidtke +# Contributor: Henry Jensen +# Maintainer (archarm): Kevin Mihelich +# Maintainer (arch32): Andreas Baumann +# Contributor: Erich Eckner +# Contributor: Andreas Grapentin +# Contributor: Luke Shumaker # Contributor: André Silva # Contributor: Márcio Silva # Contributor: fauno # Contributor: vando # Contributor: Figue +# Contributor: evr +# Contributor: Muhammad 'MJ' Jassim # Contributor: taro-k # Contributor: Michał Masłowski # Contributor: Luke R. # Contributor: Isaac David # Contributor: bill-auger -# Contributor: evr -# Contributor: Muhammad 'MJ' Jassim +# Contributor: grizzlyuser -# Rational for inclusion in [libre]: + +# parabola changes and rationale +# FSDG: # - Modify the addons pages to use GNU IceCat plugins sources, rather -# than addons.mozilla.org, which hosts non-free addons. -# - Disable EME, which is implemented via the non-free libWideVine -# CDM. -# -# The above changes cause us to run afoul of the Firefox trademark -# policy[1], so making those changes also requires us to: -# - Rebrand to Iceweasel +# than addons.mozilla.org, which hosts non-free addons +# - Disable EME, which is implemented via the non-free libWideVine CDM +# - Disable Normandy that let Mozilla push messages with recommendations +# of nonfree software +# - Make Remote Settings work completely offline using local data +# - Rebrand to Iceweasel, per the mozilla trademark policy, +# due to these FSDG changes # -# While we're at it, while not strictly nescessary for FSDG -# compliance: +# technical: +# - build i686 with GCC instead of clang +# - disable rust-SIMD, LTO, PGO, and skip profiling build for armv7h and i686 +# - allow skipping profiling build for x86_64 (_x86_64_skip_pgo) +# - prefer as many system libs as possible, over their vendored couterparts +# +# privacy: # - Remove Google API keys and usage # - Disable Mozilla telemetry and crash reporting (good manners -# because of all of the other patching we're doing -# -# [1]: https://www.mozilla.org/en-US/foundation/trademarks/policy/ -# -# IMPORTANT NOTICE: -# libremakepkg *will* choke on this package, unless sufficient space is -# provided in /tmp. -# -# currently, at least 4.2MiB are required. +# because of all of the other patching we're doing) + + pkgname=iceweasel -replaces=('firefox') epoch=1 -pkgver=65.0.1 +pkgver=97.0.2 pkgrel=1 -pkgrel+=.parabola1.testing1 -_brandingver=${pkgver%.*} -_brandingrel=1 -pkgdesc="Libre standalone web browser based on Mozilla Firefox" +pkgrel+=.parabola4 +_brandingver=95.0-1 +pkgdesc="Standalone web browser derived from Mozilla Firefox" arch=(x86_64) -arch+=(i686 armv7h) +arch+=(armv7h i686) license=(MPL GPL LGPL) -url="https://wiki.parabola.nu/$pkgname" -depends=(gtk3 mozilla-common libxt startup-notification mime-types dbus-glib - ffmpeg nss ttf-font libpulse sqlite libvpx icu) -makedepends=(unzip zip diffutils python2-setuptools yasm mesa imake inetutils - xorg-server-xvfb autoconf2.13 rust mercurial clang llvm jack gtk2 - python nodejs python2-psutil cbindgen nasm) -makedepends+=(mozilla-searchplugins quilt libxslt imagemagick) +url="https://wiki.parabola.nu/Iceweasel" +depends=(gtk3 libxt mime-types dbus-glib ffmpeg nss ttf-font libpulse) +makedepends=(unzip zip diffutils yasm mesa imake inetutils xorg-server-xvfb + autoconf2.13 rust clang llvm jack nodejs cbindgen nasm + python-setuptools python-psutil python-zstandard lld dump_syms + wasi-compiler-rt wasi-libc wasi-libc++ wasi-libc++abi) +makedepends+=(quilt libxslt imagemagick git jq python-jsonschema) +makedepends+=(libvpx=1.11.0-1) +makedepends_i686=(gcc10) +[[ "${CARCH}" == i686 ]] && makedepends=( ${makedepends[*]/jack/jack2} ) +makedepends_i686+=(wasi-compiler-rt=12.0.1 wasi-libc++=12.0.1 wasi-libc++abi=12.0.1) # wasi-libc=???) 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') -options=(!emptydirs !makeflags !debug) -_repo=https://hg.mozilla.org/mozilla-unified -source=("hg+$_repo#tag=FIREFOX_${pkgver//./_}_RELEASE" + 'hunspell-en_US: Spell checking, American English' + 'xdg-desktop-portal: Screensharing with Wayland') +replaces=('firefox') +options=(!emptydirs !makeflags !strip !lto !debug) # FIXME: make debug package +source=(https://archive.mozilla.org/pub/firefox/releases/${pkgver}/source/firefox-${pkgver}.source.tar.xz{,.asc} + 0001-Use-remoting-name-for-GDK-application-names.patch $pkgname.desktop) -source+=(https://repo.parabola.nu/other/iceweasel/${pkgname}_${_brandingver}-${_brandingrel}.branding.tar.xz{,.sig} - libre-searchengines.patch - libre.patch) -sha256sums=('SKIP' - 'ed350ef2f528b999a621f7080fa80948be6b351e67ce32529fb32bcf47bb21fa' - '4e4d52addfb0de4b4439e959e5c35194e35a6840a21dcf6b20c46604ae7f6482' +source+=(https://repo.parabola.nu/other/iceweasel/${pkgname}_${_brandingver}.branding.tar.xz{,.sig} + 9001-FSDG-always-sync-remote-settings-with-local-dump.patch + 9002-FSDG-preference-defaults.patch + 9003-FSDG-misc.patch + process-json-files.py + vendor.js.in) +source_armv7h=(build-arm-libopus.patch) +source_i686=('avoid-libxul-OOM-python-check.patch' + 'rust-static-disable-network-test-on-static-libraries.patch' + 'firefox-93.0_x86_math_private_20211110.patch') +sha256sums=('c9f127741beabde78b021dc95b1740259d01677d461400682cb30e072126f075' 'SKIP' - '871222c88dfd240b1805b28c98ca7431bd2b87be1ff4dbb06caa6407b106b803' - '4a4667d99ab50b1990de6833e9647ddd428d9206e422c7cc3754d4f80aeb8038') + '8de6c0ecc70d2763936be6df4b91a3d2e806765bf510f987d6f2ffa2377c3f01' + '9cdc2602661717712092d28bb494e5b48e518cb930898aca85eaf21f91f7ef58') +sha256sums+=('d1b9d98cea5356df97fc5c221830de1ced8f826cb39fac9427c407e3eae54c02' + 'SKIP' + 'a4e3c3869085cb282cb5a0fcb64e816c0415f25d4792a62c4f1d599d3111b23c' + 'cb3079a0dc30321183bf8e112532c6f2aad045f68103f8d422c9691137aa770e' + '39e3a5e1ad137e21f842a44d7e3bd24050292d2b41fe59b4e7c7dfed52a195dd' + '9386f1c50506cd20ab6d212335d5e4417faeb2aea371dd46f2d107d171e80b83' + 'c93ce98e1cb64033079343ff1f3037fab6a3bc6d3eb5bc14c5edb70e2d45965d') +sha256sums_armv7h=('2d4d91f7e35d0860225084e37ec320ca6cae669f6c9c8fe7735cdbd542e3a7c9') +sha256sums_i686=('2f0c81a38c4578f68f5456b618fe84a78974072821488173eb55e0e72287e353' + '10c5276eab2e87f400a6ec15d7ffbef3b0407ee888dea36f1128927ca55b9041' + '84836b905d23a6cfdd955b9312bbb794e5329af36963c81572195039c68291fc') +validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases validpgpkeys+=('BFA8008A8265677063B11BF47171986E4B745536') # Andreas Grapentin +validpgpkeys+=('3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40') # bill-auger + + +# PGO requires networking +_should_skip_pgo_armv7h=1 # disable for armv7h - always +_should_skip_pgo_i686=1 # disable for i686 - always +_should_skip_pgo_x86_64=0 # disable for x86_64 - libremakepkg +eval "_should_skip_pgo=\$_should_skip_pgo_${CARCH}" + + +_check_build_config() { + pushd "$srcdir/firefox-${pkgver%_*}" > /dev/null + + echo "Checking build configuration..." + + # Configure produces mozinfo.json that reflects current configuration. + # See build/docs/mozinfo.rst + ./mach configure + + # In this test, jq collects values of the following keys of mozinfo.json into array, + # and checks if any of them are not equal to false, in which case it returns "true". + # E.g. if the value of any key is true or null (in case the key is missing from mozinfo.json), + # that means the build configuration has to be reworked. + local obj_directory=$(./mach environment | sed -En '/object directory:/{n;s/^\s+//;p;}') + local antifeature_keys=(.crashreporter .datareporting .healthreport .normandy .telemetry .updater) + local antifeatures=() + echo "obj_directory is: ${obj_directory}" + for key in ${antifeature_keys[@]} + do jq -e "${key} != false" "${obj_directory}"/mozinfo.json && antifeatures+=(${key}) + done + if (( ${#antifeatures[@]} )) + then echo "Some anti-features are not disabled in build configuration files, aborting:" + for key in ${antifeatures[@]} ; do echo " - ${key} is enabled" ; done ; + return 1 + fi + + popd > /dev/null +} prepare() { mkdir mozbuild - cd mozilla-unified + cd firefox-$pkgver - cat >.mozconfig <../mozconfig <> .mozconfig <<- END - ac_add_options --enable-optimize="-g -O2 -fno-schedule-insns" - END - fi # end [[ $CARCH = arm* ]] - - if [[ $CARCH = i686 ]]; then - sed -i '/--enable-linker=gold/d' .mozconfig - fi # Because gold linker is alergic to some of the compile options set below to limit memory use. - - ## Rebranding - local brandingdir="$srcdir/$pkgname-$_brandingver" - rm -rf -- browser/branding/$pkgname - cp -aT -- $brandingdir/branding browser/branding/$pkgname - # patching - export QUILT_PATCHES=$brandingdir/patches - export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' - export QUILT_DIFF_ARGS='--no-timestamps' - quilt push -av + + ## [ARCH-SPECIFIC CONFIG] ## + + case ${CARCH} in + armv7h) + sed -i ' + /--enable-hardening/d + /--enable-optimize/d + /--enable-rust-simd/d + s|--with-wasi-sysroot=/usr/share/wasi-sysroot|--without-wasm-sandboxed-libraries| + ' ../mozconfig + + cat >>../mozconfig <>../mozconfig < browser/base/content/newtab/newTab.xhtml - - # Load our searchplugins - patch -Np1 -i "$srcdir/libre-searchengines.patch" - rm -rvf -- browser/components/search/searchplugins/{*.xml,images/} - cp -av -- /usr/lib/mozilla/searchplugins/* browser/components/search/searchplugins/ + # apply branding patches + export QUILT_PATCHES="${brandingsrcdir}"/patches + export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' + export QUILT_DIFF_ARGS='--no-timestamps' + export QUILT_PC="${srcdir}"/.pc + quilt push -av + + + ## searchengines ## + + pushd browser/components/search/extensions + + # Patch search-engines configs + sed -i 's|https://duckduckgo.com/|https://html.duckduckgo.com/html/|' ddg/manifest.json + + # Removing URL parameters that let DuckDuckGo know the place in UI + # the search was ran from (like address bar, context menu, etc.) + local jq_cmd='del(.chrome_settings_overrides.search_provider.params)' + jq "${jq_cmd}" ddg/manifest.json > manifest.json.tmp + ! diff manifest.json.tmp ddg/manifest.json > /dev/null + mv manifest.json.tmp ddg/manifest.json + + # Delete unused search engine configs + find -mindepth 1 -maxdepth 1 \ + -not -name ddg \ + -not -name wikipedia \ + -exec rm -frv {} \; + + popd + + + ## libre patching ## + + # Upstream tarball can contain some ignored cruft, + # including binaries (for example, python3). + echo 'Removing files specified in .gitignore...' + git init && git clean -dfX \ + -e '!ipc/chromium/src/third_party/libevent/evconfig-private.h' \ + -e '!toolkit/crashreporter/google-breakpad/src/third_party/lss/' \ + -e '!third_party/python/**/*.egg-info/' + rm -rf .git + + # Remove test-related networking dumps, because they contain code from + # some Amazon webpage with no clear licensing, thus nonfree. + # Also they interfere with checking of Remote Settings patching done later, + # because communication with RS server has been captured in them too. + rm python/mozperftest/mozperftest/system/example.zip + rm testing/mozbase/mozproxy/tests/files/mitm5-linux-firefox-amazon.zip + + # Disable/neutralize Remote Settings (as best we can) + echo "applying 9001-FSDG-always-sync-remote-settings-with-local-dump.patch" + patch -Np1 --no-backup-if-mismatch -i ../9001-FSDG-always-sync-remote-settings-with-local-dump.patch + + # Verify Remote Settings patching + local settings_server='firefox.settings.services.mozilla.com' + ! grep -qr $settings_server || { echo 'Remote Settings patching needs rework'; return 1; } # Disable various components at the source level - sed -i 's/;1/;0/' toolkit/components/telemetry/TelemetryStartup.manifest + sed -i 's/;1/;0/' toolkit/components/telemetry/components.conf + sed -Ei 's/((MOZ_SERVICES_HEALTHREPORT|MOZ_NORMANDY).+)True/\1False/' browser/moz.configure #sed -i 's/;1/;0/' browser/experiments/Experiments.manifest #sed -i '/pocket/d' browser/extensions/moz.build #sed -i '/activity-stream/d' browser/extensions/moz.build + + python ../process-json-files.py "${srcdir}"/firefox-${pkgver} "${brandingsrcdir}" + + echo "applying 9002-FSDG-preference-defaults.patch" + patch -Np1 --no-backup-if-mismatch -i "${srcdir}"/9002-FSDG-preference-defaults.patch + + # Remove remaining non-free bits + echo "applying 9003-FSDG-misc.patch" + patch -Np1 --no-backup-if-mismatch -i "${srcdir}"/9003-FSDG-misc.patch } build() { - cd mozilla-unified + cd firefox-$pkgver + + ## build env ## - export MOZ_SOURCE_REPO="$_repo" export MOZ_NOSPAM=1 export MOZBUILD_STATE_PATH="$srcdir/mozbuild" - - if [[ $CARCH = i686 ]]; then - export RUSTFLAGS+=" -Cdebuginfo=0 -Clto=off" - export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" - echo "Fixing x32 memory limits" - fi #Fix Memory issue + export MACH_USE_SYSTEM_PYTHON=1 # LTO needs more open files ulimit -n 4096 + # clang-{9,10,11} -> error: unknown argument: '-fvar-tracking-assignments' + CFLAGS="${CFLAGS/-fvar-tracking-assignments/}" + CXXFLAGS="${CXXFLAGS/-fvar-tracking-assignments/}" + + + ## [ARCH-SPECIFIC BUILD ENV] ## + + case ${CARCH} in + armv7h) + export MOZ_DEBUG_FLAGS=" " + export CFLAGS+=" -g0" + export CXXFLAGS+=" -g0" + export LDFLAGS+=" -Wl,--no-keep-memory" + export RUSTFLAGS="-Cdebuginfo=0" + ;; + i686) + # -fno-plt with cross-LTO -> LLVM ERROR: Function Import: link error + CFLAGS="${CFLAGS/-fno-plt/}" + CXXFLAGS="${CXXFLAGS/-fno-plt/}" + + # disable LTO (clang has issues on IA32) + export RUSTFLAGS+=" -Cdebuginfo=0 -Clto=off" + export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" + + # libvpx has some hard-coded compiler flags for MMX, SSE, SSE2, use the correct one + # per CARCH (75.0 uses an intrisic _mm_empty now, which required the corresponding + # architecture flag to be preset - before it was merely embedding some assembly + # code with EMMS + export CFLAGS+=" -mmmx" + export CXXFLAGS+=" -mmmx" + ;; + x86_64) + ;; + *) echo "no [ARCH-SPECIFIC BUILD ENV] for arch: ${CARCH}" ; return 1 ; + ;; + esac + export CFLAGS + export CXXFLAGS + + + ## [ARCH-SPECIFIC BUILD CONFIG] ## + + case ${CARCH} in + armv7h) + ;; + i686) + # avoid excessive debug symbols in rust leading to out-of-memory situations + sed -i "s/debug_info = '\''2'\''/debug_info = '\''0'\''/" build/moz.configure/toolchain.configure + ;; + x86_64) + ;; + *) echo "no [ARCH-SPECIFIC BUILD CONFIG] for arch: ${CARCH}" ; return 1 ; + ;; + esac + + + ## PGO build ## + + if (( $_should_skip_pgo )) + then + # skipping "3-tier PGO" "instrumented browser", to avoid OOM problems; + # so we have the final .mozconfig now + cp ../mozconfig .mozconfig + else + # Do 3-tier PGO + echo "Building instrumented browser..." + cat >.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <=${_icu_ver}" "icu<$((${_icu_ver%%.*} + 1))") - - cd mozilla-unified + cd firefox-$pkgver DESTDIR="$pkgdir" ./mach install - find . -name '*crashreporter-symbols-full.zip' -exec cp -fvt "$startdir" {} + - _vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js" - install -Dm644 /dev/stdin "$_vendorjs" <> "$_vendorjs" <> "${vendorjs}" - _distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini" - install -Dm644 /dev/stdin "$_distini" < "${pkgdir}"/etc/ld.so.conf.d/${pkgname}.conf + ;; + x86_64) + ;; + *) echo "no [ARCH-SPECIFIC INSTALL] for arch: ${CARCH}" ; return 1 ; + ;; + esac + # Replace duplicate binary with wrapper # https://bugzilla.mozilla.org/show_bug.cgi?id=658850 - ln -srf "$pkgdir/usr/bin/$pkgname" \ - "$pkgdir/usr/lib/$pkgname/$pkgname-bin" + ln -srfv "$pkgdir/usr/bin/$pkgname" "$pkgdir/usr/lib/$pkgname/$pkgname-bin" + + # Use system certificates + local nssckbi="$pkgdir/usr/lib/$pkgname/libnssckbi.so" + if [[ -e $nssckbi ]]; then + ln -srfv "$pkgdir/usr/lib/libnssckbi.so" "$nssckbi" + fi } diff --git a/libre-testing/iceweasel/iceweasel.desktop b/libre-testing/iceweasel/iceweasel.desktop index ab230ba5a..f47d7a4f8 100644 --- a/libre-testing/iceweasel/iceweasel.desktop +++ b/libre-testing/iceweasel/iceweasel.desktop @@ -2,7 +2,7 @@ Version=1.0 Name=Iceweasel GenericName=Web Browser -GenericName[ar]=متصفح وِب +GenericName[ar]=متصفح ويب GenericName[ast]=Restolador Web GenericName[bn]=ওয়েব ব্রাউজার GenericName[ca]=Navegador web @@ -19,7 +19,7 @@ GenericName[gl]=Navegador Web GenericName[he]=דפדפן אינטרנט GenericName[hr]=Web preglednik GenericName[hu]=Webböngésző -GenericName[it]=Browser Web +GenericName[it]=Browser web GenericName[ja]=ウェブ・ブラウザ GenericName[ko]=웹 브라우저 GenericName[ku]=Geroka torê @@ -42,8 +42,8 @@ GenericName[uk]=Веб-браузер GenericName[vi]=Trình duyệt Web GenericName[zh_CN]=网络浏览器 GenericName[zh_TW]=網路瀏覽器 -Comment=Browse the Web -Comment[ar]=تصفح الوِب +Comment=Browse the World Wide Web +Comment[ar]=تصفح الشبكة العنكبوتية العالمية Comment[ast]=Restola pela Rede Comment[bn]=ইন্টারনেট ব্রাউজ করুন Comment[ca]=Navegueu per el web @@ -83,15 +83,44 @@ 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;Διαδίκτυο;Περιηγητής;Ιντερνετ +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;网页;浏览;上网;火狐;互联网;网站; +Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐 Exec=/usr/lib/iceweasel/iceweasel %u Icon=iceweasel Terminal=false +X-MultipleArgs=false Type=Application -MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; +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=Iceweasel +StartupWMClass=iceweasel Categories=Network;WebBrowser; -Keywords=web;browser;internet; Actions=new-window;new-private-window; [Desktop Action new-window] @@ -309,3 +338,4 @@ Name[xh]=Ifestile yangasese entsha Name[zh_CN]=新建隐私浏览窗口 Name[zh_TW]=新增隱私視窗 Exec=/usr/lib/iceweasel/iceweasel --private-window %u + -- cgit v1.2.3