From 1299a82d796e5355ed3c4c63ed8c5217ea5b278f Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Sep 2026 16:46:01 -0400 Subject: [PATCH 1/2] Package the browsers Omarchy installs from the AUR omarchy-install-browser still reaches for yay to install Chrome, Edge, Brave, Brave Origin and Zen. These were the only packages anywhere in Omarchy's installers and menus that aren't available from core, extra, multilib or OPR. Serving them from OPR means installing any Omarchy browser no longer depends on the AUR being up. Imported once from the AUR with bin/add-package, on the fast ring so browser security releases reach stable promptly, each with a direct vendor watch: - google-chrome: Google's stable apt index - microsoft-edge-stable-bin: Microsoft's stable apt index - brave-bin, brave-origin-bin: Brave's stable apt index. Brave's GitHub releases can't be used because nightlies aren't marked as prereleases there. - zen-browser-bin: GitHub releases (the twilight tag doesn't match) Package names match what Omarchy's scripts already check for, so the existing omarchy-pkg-aur-add calls resolve to the repo package without any change on the Omarchy side. Validation: upstream-watch check reports all five as current. A sync of downgraded copies of zen-browser-bin and brave-origin-bin reproduces the checked-in pkgver and both architectures' checksums. All five build with makepkg on x86_64, and the launchers, desktop IDs and /opt paths match what omarchy-default-browser and omarchy-theme-set-browser use. Co-Authored-By: Claude Opus 5.5 (1M context) --- pkgbuilds/brave-bin/.omarchy/package.json | 15 + pkgbuilds/brave-bin/PKGBUILD | 62 ++ pkgbuilds/brave-bin/brave-bin.sh | 25 + pkgbuilds/brave-bin/brave-browser.desktop | 224 +++++ .../brave-origin-bin/.omarchy/package.json | 15 + pkgbuilds/brave-origin-bin/PKGBUILD | 46 + .../brave-origin-bin/brave-origin-bin.sh | 25 + .../brave-origin-bin/brave-origin.desktop | 222 +++++ pkgbuilds/google-chrome/.nvchecker.toml | 7 + pkgbuilds/google-chrome/.omarchy/package.json | 15 + pkgbuilds/google-chrome/PKGBUILD | 76 ++ pkgbuilds/google-chrome/eula_text.html | 901 ++++++++++++++++++ .../google-chrome/google-chrome-stable.sh | 11 + pkgbuilds/google-chrome/google-chrome.install | 14 + .../microsoft-edge-stable-bin/.nvchecker.toml | 4 + .../.omarchy/package.json | 15 + ...se Terms - Standalone (free) Use Terms.pdf | Bin 0 -> 87033 bytes pkgbuilds/microsoft-edge-stable-bin/PKGBUILD | 69 ++ .../microsoft-edge-stable.install | 22 + .../microsoft-edge-stable.sh | 15 + pkgbuilds/zen-browser-bin/.nvchecker.toml | 3 + .../zen-browser-bin/.omarchy/package.json | 14 + pkgbuilds/zen-browser-bin/PKGBUILD | 74 ++ pkgbuilds/zen-browser-bin/policies.json | 6 + pkgbuilds/zen-browser-bin/zen-browser.sh | 3 + pkgbuilds/zen-browser-bin/zen.desktop | 697 ++++++++++++++ 26 files changed, 2580 insertions(+) create mode 100644 pkgbuilds/brave-bin/.omarchy/package.json create mode 100644 pkgbuilds/brave-bin/PKGBUILD create mode 100644 pkgbuilds/brave-bin/brave-bin.sh create mode 100644 pkgbuilds/brave-bin/brave-browser.desktop create mode 100644 pkgbuilds/brave-origin-bin/.omarchy/package.json create mode 100644 pkgbuilds/brave-origin-bin/PKGBUILD create mode 100755 pkgbuilds/brave-origin-bin/brave-origin-bin.sh create mode 100644 pkgbuilds/brave-origin-bin/brave-origin.desktop create mode 100644 pkgbuilds/google-chrome/.nvchecker.toml create mode 100644 pkgbuilds/google-chrome/.omarchy/package.json create mode 100644 pkgbuilds/google-chrome/PKGBUILD create mode 100644 pkgbuilds/google-chrome/eula_text.html create mode 100644 pkgbuilds/google-chrome/google-chrome-stable.sh create mode 100644 pkgbuilds/google-chrome/google-chrome.install create mode 100644 pkgbuilds/microsoft-edge-stable-bin/.nvchecker.toml create mode 100644 pkgbuilds/microsoft-edge-stable-bin/.omarchy/package.json create mode 100644 pkgbuilds/microsoft-edge-stable-bin/Microsoft Standard Application License Terms - Standalone (free) Use Terms.pdf create mode 100644 pkgbuilds/microsoft-edge-stable-bin/PKGBUILD create mode 100644 pkgbuilds/microsoft-edge-stable-bin/microsoft-edge-stable.install create mode 100644 pkgbuilds/microsoft-edge-stable-bin/microsoft-edge-stable.sh create mode 100644 pkgbuilds/zen-browser-bin/.nvchecker.toml create mode 100644 pkgbuilds/zen-browser-bin/.omarchy/package.json create mode 100644 pkgbuilds/zen-browser-bin/PKGBUILD create mode 100644 pkgbuilds/zen-browser-bin/policies.json create mode 100755 pkgbuilds/zen-browser-bin/zen-browser.sh create mode 100644 pkgbuilds/zen-browser-bin/zen.desktop diff --git a/pkgbuilds/brave-bin/.omarchy/package.json b/pkgbuilds/brave-bin/.omarchy/package.json new file mode 100644 index 0000000..5528ad1 --- /dev/null +++ b/pkgbuilds/brave-bin/.omarchy/package.json @@ -0,0 +1,15 @@ +{ + "source": "local", + "release_ring": "fast", + "upstream": { + "watch": { + "debian": "https://brave-browser-apt-release.s3.brave.com/dists/stable/main/binary-amd64/Packages", + "package": "brave-browser", + "pattern": "(?P[0-9]+(?:\\.[0-9]+)*)" + } + }, + "origin": { + "aur": "brave-bin", + "commit": "d86e5479e163dac19d7ace3de472710e6eb06eea" + } +} diff --git a/pkgbuilds/brave-bin/PKGBUILD b/pkgbuilds/brave-bin/PKGBUILD new file mode 100644 index 0000000..bc22fcf --- /dev/null +++ b/pkgbuilds/brave-bin/PKGBUILD @@ -0,0 +1,62 @@ +# Maintainer: brave +# Contributor: Caleb Maclennan +# Contributor: José Miguel Sarasola +# Contributor: Như Bảo Trương <28810481+nhubaotruong@users.noreply.github.com> +# Contributor: Andrés Rodríguez +# Contributor: Jacob Mischka +# Contributor: Manuel Mazzuola +# Contributor: Simón Oroño +# Contributor: now-im +# Contributor: Giusy Digital + +pkgname=brave-bin +pkgver=1.96.59 +pkgrel=1 +epoch=1 +pkgdesc='Web browser that blocks ads and trackers by default (binary release)' +arch=(x86_64 aarch64) +url=https://brave.com +license=(MPL2 BSD custom:chromium) +depends=(alsa-lib + gtk3 + libxss + nss + ttf-font) +optdepends=('cups: Printer support' + 'libgnome-keyring: Enable GNOME keyring support' + 'libnotify: Native notification support') +provides=("${pkgname%-bin}=$pkgver" 'brave-browser') +conflicts=("${pkgname%-bin}") +options=(!strip) +source=($pkgname.sh brave-browser.desktop) +source_x86_64=(${pkgname}-${pkgver}-x86_64.zip::https://github.com/brave/brave-browser/releases/download/v${pkgver}/brave-browser-${pkgver}-linux-amd64.zip) +source_aarch64=(${pkgname}-${pkgver}-aarch64.zip::https://github.com/brave/brave-browser/releases/download/v${pkgver}/brave-browser-${pkgver}-linux-arm64.zip) + +noextract=(${pkgname}-${pkgver}-x86_64.zip ${pkgname}-${pkgver}-aarch64.zip) +sha256sums=('75a87dd17b42fcc6f27adfd16c82bed1c08e9251b07d2012f8d49f7412fa1d00' + 'c07276b69c7304981525ecb022f92daf7ae125a4fb05ac3442157b50826e257a') +sha256sums_x86_64=('ee36d0fb939ebdf1922d47d7b4cb8879507733b2a76605a31bfe9dede3297139') +sha256sums_aarch64=('faa8a26f1e7c0c3b8632633503f82e571a798212d8e6fe9baba77f0c73509867') + +prepare() { + mkdir -p brave + bsdtar -xf "$pkgname-$pkgver-$CARCH.zip" -C brave + chmod +x brave/brave +} + +package() { + install -dm0755 "$pkgdir/opt" + cp -a brave "$pkgdir/opt/$pkgname" + + # allow firejail users to get the suid sandbox working + chmod 4755 "$pkgdir/opt/brave-bin/chrome-sandbox" + + install -Dm0755 "$pkgname.sh" "$pkgdir/usr/bin/brave" + install -Dm0644 -t "$pkgdir/usr/share/applications/" "brave-browser.desktop" + install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" brave/LICENSE + pushd "$pkgdir/usr/" + for size in 16x16 24x24 32x32 48x48 64x64 128x128 256x256; do + install -Dm0644 "$pkgdir/opt/$pkgname/product_logo_${size/x*/}.png" \ + "share/icons/hicolor/$size/apps/brave-desktop.png" + done +} diff --git a/pkgbuilds/brave-bin/brave-bin.sh b/pkgbuilds/brave-bin/brave-bin.sh new file mode 100644 index 0000000..31c435c --- /dev/null +++ b/pkgbuilds/brave-bin/brave-bin.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-"${HOME}/.config"}" + +CONF_FILE="${XDG_CONFIG_HOME}/brave-flags.conf" + +if + test -f "${CONF_FILE}" +then + mapfile -t CONF_LIST < "${CONF_FILE}" +fi + +for CONF_LINE in "${CONF_LIST[@]}" +do + if ! [[ + "${CONF_LINE}" =~ ^[[:space:]]*(#|$) + ]] + then + FLAG_LIST+=("${CONF_LINE}") + fi +done + +export CHROME_VERSION_EXTRA='stable' + +exec /opt/brave-bin/brave "${FLAG_LIST[@]}" "${@}" diff --git a/pkgbuilds/brave-bin/brave-browser.desktop b/pkgbuilds/brave-bin/brave-browser.desktop new file mode 100644 index 0000000..7bc7312 --- /dev/null +++ b/pkgbuilds/brave-bin/brave-browser.desktop @@ -0,0 +1,224 @@ +[Desktop Entry] +Version=1.0 +Name=Brave +# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. +# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. +GenericName=Web Browser +GenericName[ar]=متصفح الشبكة +GenericName[bg]=Уеб браузър +GenericName[ca]=Navegador web +GenericName[cs]=WWW prohlížeč +GenericName[da]=Browser +GenericName[de]=Web-Browser +GenericName[el]=Περιηγητής ιστού +GenericName[en_GB]=Web Browser +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fi]=WWW-selain +GenericName[fr]=Navigateur Web +GenericName[gu]=વેબ બ્રાઉઝર +GenericName[he]=דפדפן אינטרנט +GenericName[hi]=वेब ब्राउज़र +GenericName[hu]=Webböngésző +GenericName[it]=Browser Web +GenericName[ja]=ウェブブラウザ +GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ +GenericName[ko]=웹 브라우저 +GenericName[lt]=Žiniatinklio naršyklė +GenericName[lv]=Tīmekļa pārlūks +GenericName[ml]=വെബ് ബ്രൌസര്‍ +GenericName[mr]=वेब ब्राऊजर +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador da Internet +GenericName[ro]=Navigator de Internet +GenericName[ru]=Веб-браузер +GenericName[sl]=Spletni brskalnik +GenericName[sv]=Webbläsare +GenericName[ta]=இணைய உலாவி +GenericName[th]=เว็บเบราว์เซอร์ +GenericName[tr]=Web Tarayıcı +GenericName[uk]=Навігатор Тенет +GenericName[zh_CN]=网页浏览器 +GenericName[zh_HK]=網頁瀏覽器 +GenericName[zh_TW]=網頁瀏覽器 +# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[fil]=Web Browser +GenericName[hr]=Web preglednik +GenericName[id]=Browser Web +GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର +GenericName[sk]=WWW prehliadač +GenericName[sr]=Интернет прегледник +GenericName[te]=మహాతల అన్వేషి +GenericName[vi]=Bộ duyệt Web +# Gnome and KDE 3 uses Comment. +Comment=Access the Internet +Comment[ar]=الدخول إلى الإنترنت +Comment[bg]=Достъп до интернет +Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন +Comment[ca]=Accedeix a Internet +Comment[cs]=Přístup k internetu +Comment[da]=Få adgang til internettet +Comment[de]=Internetzugriff +Comment[el]=Πρόσβαση στο Διαδίκτυο +Comment[en_GB]=Access the Internet +Comment[es]=Accede a Internet. +Comment[et]=Pääs Internetti +Comment[fi]=Käytä internetiä +Comment[fil]=I-access ang Internet +Comment[fr]=Accéder à Internet +Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો +Comment[he]=גישה אל האינטרנט +Comment[hi]=इंटरनेट तक पहुंच स्थापित करें +Comment[hr]=Pristup Internetu +Comment[hu]=Internetelérés +Comment[id]=Akses Internet +Comment[it]=Accesso a Internet +Comment[ja]=インターネットにアクセス +Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ +Comment[ko]=인터넷 연결 +Comment[lt]=Interneto prieiga +Comment[lv]=Piekļūt internetam +Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക +Comment[mr]=इंटरनेटमध्ये प्रवेश करा +Comment[nb]=Gå til Internett +Comment[nl]=Verbinding maken met internet +Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ +Comment[pl]=Skorzystaj z internetu +Comment[pt]=Aceder à Internet +Comment[pt_BR]=Acessar a internet +Comment[ro]=Accesaţi Internetul +Comment[ru]=Доступ в Интернет +Comment[sk]=Prístup do siete Internet +Comment[sl]=Dostop do interneta +Comment[sr]=Приступите Интернету +Comment[sv]=Gå ut på Internet +Comment[ta]=இணையத்தை அணுகுதல் +Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి +Comment[th]=เข้าถึงอินเทอร์เน็ต +Comment[tr]=İnternet'e erişin +Comment[uk]=Доступ до Інтернету +Comment[vi]=Truy cập Internet +Comment[zh_CN]=访问互联网 +Comment[zh_HK]=連線到網際網路 +Comment[zh_TW]=連線到網際網路 +StartupNotify=true +StartupWMClass=brave-browser +TryExec=brave +Exec=brave %U +Terminal=false +Icon=brave-desktop +Type=Application +Categories=Network;WebBrowser; +MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ipfs;x-scheme-handler/ipns; +Actions=new-window;new-private-window; + +[Desktop Action new-window] +Name=New Window +Name[am]=አዲስ መስኮት +Name[ar]=نافذة جديدة +Name[bg]=Нов прозорец +Name[bn]=নতুন উইন্ডো +Name[ca]=Finestra nova +Name[cs]=Nové okno +Name[da]=Nyt vindue +Name[de]=Neues Fenster +Name[el]=Νέο Παράθυρο +Name[en_GB]=New Window +Name[es]=Nueva ventana +Name[et]=Uus aken +Name[fa]=پنجره جدید +Name[fi]=Uusi ikkuna +Name[fil]=New Window +Name[fr]=Nouvelle fenêtre +Name[gu]=નવી વિંડો +Name[hi]=नई विंडो +Name[hr]=Novi prozor +Name[hu]=Új ablak +Name[id]=Jendela Baru +Name[it]=Nuova finestra +Name[iw]=חלון חדש +Name[ja]=新規ウインドウ +Name[kn]=ಹೊಸ ವಿಂಡೊ +Name[ko]=새 창 +Name[lt]=Naujas langas +Name[lv]=Jauns logs +Name[ml]=പുതിയ വിന്‍ഡോ +Name[mr]=नवीन विंडो +Name[nl]=Nieuw venster +Name[no]=Nytt vindu +Name[pl]=Nowe okno +Name[pt]=Nova janela +Name[pt_BR]=Nova janela +Name[ro]=Fereastră nouă +Name[ru]=Новое окно +Name[sk]=Nové okno +Name[sl]=Novo okno +Name[sr]=Нови прозор +Name[sv]=Nytt fönster +Name[sw]=Dirisha Jipya +Name[ta]=புதிய சாளரம் +Name[te]=క్రొత్త విండో +Name[th]=หน้าต่างใหม่ +Name[tr]=Yeni Pencere +Name[uk]=Нове вікно +Name[vi]=Cửa sổ Mới +Name[zh_CN]=新建窗口 +Name[zh_TW]=開新視窗 +Exec=brave + +[Desktop Action new-private-window] +Name=New Incognito Window +Name[ar]=نافذة جديدة للتصفح المتخفي +Name[bg]=Нов прозорец „инкогнито“ +Name[bn]=নতুন ছদ্মবেশী উইন্ডো +Name[ca]=Finestra d'incògnit nova +Name[cs]=Nové anonymní okno +Name[da]=Nyt inkognitovindue +Name[de]=Neues Inkognito-Fenster +Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση +Name[en_GB]=New Incognito window +Name[es]=Nueva ventana de incógnito +Name[et]=Uus inkognito aken +Name[fa]=پنجره جدید حالت ناشناس +Name[fi]=Uusi incognito-ikkuna +Name[fil]=Bagong Incognito window +Name[fr]=Nouvelle fenêtre de navigation privée +Name[gu]=નવી છુપી વિંડો +Name[hi]=नई गुप्त विंडो +Name[hr]=Novi anoniman prozor +Name[hu]=Új Inkognitóablak +Name[id]=Jendela Penyamaran baru +Name[it]=Nuova finestra di navigazione in incognito +Name[iw]=חלון חדש לגלישה בסתר +Name[ja]=新しいシークレット ウィンドウ +Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ +Name[ko]=새 시크릿 창 +Name[lt]=Naujas inkognito langas +Name[lv]=Jauns inkognito režīma logs +Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്‍ഡോ +Name[mr]=नवीन गुप्त विंडो +Name[nl]=Nieuw incognitovenster +Name[no]=Nytt inkognitovindu +Name[pl]=Nowe okno incognito +Name[pt]=Nova janela de navegação anónima +Name[pt_BR]=Nova janela anônima +Name[ro]=Fereastră nouă incognito +Name[ru]=Новое окно в режиме инкогнито +Name[sk]=Nové okno inkognito +Name[sl]=Novo okno brez beleženja zgodovine +Name[sr]=Нови прозор за прегледање без архивирања +Name[sv]=Nytt inkognitofönster +Name[ta]=புதிய மறைநிலைச் சாளரம் +Name[te]=క్రొత్త అజ్ఞాత విండో +Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน +Name[tr]=Yeni Gizli pencere +Name[uk]=Нове вікно в режимі анонімного перегляду +Name[vi]=Cửa sổ ẩn danh mới +Name[zh_CN]=新建隐身窗口 +Name[zh_TW]=新增無痕式視窗 +Exec=brave --incognito +MimeType=x-scheme-handler/unknown;x-scheme-handler/about;text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https; diff --git a/pkgbuilds/brave-origin-bin/.omarchy/package.json b/pkgbuilds/brave-origin-bin/.omarchy/package.json new file mode 100644 index 0000000..c9d5160 --- /dev/null +++ b/pkgbuilds/brave-origin-bin/.omarchy/package.json @@ -0,0 +1,15 @@ +{ + "source": "local", + "release_ring": "fast", + "upstream": { + "watch": { + "debian": "https://brave-browser-apt-release.s3.brave.com/dists/stable/main/binary-amd64/Packages", + "package": "brave-origin", + "pattern": "(?P[0-9]+(?:\\.[0-9]+)*)" + } + }, + "origin": { + "aur": "brave-origin-bin", + "commit": "f2daecf7b7576cd445094ed09c3c783619ca0eb2" + } +} diff --git a/pkgbuilds/brave-origin-bin/PKGBUILD b/pkgbuilds/brave-origin-bin/PKGBUILD new file mode 100644 index 0000000..8cf617b --- /dev/null +++ b/pkgbuilds/brave-origin-bin/PKGBUILD @@ -0,0 +1,46 @@ +# Maintainer: brave + +pkgname=brave-origin-bin +pkgver=1.96.59 +pkgrel=1 +epoch=1 +pkgdesc='The minimalist browser from the makers of Brave (binary release).' +arch=(x86_64 aarch64) +url=https://brave.com/origin/download +license=('MPL2') +depends=(alsa-lib gtk3 libxss nss ttf-font) +optdepends=('cups: Printer support' + 'libgnome-keyring: Enable GNOME keyring support' + 'libnotify: Native notification support') +provides=("$pkgname" "${pkgname%-bin}") +conflicts=("${pkgname%-bin}") +options=(!strip) +source=($pkgname.sh "${pkgname%-bin}.desktop") +source_x86_64=("${pkgname}-${pkgver}-x86_64.zip::https://github.com/brave/brave-browser/releases/download/v${pkgver}/brave-origin-${pkgver}-linux-amd64.zip") +source_aarch64=("${pkgname}-${pkgver}-aarch64.zip::https://github.com/brave/brave-browser/releases/download/v${pkgver}/brave-origin-${pkgver}-linux-arm64.zip") + +noextract=("${pkgname}-${pkgver}-x86_64.zip" "${pkgname}-${pkgver}-aarch64.zip") +sha256sums=('5ff70ee473f35c2fc7642c422c8abe20aaac0d7cc30a3292744eb9fbeafba1bd' + 'c70bc71c696b6764247070375ae111bd76c8bad9c7bda4d46e03975b95571a8a') +sha256sums_x86_64=('ad71abea5326d15bbe813a1e9592bcf2383f2ecc083a432313ca80b4436d3797') +sha256sums_aarch64=('68d1fb922e0ad25099081a32a7f0611f2657345726590b697eaf6bbb820848ee') + +prepare() { + mkdir -p brave + bsdtar -xf "$pkgname-$pkgver-$CARCH.zip" -C brave + chmod +x brave/brave +} + +package() { + install -dm0755 "$pkgdir/opt" + cp -a brave "$pkgdir/opt/$pkgname" + chmod 4755 "$pkgdir/opt/$pkgname/chrome-sandbox" + install -Dm0755 "$pkgname.sh" "$pkgdir/usr/bin/${pkgname%-bin}" + install -Dm0644 -t "$pkgdir/usr/share/applications/" "${pkgname%-bin}.desktop" + install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" brave/LICENSE + pushd "$pkgdir/usr/" + for size in 16x16 24x24 32x32 48x48 64x64 128x128 256x256; do + install -Dm0644 "$pkgdir/opt/$pkgname/product_logo_${size/x*/}.png" \ + "share/icons/hicolor/$size/apps/brave-origin.png" + done +} diff --git a/pkgbuilds/brave-origin-bin/brave-origin-bin.sh b/pkgbuilds/brave-origin-bin/brave-origin-bin.sh new file mode 100755 index 0000000..67a5e73 --- /dev/null +++ b/pkgbuilds/brave-origin-bin/brave-origin-bin.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-"${HOME}/.config"}" + +CONF_FILE="${XDG_CONFIG_HOME}/brave-origin-flags.conf" + +if + test -f "${CONF_FILE}" +then + mapfile -t CONF_LIST < "${CONF_FILE}" +fi + +for CONF_LINE in "${CONF_LIST[@]}" +do + if ! [[ + "${CONF_LINE}" =~ ^[[:space:]]*(#|$) + ]] + then + FLAG_LIST+=("${CONF_LINE}") + fi +done + +export CHROME_VERSION_EXTRA='stable' + +exec /opt/brave-origin-bin/brave-origin "${FLAG_LIST[@]}" "${@}" diff --git a/pkgbuilds/brave-origin-bin/brave-origin.desktop b/pkgbuilds/brave-origin-bin/brave-origin.desktop new file mode 100644 index 0000000..d16f1fb --- /dev/null +++ b/pkgbuilds/brave-origin-bin/brave-origin.desktop @@ -0,0 +1,222 @@ +[Desktop Entry] +Version=1.0 +Name=Brave Origin +# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. +# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. +GenericName=Web Browser +GenericName[ar]=متصفح الشبكة +GenericName[bg]=Уеб браузър +GenericName[ca]=Navegador web +GenericName[cs]=WWW prohlížeč +GenericName[da]=Browser +GenericName[de]=Web-Browser +GenericName[el]=Περιηγητής ιστού +GenericName[en_GB]=Web Browser +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fi]=WWW-selain +GenericName[fr]=Navigateur Web +GenericName[gu]=વેબ બ્રાઉઝર +GenericName[he]=דפדפן אינטרנט +GenericName[hi]=वेब ब्राउज़र +GenericName[hu]=Webböngésző +GenericName[it]=Browser Web +GenericName[ja]=ウェブブラウザ +GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ +GenericName[ko]=웹 브라우저 +GenericName[lt]=Žiniatinklio naršyklė +GenericName[lv]=Tīmekļa pārlūks +GenericName[ml]=വെബ് ബ്രൌസര്‍ +GenericName[mr]=वेब ब्राऊजर +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador da Internet +GenericName[ro]=Navigator de Internet +GenericName[ru]=Веб-браузер +GenericName[sl]=Spletni brskalnik +GenericName[sv]=Webbläsare +GenericName[ta]=இணைய உலாவி +GenericName[th]=เว็บเบราว์เซอร์ +GenericName[tr]=Web Tarayıcı +GenericName[uk]=Навігатор Тенет +GenericName[zh_CN]=网页浏览器 +GenericName[zh_HK]=網頁瀏覽器 +GenericName[zh_TW]=網頁瀏覽器 +# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[fil]=Web Browser +GenericName[hr]=Web preglednik +GenericName[id]=Browser Web +GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର +GenericName[sk]=WWW prehliadač +GenericName[sr]=Интернет прегледник +GenericName[te]=మహాతల అన్వేషి +GenericName[vi]=Bộ duyệt Web +# Gnome and KDE 3 uses Comment. +Comment=Access the Internet +Comment[ar]=الدخول إلى الإنترنت +Comment[bg]=Достъп до интернет +Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন +Comment[ca]=Accedeix a Internet +Comment[cs]=Přístup k internetu +Comment[da]=Få adgang til internettet +Comment[de]=Internetzugriff +Comment[el]=Πρόσβαση στο Διαδίκτυο +Comment[en_GB]=Access the Internet +Comment[es]=Accede a Internet. +Comment[et]=Pääs Internetti +Comment[fi]=Käytä internetiä +Comment[fil]=I-access ang Internet +Comment[fr]=Accéder à Internet +Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો +Comment[he]=גישה אל האינטרנט +Comment[hi]=इंटरनेट तक पहुंच स्थापित करें +Comment[hr]=Pristup Internetu +Comment[hu]=Internetelérés +Comment[id]=Akses Internet +Comment[it]=Accesso a Internet +Comment[ja]=インターネットにアクセス +Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ +Comment[ko]=인터넷 연결 +Comment[lt]=Interneto prieiga +Comment[lv]=Piekļūt internetam +Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക +Comment[mr]=इंटरनेटमध्ये प्रवेश करा +Comment[nb]=Gå til Internett +Comment[nl]=Verbinding maken met internet +Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ +Comment[pl]=Skorzystaj z internetu +Comment[pt]=Aceder à Internet +Comment[pt_BR]=Acessar a internet +Comment[ro]=Accesaţi Internetul +Comment[ru]=Доступ в Интернет +Comment[sk]=Prístup do siete Internet +Comment[sl]=Dostop do interneta +Comment[sr]=Приступите Интернету +Comment[sv]=Gå ut på Internet +Comment[ta]=இணையத்தை அணுகுதல் +Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి +Comment[th]=เข้าถึงอินเทอร์เน็ต +Comment[tr]=İnternet'e erişin +Comment[uk]=Доступ до Інтернету +Comment[vi]=Truy cập Internet +Comment[zh_CN]=访问互联网 +Comment[zh_HK]=連線到網際網路 +Comment[zh_TW]=連線到網際網路 +StartupNotify=true +StartupWMClass=brave-origin +Exec=brave-origin %U +Terminal=false +Icon=brave-origin +Type=Application +Categories=Network;WebBrowser; +MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/chromium; +Actions=new-window;new-private-window; + +[Desktop Action new-window] +Name=New Window +Name[am]=አዲስ መስኮት +Name[ar]=نافذة جديدة +Name[bg]=Нов прозорец +Name[bn]=নতুন উইন্ডো +Name[ca]=Finestra nova +Name[cs]=Nové okno +Name[da]=Nyt vindue +Name[de]=Neues Fenster +Name[el]=Νέο Παράθυρο +Name[en_GB]=New Window +Name[es]=Nueva ventana +Name[et]=Uus aken +Name[fa]=پنجره جدید +Name[fi]=Uusi ikkuna +Name[fil]=New Window +Name[fr]=Nouvelle fenêtre +Name[gu]=નવી વિંડો +Name[hi]=नई विंडो +Name[hr]=Novi prozor +Name[hu]=Új ablak +Name[id]=Jendela Baru +Name[it]=Nuova finestra +Name[iw]=חלון חדש +Name[ja]=新規ウインドウ +Name[kn]=ಹೊಸ ವಿಂಡೊ +Name[ko]=새 창 +Name[lt]=Naujas langas +Name[lv]=Jauns logs +Name[ml]=പുതിയ വിന്‍ഡോ +Name[mr]=नवीन विंडो +Name[nl]=Nieuw venster +Name[no]=Nytt vindu +Name[pl]=Nowe okno +Name[pt]=Nova janela +Name[pt_BR]=Nova janela +Name[ro]=Fereastră nouă +Name[ru]=Новое окно +Name[sk]=Nové okno +Name[sl]=Novo okno +Name[sr]=Нови прозор +Name[sv]=Nytt fönster +Name[sw]=Dirisha Jipya +Name[ta]=புதிய சாளரம் +Name[te]=క్రొత్త విండో +Name[th]=หน้าต่างใหม่ +Name[tr]=Yeni Pencere +Name[uk]=Нове вікно +Name[vi]=Cửa sổ Mới +Name[zh_CN]=新建窗口 +Name[zh_TW]=開新視窗 +Exec=brave-origin + +[Desktop Action new-private-window] +Name=New Incognito Window +Name[ar]=نافذة جديدة للتصفح المتخفي +Name[bg]=Нов прозорец „инкогнито“ +Name[bn]=নতুন ছদ্মবেশী উইন্ডো +Name[ca]=Finestra d'incògnit nova +Name[cs]=Nové anonymní okno +Name[da]=Nyt inkognitovindue +Name[de]=Neues Inkognito-Fenster +Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση +Name[en_GB]=New Incognito window +Name[es]=Nueva ventana de incógnito +Name[et]=Uus inkognito aken +Name[fa]=پنجره جدید حالت ناشناس +Name[fi]=Uusi incognito-ikkuna +Name[fil]=Bagong Incognito window +Name[fr]=Nouvelle fenêtre de navigation privée +Name[gu]=નવી છુપી વિંડો +Name[hi]=नई गुप्त विंडो +Name[hr]=Novi anoniman prozor +Name[hu]=Új Inkognitóablak +Name[id]=Jendela Penyamaran baru +Name[it]=Nuova finestra di navigazione in incognito +Name[iw]=חלון חדש לגלישה בסתר +Name[ja]=新しいシークレット ウィンドウ +Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ +Name[ko]=새 시크릿 창 +Name[lt]=Naujas inkognito langas +Name[lv]=Jauns inkognito režīma logs +Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്‍ഡോ +Name[mr]=नवीन गुप्त विंडो +Name[nl]=Nieuw incognitovenster +Name[no]=Nytt inkognitovindu +Name[pl]=Nowe okno incognito +Name[pt]=Nova janela de navegação anónima +Name[pt_BR]=Nova janela anônima +Name[ro]=Fereastră nouă incognito +Name[ru]=Новое окно в режиме инкогнито +Name[sk]=Nové okno inkognito +Name[sl]=Novo okno brez beleženja zgodovine +Name[sr]=Нови прозор за прегледање без архивирања +Name[sv]=Nytt inkognitofönster +Name[ta]=புதிய மறைநிலைச் சாளரம் +Name[te]=క్రొత్త అజ్ఞాత విండో +Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน +Name[tr]=Yeni Gizli pencere +Name[uk]=Нове вікно в режимі анонімного перегляду +Name[vi]=Cửa sổ ẩn danh mới +Name[zh_CN]=新建隐身窗口 +Name[zh_TW]=新增無痕式視窗 +Exec=brave-origin --incognito diff --git a/pkgbuilds/google-chrome/.nvchecker.toml b/pkgbuilds/google-chrome/.nvchecker.toml new file mode 100644 index 0000000..55dc5e0 --- /dev/null +++ b/pkgbuilds/google-chrome/.nvchecker.toml @@ -0,0 +1,7 @@ +[google-chrome] +source = "apt" +mirror = "https://dl.google.com/linux/chrome/deb/" +pkg = "google-chrome-stable" +suite = "stable" +repo = "main" +strip_release = true diff --git a/pkgbuilds/google-chrome/.omarchy/package.json b/pkgbuilds/google-chrome/.omarchy/package.json new file mode 100644 index 0000000..dbc6199 --- /dev/null +++ b/pkgbuilds/google-chrome/.omarchy/package.json @@ -0,0 +1,15 @@ +{ + "source": "local", + "release_ring": "fast", + "upstream": { + "watch": { + "debian": "https://dl.google.com/linux/chrome/deb/dists/stable/main/binary-amd64/Packages", + "package": "google-chrome-stable", + "pattern": "(?P[0-9]+(?:\\.[0-9]+)*)-1" + } + }, + "origin": { + "aur": "google-chrome", + "commit": "6bd49a411277b3f9bcc9e58ce0c579292db75804" + } +} diff --git a/pkgbuilds/google-chrome/PKGBUILD b/pkgbuilds/google-chrome/PKGBUILD new file mode 100644 index 0000000..cc2f4fc --- /dev/null +++ b/pkgbuilds/google-chrome/PKGBUILD @@ -0,0 +1,76 @@ +# Maintainer: Christian Heusel +# Contributor: Knut Ahlers +# Contributor: Det +# Contributor: t3ddy, Lex Rivera aka x-demon, ruario, Abdullah + +# Check for new Linux releases in: http://googlechromereleases.blogspot.com/search/label/Stable%20updates +# or use: $ curl -sSf https://dl.google.com/linux/chrome/deb/dists/stable/main/binary-amd64/Packages | grep -A1 "Package: google-chrome-stable" | awk '/Version/{print $2}' | cut -d '-' -f1 + +pkgname=google-chrome +pkgver=154.0.8037.57 +pkgrel=1 +pkgdesc="The popular web browser by Google (Stable Channel)" +arch=( + 'x86_64' + 'aarch64' +) +url="https://www.google.com/chrome" +license=('custom:chrome') +depends=( + 'alsa-lib' + 'gtk3' + 'libcups' + 'libxss' + 'libxtst' + 'nss' + 'ttf-liberation' + 'xdg-utils' +) +optdepends=( + 'pipewire: WebRTC desktop sharing under Wayland' + 'kdialog: for file dialogs in KDE' + 'gnome-keyring: for storing passwords in GNOME keyring' + 'kwallet: for storing passwords in KWallet' +) +options=('!emptydirs' '!strip') +install=$pkgname.install +_channel=stable +source=('eula_text.html' + "google-chrome-$_channel.sh") +sha512sums=('a225555c06b7c32f9f2657004558e3f996c981481dbb0d3cd79b1d59fa3f05d591af88399422d3ab29d9446c103e98d567aeafe061d9550817ab6e7eb0498396' + 'de02b498a4b5b93e21622c8dba57befe795d733a04656be911cc38e28bfef0e20470450f44be523bbde8d4de28f79c10434846ca01fc2a2f4e67707b79332f94') +sha512sums_x86_64=('503bfdac8639dddeb44c339b37a295383a5a766e47204b26f4e3e11b550937a1e1c1b0c41d63c3bcbbcf26795d53a2b731385065c9245fb5509f33e59cff6864') +sha512sums_aarch64=('b409cd701801d0e1c204c4eede536d9439a481db5b5ab6e475016f8845cfc3d47ae656412fac6e0988072d05037f3a94a4059ac2b0534b6f283471b8778bf6c3') + +source_x86_64=("https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-${_channel}/google-chrome-${_channel}_${pkgver}-1_amd64.deb") +source_aarch64=("https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-${_channel}/google-chrome-${_channel}_${pkgver}-1_arm64.deb") + +package() { + bsdtar -xf data.tar.xz -C "$pkgdir/" + + # Launcher + install -m755 google-chrome-$_channel.sh "$pkgdir"/usr/bin/google-chrome-$_channel + + # Icons + for i in 16x16 24x24 32x32 48x48 64x64 128x128 256x256; do + install -Dm644 "$pkgdir"/opt/google/chrome/product_logo_${i/x*/}.png \ + "$pkgdir"/usr/share/icons/hicolor/$i/apps/google-chrome.png + done + + # License + install -Dm644 eula_text.html "$pkgdir"/usr/share/licenses/google-chrome/eula_text.html + install -Dm644 "$pkgdir"/opt/google/chrome/WidevineCdm/LICENSE \ + "$pkgdir"/usr/share/licenses/google-chrome-$_channel/WidevineCdm-LICENSE.txt + + # Fix the Chrome desktop entry + sed -i \ + -e "/Exec=/i\StartupWMClass=Google-chrome" \ + -e "s/x-scheme-handler\/ftp;\?//g" \ + "$pkgdir"/usr/share/applications/google-chrome.desktop + + # Remove the Debian Cron job, duplicate product logos and menu directory + rm -r \ + "$pkgdir"/etc/cron.daily/ \ + "$pkgdir"/opt/google/chrome/cron/ \ + "$pkgdir"/opt/google/chrome/product_logo_*.png +} diff --git a/pkgbuilds/google-chrome/eula_text.html b/pkgbuilds/google-chrome/eula_text.html new file mode 100644 index 0000000..ca402cb --- /dev/null +++ b/pkgbuilds/google-chrome/eula_text.html @@ -0,0 +1,901 @@ + + + + + + + + + + + Google Chrome Terms of Service + + + + + + + + + +
+
+

+ Google Chrome Terms of Service +

+

+ These Terms of Service apply to the executable code version of Google Chrome. Source code + for Google Chrome is available free of charge under open source software license + agreements at http://code.google.com/chromium/terms.html. +

+

+ 1. Your relationship with Google +

+

+ 1.1 Your use of Google’s products, software, services and web sites (referred to + collectively as the “Services” in this document and excluding any services provided to + you by Google under a separate written agreement) is subject to the terms of a legal + agreement between you and Google. “Google” means Google Inc., whose principal place of + business is at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States. This + document explains how the agreement is made up, and sets out some of the terms of that + agreement. +

+

+ 1.2 Unless otherwise agreed in writing with Google, your agreement with Google will + always include, at a minimum, the terms and conditions set out in this document. These + are referred to below as the “Universal Terms”. Open source software licenses for Google + Chrome source code constitute separate written agreements. To the limited extent that the + open source software licenses expressly supersede these Universal Terms, the open source + licenses govern your agreement with Google for the use of Google Chrome or specific + included components of Google Chrome. +

+

+ 1.3 Your agreement with Google will also include the terms set forth below in the Google + Chrome Additional Terms of Service and terms of any Legal Notices applicable to the + Services, in addition to the Universal Terms. All of these are referred to below as the + “Additional Terms”. Where Additional Terms apply to a Service, these will be accessible + for you to read either within, or through your use of, that Service. +

+

+ 1.4 The Universal Terms, together with the Additional Terms, form a legally binding + agreement between you and Google in relation to your use of the Services. It is important + that you take the time to read them carefully. Collectively, this legal agreement is + referred to below as the “Terms”. +

+

+ 1.5 If there is any contradiction between what the Additional Terms say and what the + Universal Terms say, then the Additional Terms shall take precedence in relation to that + Service. +

+

+ 2. Accepting the Terms +

+

+ 2.1 In order to use the Services, you must first agree to the Terms. You may not use the + Services if you do not accept the Terms. +

+

+ 2.2 You can accept the Terms by: +

+

+ (A) clicking to accept or agree to the Terms, where this option is made available to you + by Google in the user interface for any Service; or +

+

+ (B) by actually using the Services. In this case, you understand and agree that Google + will treat your use of the Services as acceptance of the Terms from that point onwards. +

+

+ 3. Language of the Terms +

+

+ 3.1 Where Google has provided you with a translation of the English language version of + the Terms, then you agree that the translation is provided for your convenience only and + that the English language versions of the Terms will govern your relationship with + Google. +

+

+ 3.2 If there is any contradiction between what the English language version of the Terms + says and what a translation says, then the English language version shall take + precedence. +

+

+ 4. Provision of the Services by Google +

+

+ 4.1 Google has subsidiaries and affiliated legal entities around the world (“Subsidiaries + and Affiliates”). Sometimes, these companies will be providing the Services to you on + behalf of Google itself. You acknowledge and agree that Subsidiaries and Affiliates will + be entitled to provide the Services to you. +

+

+ 4.2 Google is constantly innovating in order to provide the best possible experience for + its users. You acknowledge and agree that the form and nature of the Services which + Google provides may change from time to time without prior notice to you. +

+

+ 4.3 As part of this continuing innovation, you acknowledge and agree that Google may stop + (permanently or temporarily) providing the Services (or any features within the Services) + to you or to users generally at Google’s sole discretion, without prior notice to you. + You may stop using the Services at any time. You do not need to specifically inform + Google when you stop using the Services. +

+

+ 4.4 You acknowledge and agree that if Google disables access to your account, you may be + prevented from accessing the Services, your account details or any files or other content + which is contained in your account. +

+

+ 5. Use of the Services by you +

+

+ 5.1 You agree to use the Services only for purposes that are permitted by (a) the Terms + and (b) any applicable law, regulation or generally accepted practices or guidelines in + the relevant jurisdictions (including any laws regarding the export of data or software + to and from the United States or other relevant countries). +

+

+ 5.2 You agree that you will not engage in any activity that interferes with or disrupts + the Services (or the servers and networks which are connected to the Services). +

+

+ 5.3 Unless you have been specifically permitted to do so in a separate agreement with + Google, you agree that you will not reproduce, duplicate, copy, sell, trade or resell the + Services for any purpose. +

+

+ 5.4 You agree that you are solely responsible for (and that Google has no responsibility + to you or to any third party for) any breach of your obligations under the Terms and for + the consequences (including any loss or damage which Google may suffer) of any such + breach. +

+

+ 6. Privacy and your personal information +

+

+ 6.1 For information about Google’s data protection practices, please read Google’s + privacy policy at http://www.google.com/privacy.html and at + http://www.google.com/chrome/intl/en/privacy.html. This policy explains how Google treats + your personal information, and protects your privacy, when you use the Services. +

+

+ 6.2 You agree to the use of your data in accordance with Google’s privacy policies. +

+

+ 7. Content in the Services +

+

+ 7.1 You understand that all information (such as data files, written text, computer + software, music, audio files or other sounds, photographs, videos or other images) which + you may have access to as part of, or through your use of, the Services are the sole + responsibility of the person from which such content originated. All such information is + referred to below as the “Content.” +

+

+ 7.2 You should be aware that Content presented to you as part of the Services, including + but not limited to advertisements in the Services and sponsored Content within the + Services may be protected by intellectual property rights which are owned by the sponsors + or advertisers who provide that Content to Google (or by other persons or companies on + their behalf). You may not modify, rent, lease, loan, sell, distribute or create + derivative works based on this Content (either in whole or in part) unless you have been + specifically told that you may do so by Google or by the owners of that Content, in a + separate agreement. +

+

+ 7.3 Google reserves the right (but shall have no obligation) to pre-screen, review, flag, + filter, modify, refuse or remove any or all Content from any Service. For some of the + Services, Google may provide tools to filter out explicit sexual content. These tools + include the SafeSearch preference settings (see + https://support.google.com/websearch/answer/510?hl=en). In addition, there are + commercially available services and software to limit access to material that you may + find objectionable. +

+

+ 7.4 You understand that by using the Services you may be exposed to Content that you may + find offensive, indecent or objectionable and that, in this respect, you use the Services + at your own risk. +

+

+ 7.5 You agree that you are solely responsible for (and that Google has no responsibility + to you or to any third party for) any Content that you create, transmit or display while + using the Services and for the consequences of your actions (including any loss or damage + which Google may suffer) by doing so. +

+

+ 8. Proprietary rights +

+

+ 8.1 You acknowledge and agree that Google (or Google’s licensors) own all legal right, + title and interest in and to the Services, including any intellectual property rights + which subsist in the Services (whether those rights happen to be registered or not, and + wherever in the world those rights may exist). +

+

+ 8.2 Unless you have agreed otherwise in writing with Google, nothing in the Terms gives + you a right to use any of Google’s trade names, trade marks, service marks, logos, domain + names, and other distinctive brand features. +

+

+ 8.3 If you have been given an explicit right to use any of these brand features in a + separate written agreement with Google, then you agree that your use of such features + shall be in compliance with that agreement, any applicable provisions of the Terms, and + Google's brand feature use guidelines as updated from time to time. These guidelines can + be viewed online at http://www.google.com/permissions/guidelines.html (or such other URL + as Google may provide for this purpose from time to time). +

+

+ 8.4 Google acknowledges and agrees that it obtains no right, title or interest from you + (or your licensors) under these Terms in or to any Content that you submit, post, + transmit or display on, or through, the Services, including any intellectual property + rights which subsist in that Content (whether those rights happen to be registered or + not, and wherever in the world those rights may exist). Unless you have agreed otherwise + in writing with Google, you agree that you are responsible for protecting and enforcing + those rights and that Google has no obligation to do so on your behalf. +

+

+ 8.5 You agree that you shall not remove, obscure, or alter any proprietary rights notices + (including copyright and trade mark notices) which may be affixed to or contained within + the Services. +

+

+ 8.6 Unless you have been expressly authorized to do so in writing by Google, you agree + that in using the Services, you will not use any trade mark, service mark, trade name, + logo of any company or organization in a way that is likely or intended to cause + confusion about the owner or authorized user of such marks, names or logos. +

+

+ 9. License from Google +

+

+ 9.1 Google gives you a personal, worldwide, royalty-free, non-assignable and + non-exclusive license to use the software provided to you by Google as part of the + Services as provided to you by Google (referred to as the “Software” below). This license + is for the sole purpose of enabling you to use and enjoy the benefit of the Services as + provided by Google, in the manner permitted by the Terms. +

+

+ 9.2 Subject to section 1.2, you may not (and you may not permit anyone else to) copy, + modify, create a derivative work of, reverse engineer, decompile or otherwise attempt to + extract the source code of the Software or any part thereof, unless this is expressly + permitted or required by law, or unless you have been specifically told that you may do + so by Google, in writing. +

+

+ 9.3 Subject to section 1.2, unless Google has given you specific written permission to do + so, you may not assign (or grant a sub-license of) your rights to use the Software, grant + a security interest in or over your rights to use the Software, or otherwise transfer any + part of your rights to use the Software. +

+

+ 10. Content license from you +

+

+ 10.1 You retain copyright and any other rights you already hold in Content which you + submit, post or display on or through, the Services. +

+

+ 11. Software updates +

+

+ 11.1 The Software which you use may automatically download and install updates from time + to time from Google. These updates are designed to improve, enhance and further develop + the Services and may take the form of bug fixes, enhanced functions, new software modules + and completely new versions. You agree to receive such updates (and permit Google to + deliver these to you) as part of your use of the Services. +

+

+ 12. Ending your relationship with Google +

+

+ 12.1 The Terms will continue to apply until terminated by either you or Google as set out + below. +

+

+ 12.2 Google may at any time, terminate its legal agreement with you if: +

+

+ (A) you have breached any provision of the Terms (or have acted in manner which clearly + shows that you do not intend to, or are unable to comply with the provisions of the + Terms); or +

+

+ (B) Google is required to do so by law (for example, where the provision of the Services + to you is, or becomes, unlawful); or +

+

+ (C) the partner with whom Google offered the Services to you has terminated its + relationship with Google or ceased to offer the Services to you; or +

+

+ (D) Google is transitioning to no longer providing the Services to users in the country + in which you are resident or from which you use the service; or +

+

+ (E) the provision of the Services to you by Google is, in Google’s opinion, no longer + commercially viable. +

+

+ 12.3 Nothing in this Section shall affect Google’s rights regarding provision of Services + under Section 4 of the Terms. +

+

+ 12.4 When these Terms come to an end, all of the legal rights, obligations and + liabilities that you and Google have benefited from, been subject to (or which have + accrued over time whilst the Terms have been in force) or which are expressed to continue + indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 19.7 + shall continue to apply to such rights, obligations and liabilities indefinitely. +

+

+ 13. EXCLUSION OF WARRANTIES +

+

+ 13.1 NOTHING IN THESE TERMS, INCLUDING SECTIONS 13 AND 14, SHALL EXCLUDE OR LIMIT + GOOGLE’S WARRANTY OR LIABILITY FOR LOSSES WHICH MAY NOT BE LAWFULLY EXCLUDED OR LIMITED + BY APPLICABLE LAW. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF CERTAIN WARRANTIES OR + CONDITIONS OR THE LIMITATION OR EXCLUSION OF LIABILITY FOR LOSS OR DAMAGE CAUSED BY + NEGLIGENCE, BREACH OF CONTRACT OR BREACH OF IMPLIED TERMS, OR INCIDENTAL OR CONSEQUENTIAL + DAMAGES. ACCORDINGLY, ONLY THE LIMITATIONS WHICH ARE LAWFUL IN YOUR JURISDICTION WILL + APPLY TO YOU AND OUR LIABILITY WILL BE LIMITED TO THE MAXIMUM EXTENT PERMITTED BY LAW. +

+

+ 13.2 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SERVICES IS AT YOUR SOLE + RISK AND THAT THE SERVICES ARE PROVIDED "AS IS" AND “AS AVAILABLE.” +

+

+ 13.3 IN PARTICULAR, GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS DO NOT + REPRESENT OR WARRANT TO YOU THAT: +

+

+ (A) YOUR USE OF THE SERVICES WILL MEET YOUR REQUIREMENTS, +

+

+ (B) YOUR USE OF THE SERVICES WILL BE UNINTERRUPTED, TIMELY, SECURE OR FREE FROM ERROR, +

+

+ (C) ANY INFORMATION OBTAINED BY YOU AS A RESULT OF YOUR USE OF THE SERVICES WILL BE + ACCURATE OR RELIABLE, AND +

+

+ (D) THAT DEFECTS IN THE OPERATION OR FUNCTIONALITY OF ANY SOFTWARE PROVIDED TO YOU AS + PART OF THE SERVICES WILL BE CORRECTED. +

+

+ 13.4 ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SERVICES IS + DONE AT YOUR OWN DISCRETION AND RISK AND THAT YOU WILL BE SOLELY RESPONSIBLE FOR ANY + DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM THE + DOWNLOAD OF ANY SUCH MATERIAL. +

+

+ 13.5 NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM GOOGLE OR + THROUGH OR FROM THE SERVICES SHALL CREATE ANY WARRANTY NOT EXPRESSLY STATED IN THE TERMS. +

+

+ 13.6 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, + WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND + CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +

+

+ 14. LIMITATION OF LIABILITY +

+

+ 14.1 SUBJECT TO OVERALL PROVISION IN PARAGRAPH 13.1 ABOVE, YOU EXPRESSLY UNDERSTAND AND + AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE + TO YOU FOR: +

+

+ (A) ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL CONSEQUENTIAL OR EXEMPLARY DAMAGES WHICH + MAY BE INCURRED BY YOU, HOWEVER CAUSED AND UNDER ANY THEORY OF LIABILITY.. THIS SHALL + INCLUDE, BUT NOT BE LIMITED TO, ANY LOSS OF PROFIT (WHETHER INCURRED DIRECTLY OR + INDIRECTLY), ANY LOSS OF GOODWILL OR BUSINESS REPUTATION, ANY LOSS OF DATA SUFFERED, COST + OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR OTHER INTANGIBLE LOSS; +

+

+ (B) ANY LOSS OR DAMAGE WHICH MAY BE INCURRED BY YOU, INCLUDING BUT NOT LIMITED TO LOSS OR + DAMAGE AS A RESULT OF: +

+

+ (I) ANY RELIANCE PLACED BY YOU ON THE COMPLETENESS, ACCURACY OR EXISTENCE OF ANY + ADVERTISING, OR AS A RESULT OF ANY RELATIONSHIP OR TRANSACTION BETWEEN YOU AND ANY + ADVERTISER OR SPONSOR WHOSE ADVERTISING APPEARS ON THE SERVICES; +

+

+ (II) ANY CHANGES WHICH GOOGLE MAY MAKE TO THE SERVICES, OR FOR ANY PERMANENT OR TEMPORARY + CESSATION IN THE PROVISION OF THE SERVICES (OR ANY FEATURES WITHIN THE SERVICES); +

+

+ (III) THE DELETION OF, CORRUPTION OF, OR FAILURE TO STORE, ANY CONTENT AND OTHER + COMMUNICATIONS DATA MAINTAINED OR TRANSMITTED BY OR THROUGH YOUR USE OF THE SERVICES; +

+

+ (IV) YOUR FAILURE TO PROVIDE GOOGLE WITH ACCURATE ACCOUNT INFORMATION; +

+

+ (V) YOUR FAILURE TO KEEP YOUR PASSWORD OR ACCOUNT DETAILS SECURE AND CONFIDENTIAL; +

+

+ 14.2 THE LIMITATIONS ON GOOGLE’S LIABILITY TO YOU IN PARAGRAPH 14.1 ABOVE SHALL APPLY + WHETHER OR NOT GOOGLE HAS BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF + ANY SUCH LOSSES ARISING. +

+

+ 15. Copyright and trade mark policies +

+

+ 15.1 It is Google’s policy to respond to notices of alleged copyright infringement that + comply with applicable international intellectual property law (including, in the United + States, the Digital Millennium Copyright Act) and to terminating the accounts of repeat + infringers. Details of Google’s policy can be found at http://www.google.com/dmca.html. +

+

+ 15.2 Google operates a trade mark complaints procedure in respect of Google’s advertising + business, details of which can be found at http://www.google.com/tm_complaint.html. +

+

+ 16. Advertisements +

+

+ 16.1 Some of the Services are supported by advertising revenue and may display + advertisements and promotions. These advertisements may be targeted to the content of + information stored on the Services, queries made through the Services or other + information. +

+

+ 16.2 The manner, mode and extent of advertising by Google on the Services are subject to + change without specific notice to you. +

+

+ 16.3 In consideration for Google granting you access to and use of the Services, you + agree that Google may place such advertising on the Services. +

+

+ 17. Other content +

+

+ 17.1 The Services may include hyperlinks to other web sites or content or resources. + Google may have no control over any web sites or resources which are provided by + companies or persons other than Google. +

+

+ 17.2 You acknowledge and agree that Google is not responsible for the availability of any + such external sites or resources, and does not endorse any advertising, products or other + materials on or available from such web sites or resources. +

+

+ 17.3 You acknowledge and agree that Google is not liable for any loss or damage which may + be incurred by you as a result of the availability of those external sites or resources, + or as a result of any reliance placed by you on the completeness, accuracy or existence + of any advertising, products or other materials on, or available from, such web sites or + resources. +

+

+ 18. Changes to the Terms +

+

+ 18.1 Google may make changes to the Universal Terms or Additional Terms from time to + time. When these changes are made, Google will make a new copy of the Universal Terms + available at http://www.google.com/chrome/intl/en/eula_text.html and any new Additional + Terms will be made available to you from within, or through, the affected Services. +

+

+ 18.2 You understand and agree that if you use the Services after the date on which the + Universal Terms or Additional Terms have changed, Google will treat your use as + acceptance of the updated Universal Terms or Additional Terms. +

+

+ 19. General legal terms +

+

+ 19.1 Sometimes when you use the Services, you may (as a result of, or in connection with + your use of the Services) use a service or download a piece of software, or purchase + goods, which are provided by another person or company. Your use of these other services, + software or goods may be subject to separate terms between you and the company or person + concerned. If so, the Terms do not affect your legal relationship with these other + companies or individuals. +

+

+ 19.2 The Terms constitute the whole legal agreement between you and Google and govern + your use of the Services (but excluding any services which Google may provide to you + under a separate written agreement), and completely replace any prior agreements between + you and Google in relation to the Services. +

+

+ 19.3 You agree that Google may provide you with notices, including those regarding + changes to the Terms, by email, regular mail, or postings on the Services. +

+

+ 19.4 You agree that if Google does not exercise or enforce any legal right or remedy + which is contained in the Terms (or which Google has the benefit of under any applicable + law), this will not be taken to be a formal waiver of Google’s rights and that those + rights or remedies will still be available to Google. +

+

+ 19.5 If any court of law, having the jurisdiction to decide on this matter, rules that + any provision of these Terms is invalid, then that provision will be removed from the + Terms without affecting the rest of the Terms. The remaining provisions of the Terms will + continue to be valid and enforceable. +

+

+ 19.6 You acknowledge and agree that each member of the group of companies of which Google + is the parent shall be third party beneficiaries to the Terms and that such other + companies shall be entitled to directly enforce, and rely upon, any provision of the + Terms which confers a benefit on (or rights in favor of) them. Other than this, no other + person or company shall be third party beneficiaries to the Terms. +

+

+ 19.7 The Terms, and your relationship with Google under the Terms, shall be governed by + the laws of the State of California without regard to its conflict of laws provisions. + You and Google agree to submit to the exclusive jurisdiction of the courts located within + the county of Santa Clara, California to resolve any legal matter arising from the Terms. + Notwithstanding this, you agree that Google shall still be allowed to apply for + injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction. +

+

+ 20. Additional Terms for Extensions for Google Chrome +

+

+ 20.1 These terms in this section apply if you install extensions on your copy of Google + Chrome. Extensions are small software programs, developed by Google or third parties, + that can modify and enhance the functionality of Google Chrome. Extensions may have + greater privileges to access your browser or your computer than regular webpages, + including the ability to read and modify your private data. +

+

+ 20.2 From time to time, Google Chrome may check with remote servers (hosted by Google or + by third parties) for available updates to extensions, including but not limited to bug + fixes or enhanced functionality. You agree that such updates will be automatically + requested, downloaded, and installed without further notice to you. +

+

+ 20.3 From time to time, Google may discover an extension that violates Google developer + terms or other legal agreements, laws, regulations or policies. Google Chrome will + periodically download a list of such extensions from Google’s servers. You agree that + Google may remotely disable or remove any such extension from user systems in its sole + discretion. +

+

+ 21. Additional Terms for Enterprise Use +

+

+ 21.1 If you are a business entity, then the individual accepting on behalf of the entity + (for the avoidance of doubt, for business entities, in these Terms, "you" means the + entity) represents and warrants that he or she has the authority to act on your behalf, + that you represent that you are duly authorized to do business in the country or + countries where you operate, and that your employees, officers, representatives, and + other agents accessing the Service are duly authorized to access Google Chrome and to + legally bind you to these Terms. +

+

+ 21.2 Subject to the Terms, and in addition to the license grant in Section 9, Google + grants you a non-exclusive, non-transferable license to reproduce, distribute, install, + and use Google Chrome solely on machines intended for use by your employees, officers, + representatives, and agents in connection with your business entity, and provided that + their use of Google Chrome will be subject to the Terms. +

+

+ August 12, 2010 +


+
+
+

+ Google Chrome Additional Terms of Service +

+

+ MPEGLA +

+

+ THIS PRODUCT IS LICENSED UNDER THE AVC PATENT PORTFOLIO LICENSE FOR THE PERSONAL AND + NON-COMMERCIAL USE OF A CONSUMER TO (i) ENCODE VIDEO IN COMPLIANCE WITH THE AVC STANDARD + ( “AVC VIDEO”) AND/OR (ii) DECODE AVC VIDEO THAT WAS ENCODED BY A CONSUMER ENGAGED IN A + PERSONAL AND NON-COMMERCIAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO PARTNER LICENSED TO + PROVIDE AVC VIDEO. NO LICENSE IS GRANTED OR SHALL BE IMPLIED FOR ANY OTHER USE. + ADDITIONAL INFORMATION MAY BE OBTAINED FROM MPEG LA, L.L.C. SEE HTTP://WWW.MPEGLA.COM. +

+

+ Adobe +

+

+ Google Chrome may include one or more components provided by Adobe Systems Incorporated + and Adobe Software Ireland Limited (collectively “Adobe”). Your use of the Adobe software + as provided by Google (“Adobe Software”) is subject to the following additional terms + (the “Adobe Terms”). You, the entity receiving the Adobe Software, will be hereinafter + referred to as “Sublicensee.” +

+

+ 1. License Restrictions. +

+

+ (a) Flash Player, Version 10.x is designed only as a browser plug-in. Sublicensee may not + modify or distribute this Adobe Software for use as anything but a browser plug-in for + playing back content on a web page. For example, Sublicensee will not modify this Adobe + Software in order to allow interoperation with applications that run outside of the + browser (e.g., standalone applications, widgets, device UI). +

+

+ (b) Sublicensee will not expose any APIs of the Flash Player, Version 10.x through a + browser plug-in interface in such a way that allows such extension to be used to playback + content from a web page as a stand-alone application. +

+

+ (c) The Chrome-Reader Software may not be used to render any PDF or EPUB documents that + utilize digital rights management protocols or systems other than Adobe DRM. +

+

+ (d) Adobe DRM must be enabled in the Chrome-Reader Software for all Adobe DRM protected + PDF and EPUB documents. +

+

+ (e) The Chrome-Reader Software may not, other than as explicitly permitted by the + technical specifications, disable any capabilities provided by Adobe in the Adobe + Software, including but not limited to, support for PDF and EPUB formats and Adobe DRM. +

+

+ 2. Electronic Transmission. Sublicensee may allow the download of the Adobe Software from + a web site, the Internet, an intranet, or similar technology (an, “Electronic + Transmissions”) provided that Sublicensee agrees that any distributions of the Adobe + Software by Sublicensee, including those on CD-ROM, DVD-ROM or other storage media and + Electronic Transmissions, if expressly permitted, shall be subject to reasonable security + measures to prevent unauthorized use. With relation to Electronic Transmissions approved + hereunder, Sublicensee agrees to employ any reasonable use restrictions set by Adobe, + including those related to security and/or the restriction of distribution to end users + of the Sublicensee Product. +

+

+ 3. EULA and Distribution Terms. +

+

+ (a) Sublicensee shall ensure that the Adobe Software is distributed to end users under an + enforceable end user license agreement, in favor of Sublicensee and its suppliers + containing at least each of the following minimum terms (the “End-User License”): (i) a + prohibition against distribution and copying, (ii) a prohibition against modifications + and derivative works, (iii) a prohibition against decompiling, reverse engineering, + disassembling, and otherwise reducing the Adobe Software to a human-perceivable form, + (iv) a provision indicating ownership of Sublicensee Product (as defined in Section 8) by + Sublicensee and its licensors, (v) a disclaimer of indirect, special, incidental, + punitive, and consequential damages, and (vi) other industry standard disclaimers and + limitations, including, as applicable: a disclaimer of all applicable statutory + warranties, to the full extent allowed by law. +

+

+ (b) Sublicensee shall ensure that the Adobe Software is distributed to Sublicensee’s + distributors under an enforceable distribution license agreement, in favor of Sublicensee + and its suppliers containing terms as protective of Adobe as the Adobe Terms. +

+

+ 4. Opensource. Sublicensee will not directly or indirectly grant, or purport to grant, to + any third party any rights or immunities under Adobe’s intellectual property or + proprietary rights that will subject such intellectual property to an open source license + or scheme in which there is or could be interpreted to be a requirement that as a + condition of use, modification and/or distribution, the Adobe Software be: (i) disclosed + or distributed in source code form; (ii) licensed for the purpose of making derivative + works; or (iii) redistributable at no charge. For clarification purposes, the foregoing + restriction does not preclude Sublicensee from distributing, and Sublicensee will + distribute the Adobe Software as bundled with the Google Software, without charge. +

+

+ 5. Additional Terms. With respect to any update, upgrade, new versions of the Adobe + Software (collectively “Upgrades”) provided to Sublicenses, Adobe reserves the right to + require additional terms and conditions applicable solely to the Upgrade and future + versions thereof, and solely to the extent that such restrictions are imposed by Adobe on + all licensees of such Upgrade. If Sublicensee does not agree to such additional terms or + conditions, Sublicensee will have no license rights with respect to such Upgrade, and + Sublicensee’s license rights with respect to the Adobe Software will terminate + automatically on the 90th day from the date such additional terms are made available to + Sublicensee. +

+

+ 6. Proprietary Rights Notices. Sublicensee shall not, and shall require its distributors + not to, delete or in any manner alter the copyright notices, trademarks, logos or related + notices, or other proprietary rights notices of Adobe (and its licensors, if any) + appearing on or within the Adobe Software or accompanying materials. +

+

+ 7. Technical Requirements. Sublicensee and its distributors may only distribute Adobe + Software and/or Upgrade on devices that (i) meet the technical specifications posted on + http://www.adobe.com/mobile/licensees, (or a successor web site thereto), and (ii) has + been verified by Adobe as set forth below. +

+

+ 8. Verification and Update. Sublicensee must submit to Adobe each Sublicensee product + (and each version thereof) containing the Adobe Software and/or Upgrade (“Sublicensee + Product”) that do not meet the Device Verification exemption criteria to be communicated + by Google, for Adobe to verify. Sublicensee shall pay for each submission made by + Sublicensee by procuring verification packages at Adobe’s then-current terms set forth at + http://flashmobile.adobe.com/. Sublicensee Product that has not passed verification may + not be distributed. Verification will be accomplished in accordance with Adobe’s + then-current process described at http://flashmobile.adobe.com/ (“Verification”). +

+

+ 9. Profiles and Device Central. Sublicensee will be prompted to enter certain profile + information about the Sublicensee Products either as part of the Verification process or + some other method, and Sublicensee will provide such information, to Adobe. Adobe may (i) + use such profile information as reasonably necessary to verify the Sublicensee Product + (if such product is subject to Verification), and (ii) display such profile information + in “Adobe Device Intelligence system,” located at + https://devices.adobe.com/partnerportal/, and made available through Adobe’s authoring + and development tools and services to enable developers and end users to see how content + or applications are displayed in Sublicensee Products (e.g. how video images appear in + certain phones). +

+

+ 10. Export. Sublicensee acknowledges that the laws and regulations of the United States + restrict the export and re-export of commodities and technical data of United States + origin, which may include the Adobe Software. Sublicensee agrees that it will not export + or re-export the Adobe Software, without the appropriate United States and foreign + governmental clearances, if any. +

+

+ 11. Technology Pass-through Terms. +

+

+ (a) Except pursuant to applicable permissions or agreements therefor, from or with the + applicable parties, Sublicensees shall not use and shall not allow the use of, the Adobe + Software for the encoding or decoding of mp3 audio only (.mp3) data on any non-pc device + (e.g., mobile phone or set-top box), nor may the mp3 encoders or decoders contained in + the Adobe Software be used or accessed by any product other than the Adobe Software. The + Adobe Software may be used for the encoding or decoding of MP3 data contained within a + swf or flv file, which contains video, picture or other data. Sublicensee shall + acknowledge that use of the Adobe Software for non-PC devices, as described in the + prohibitions in this section, may require the payment of licensing royalties or other + amounts to third parties who may hold intellectual property rights related to the MP3 + technology and that Adobe nor Sublicensee has not paid any royalties or other amounts on + account of third party intellectual property rights for such use. If Sublicensee requires + an MP3 encoder or decoder for such use, Sublicensee is responsible for obtaining the + necessary intellectual property license, including any applicable patent rights. +

+

+ (b) Sublicensee will not use, copy, reproduce and modify (i) the On2 source code + (provided hereunder as a component of the Source Code) as necessary to enable the Adobe + Software to decode video in the Flash video file format (.flv or .f4v), and (ii) the + Sorenson Spark source code (provided hereunder as a component of the Source Code) for the + limited purpose of making bug fixes and performance enhancements to the Adobe Software. + All codecs provided with the Adobe Software may only be used and distributed as an + integrated part of the Adobe Software and may not be accessed by any other application, + including other Google applications. +

+

+ (c) The Source Code may be provided with an AAC codec and/or HE-AAC codec (“the AAC + Codec”). Use of the AAC Codec is conditioned on Sublicensee obtaining a proper patent + license covering necessary patents as provided by VIA Licensing, for end products on or + in which the AAC Codec will be used. Sublicensee acknowledges and agrees that Adobe is + not providing a patent license for an AAC Codec under this Agreement to Sublicensee or + its sublicensees. +

+

+ (d) THE SOURCE CODE MAY CONTAIN CODE LICENSED UNDER THE AVC PATENT PORTFOLIO LICENSE FOR + THE PERSONAL NON-COMMERCIAL USE OF A CONSUMER TO (i) ENCODE VIDEO IN COMPLIANCE WITH THE + AVC STANDARD ("AVC VIDEO") AND/OR (ii) DECODE AVC VIDEO THAT WAS ENCODED BY A CONSUMER + ENGAGED IN A PERSONAL NON-COMMERCIAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO PROVIDER + LICENSED TO PROVIDE AVC VIDEO. NO LICENSE IS GRANTED OR WILL BE IMPLIED FOR ANY OTHER + USE. ADDITIONAL INFORMATION MAY BE OBTAINED FROM MPEG LA, L.L.C. See + http://www.mpegla.com +

+

+ 12. Update. Sublicensee will not circumvent Google’s or Adobe’s efforts to update the + Adobe Software in all Sublicensee’s products incorporating the Adobe Software as bundled + with the Google Software (“Sublicensee Products”). +

+

+ 13. Attribution and Proprietary Notices. Sublicensee will list the Adobe Software in + publicly available Sublicensee Product specifications and include appropriate Adobe + Software branding (specifically excluding the Adobe corporate logo) on the Sublicensee + Product packaging or marketing materials in a manner consistent with branding of other + third party products contained within the Sublicensee Product. +

+

+ 14. No Warranty. THE ADOBE SOFTWARE IS MADE AVAILABLE TO SUBLICENSEE FOR USE AND + REPRODUCTION “AS IS” AND ADOBE MAKES NO WARRANTY AS TO ITS USE OR PERFORMANCE. ADOBE AND + ITS SUPPLIERS DO NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULTS OBTAINED BY USING THE + ADOBE SOFTWARE. EXCEPT FOR ANY WARRANTY, CONDITION, REPRESENTATION OR TERM TO THE EXTENT + TO WHICH THE SAME CANNOT OR MAY NOT BE EXCLUDED OR LIMITED BY LAW APPLICABLE TO + SUBLICENSEEIN SUBLICENSEE’S JURISDICTION, ADOBE AND ITS SUPPLIERS MAKE NO WARRANTIES, + CONDITIONS, REPRESENTATIONS, OR TERMS (EXPRESS OR IMPLIED WHETHER BY STATUTE, COMMON LAW, + CUSTOM, USAGE OR OTHERWISE) AS TO ANY MATTER INCLUDING WITHOUT LIMITATION NONINFRINGEMENT + OF THIRD PARTY RIGHTS, MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY, OR FITNESS FOR + ANY PARTICULAR PURPOSE. SUBLICENSEE AGREES THAT SUBLICENSEE SHALL NOT MAKE ANY WARRANTY, + EXPRESS OR IMPLIED, ON BEHALF OF ADOBE. +

+

+ 15. Limitation of Liability. IN NO EVENT WILL ADOBE OR ITS SUPPLIERS BE LIABLE TO + SUBLICENSEE FOR ANY DAMAGES, CLAIMS OR COSTS WHATSOEVER OR ANY CONSEQUENTIAL, INDIRECT, + OR INCIDENTAL DAMAGES, OR ANY LOST PROFITS OR LOST SAVINGS, EVEN IF AN ADOBE + REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS + OR FOR ANY CLAIM BY ANY THIRD PARTY. THE FOREGOING LIMITATIONS AND EXCLUSIONS APPLY TO + THE EXTENT PERMITTED BY APPLICABLE LAW IN SUBLICENSEE’S JURISDICTION. ADOBE’S AGGREGATE + LIABILITY AND THAT OF ITS SUPPLIERS UNDER OR IN CONNECTION WITH THIS AGREEMENT SHALL BE + LIMITED TO ONE THOUSAND DOLLARS (US$1,000). Nothing contained in this Agreement limits + Adobe’s liability to Sublicensee in the event of death or personal injury resulting from + Adobe’s negligence or for the tort of deceit (fraud). Adobe is acting on behalf of its + suppliers for the purpose of disclaiming, excluding and/or limiting obligations, + warranties and liability as provided in this Agreement, but in no other respects and for + no other purpose. +

+

+ 16. Content Protection Terms +

+

+ (a) Definitions. +

+

+ “Compliance and Robustness Rules” means the document setting forth compliance and + robustness rules for the Adobe Software located at http://www.adobe.com/mobile/licensees, + or a successor web site thereto. +

+

+ “Content Protection Functions” means those aspects of the Adobe Software that are + designed to ensure compliance with the Compliance and Robustness Rules, and to prevent + playback, copying, modification, redistribution or other actions with respect to digital + content distributed for consumption by users of the Adobe Software when such actions are + not authorized by the owners of such digital content or its licensed distributors. +

+

+ “Content Protection Code” means code within certain designated versions of the Adobe + Software that enables certain Content Protection Functions. +

+

+ “Key” means a cryptographic value contained in the Adobe Software for use in decrypting + digital content. +

+

+ (b) License Restrictions. Sublicensee’s right to exercise the licenses with respect to + the Adobe Software is subject to the following additional restrictions and obligations. + Sublicensee will ensure that Sublicensee’s customers comply with these restrictions and + obligations to the same extent imposed on Sublicensee with respect to the Adobe Software; + any failure by Sublicensee’s customers to comply with these additional restrictions and + obligations shall be treated as a material breach by Sublicensee. +

+

+ b.1. Sublicensee and customers may only distribute the Adobe Software that meets the + Robustness and Compliance Rules as so confirmed by Sublicensee during the verification + process described above in the Adobe Terms. +

+

+ b.2. Sublicensee shall not (i) circumvent the Content Protection Functions of either the + Adobe Software or any related Adobe Software that is used to encrypt or decrypt digital + content for authorized consumption by users of the Adobe Software, or (ii) develop or + distribute products that are designed to circumvent the Content Protection Functions of + either the Adobe Software or any Adobe Software that is used to encrypt or decrypt + digital content for authorized consumption by users of the Adobe Software. +

+

+ (c) The Keys are hereby designated as Adobe’s Confidential Information, and Sublicensee + will, with respect to the Keys, adhere to Adobe’s Source Code Handling Procedure (to be + provided by Adobe upon request). +

+

+ (d) Injunctive Relief. Sublicensee agrees that a breach of this Agreement may compromise + the Content Protection Functions of the Adobe Software and may cause unique and lasting + harm to the interests of Adobe and owners of digital content that rely on such Content + Protection Functions, and that monetary damages may be inadequate to compensate fully for + such harm. Therefore, Sublicensee further agrees that Adobe may be entitled to seek + injunctive relief to prevent or limit the harm caused by any such breach, in addition to + monetary damages. +

+

+ 17. Intended Third-party Beneficiary. Adobe Systems Incorporated and Adobe Software + Ireland Limited are the intended third-party beneficiaries of Google’s agreement with + Sublicensee with respect to the Adobe Software, including but not limited to, the Adobe + Terms. Sublicensee agrees, notwithstanding anything to the contrary in its agreement with + Google, that Google may disclose Sublicensee’s identity to Adobe and certify in writing + that Sublicensee has entered into a license agreement with Google which includes the + Adobe Terms. Sublicensee must have an agreement with each of its licensees, and if such + licensees are allowed to redistribute the Adobe Software, such agreement will include the + Adobe Terms. +

+
+
+ + \ No newline at end of file diff --git a/pkgbuilds/google-chrome/google-chrome-stable.sh b/pkgbuilds/google-chrome/google-chrome-stable.sh new file mode 100644 index 0000000..3bc963e --- /dev/null +++ b/pkgbuilds/google-chrome/google-chrome-stable.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-~/.config} + +# Allow users to override command-line options +if [[ -f $XDG_CONFIG_HOME/chrome-flags.conf ]]; then + CHROME_USER_FLAGS="$(grep -v '^#' $XDG_CONFIG_HOME/chrome-flags.conf)" +fi + +# Launch +exec /opt/google/chrome/google-chrome $CHROME_USER_FLAGS "$@" diff --git a/pkgbuilds/google-chrome/google-chrome.install b/pkgbuilds/google-chrome/google-chrome.install new file mode 100644 index 0000000..3a0cf86 --- /dev/null +++ b/pkgbuilds/google-chrome/google-chrome.install @@ -0,0 +1,14 @@ +# Colored makepkg-like functions +note() { + printf "${_blue}==>${_yellow} NOTE:${_bold} %s${_all_off}\n" "$1" +} + +_all_off="$(tput sgr0)" +_bold="${_all_off}$(tput bold)" +_blue="${_bold}$(tput setaf 4)" +_yellow="${_bold}$(tput setaf 3)" + +post_install() { + note "Custom flags should be put directly in: ~/.config/chrome-flags.conf" + note "The launcher is called: 'google-chrome-stable'" +} diff --git a/pkgbuilds/microsoft-edge-stable-bin/.nvchecker.toml b/pkgbuilds/microsoft-edge-stable-bin/.nvchecker.toml new file mode 100644 index 0000000..82710fb --- /dev/null +++ b/pkgbuilds/microsoft-edge-stable-bin/.nvchecker.toml @@ -0,0 +1,4 @@ +[microsoft-edge-stable-bin] +source = "regex" +url = "https://packages.microsoft.com/repos/edge/dists/stable/main/binary-amd64/Packages" +regex = "(?s)Package: microsoft-edge-stable\\n.*?Version: ([0-9.]+)-" diff --git a/pkgbuilds/microsoft-edge-stable-bin/.omarchy/package.json b/pkgbuilds/microsoft-edge-stable-bin/.omarchy/package.json new file mode 100644 index 0000000..71d7253 --- /dev/null +++ b/pkgbuilds/microsoft-edge-stable-bin/.omarchy/package.json @@ -0,0 +1,15 @@ +{ + "source": "local", + "release_ring": "fast", + "upstream": { + "watch": { + "debian": "https://packages.microsoft.com/repos/edge/dists/stable/main/binary-amd64/Packages", + "package": "microsoft-edge-stable", + "pattern": "(?P[0-9]+(?:\\.[0-9]+)*)-1" + } + }, + "origin": { + "aur": "microsoft-edge-stable-bin", + "commit": "4f6358224df9e58ad9ef84980505d1ead732f8dc" + } +} diff --git a/pkgbuilds/microsoft-edge-stable-bin/Microsoft Standard Application License Terms - Standalone (free) Use Terms.pdf b/pkgbuilds/microsoft-edge-stable-bin/Microsoft Standard Application License Terms - Standalone (free) Use Terms.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ac3251c09abed9ae8ed5b1d8d94d4d87664bdc0c GIT binary patch literal 87033 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 +# Contributor: Aakash Hemadri +# Contributor: Nicolas Narvaez +# Contributor: Luna Jernberg +# Contributor: EsauPR +# Contributor: nowy + +pkgname=microsoft-edge-stable-bin +_pkgname=microsoft-edge +_pkgshortname=msedge +_channel=stable +pkgver=154.0.4258.37 +pkgrel=1 +pkgdesc="A browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier" +arch=('x86_64') +url="https://www.microsoftedgeinsider.com/en-us/download" +license=('Licenseref-custom') +provides=('microsoft-edge-stable' 'edge-stable') +conflicts=('microsoft-edge-stable' 'edge-stable' 'edge-stable-bin' 'edge') +depends=('gtk3' 'libcups' 'nss' 'alsa-lib' 'libxtst' 'libdrm' 'mesa' 'libxml2') +makedepends=('imagemagick') +optdepends=( + 'libpipewire: WebRTC desktop sharing under Wayland' + 'kdialog: for file dialogs in KDE' + 'gnome-keyring: for storing passwords in GNOME keyring' + 'kwallet: for storing passwords in KWallet' + 'libunity: for download progress on KDE' + 'ttf-liberation: fix fonts for some PDFs - CRBug #369991' + 'xdg-utils' + ) +options=(!strip !zipman) +source=("https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/${_pkgname}-${_channel}_${pkgver}-1_amd64.deb" + "microsoft-edge-stable.sh" + "Microsoft Standard Application License Terms - Standalone (free) Use Terms.pdf") +sha256sums=('c6fa2974733991321b46c4064b785cdec5a14d8cddd182bc5fda057e37e7603d' + 'dc3765d2de6520b13f105b8001aa0e40291bc9457ac508160b23eea8811e26af' + 'edf2ed596eb068f168287fc76aa713ad5e0afb59f0a0a47a4f29c0c124ade15e') + +package() { + bsdtar -xf data.tar.xz -C "$pkgdir/" + + # suid sandbox + chmod 4755 "${pkgdir}/opt/microsoft/${_pkgshortname}/msedge-sandbox" + + # 256 and 24 are proper colored icons + for res in 128 64 48 32; do + magick "${pkgdir}/opt/microsoft/${_pkgshortname}/product_logo_256.png" \ + -resize ${res}x${res} \ + "${pkgdir}/opt/microsoft/${_pkgshortname}/product_logo_${res}.png" + done + for res in 22 16; do + magick "${pkgdir}/opt/microsoft/${_pkgshortname}/product_logo_24.png" \ + -resize ${res}x${res} \ + "${pkgdir}/opt/microsoft/${_pkgshortname}/product_logo_${res}.png" + done + + # install icons + for res in 16 24 32 48 64 128 256; do + install -Dm644 "${pkgdir}/opt/microsoft/${_pkgshortname}/product_logo_${res}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${res}x${res}/apps/${_pkgname}.png" + done + + # User flag aware launcher + install -m755 microsoft-edge-stable.sh "${pkgdir}/usr/bin/microsoft-edge-stable" + # License + install -Dm644 'Microsoft Standard Application License Terms - Standalone (free) Use Terms.pdf' "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE.pdf" + rm "${pkgdir}/opt/microsoft/${_pkgshortname}"/product_logo_*.png +} diff --git a/pkgbuilds/microsoft-edge-stable-bin/microsoft-edge-stable.install b/pkgbuilds/microsoft-edge-stable-bin/microsoft-edge-stable.install new file mode 100644 index 0000000..8e6fecd --- /dev/null +++ b/pkgbuilds/microsoft-edge-stable-bin/microsoft-edge-stable.install @@ -0,0 +1,22 @@ +# Colored makepkg-like functions +msg_blue() { + printf "${blue}==>${bold} $1${all_off}\n" +} + +note() { + printf "${blue}==>${yellow} NOTE:${bold} $1${all_off}\n" +} + +all_off="$(tput sgr0)" +bold="${all_off}$(tput bold)" +blue="${bold}$(tput setaf 4)" +yellow="${bold}$(tput setaf 3)" + +post_install() { + note "Custom flags should be put directly in: ~/.config/microsoft-edge-stable-flags.conf" + note "The launcher is called: 'microsoft-edge-stable'" +} + +post_upgrade() { + post_install +} diff --git a/pkgbuilds/microsoft-edge-stable-bin/microsoft-edge-stable.sh b/pkgbuilds/microsoft-edge-stable-bin/microsoft-edge-stable.sh new file mode 100644 index 0000000..c0ec973 --- /dev/null +++ b/pkgbuilds/microsoft-edge-stable-bin/microsoft-edge-stable.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env sh +# Launches MS Edge with flags specified in $XDG_CONFIG_HOME/microsoft-edge-beta-flags.conf + +# Make script fail if `cat` fails for some reason +set -e + +# Set default value if variable is unset/null +XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-${HOME}/.config}" + +# Attempt to read a config file if it exists +if [ -r "${XDG_CONFIG_HOME}/microsoft-edge-stable-flags.conf" ]; then + EDGE_USER_FLAGS="$(cat "$XDG_CONFIG_HOME/microsoft-edge-stable-flags.conf")" +fi + +exec /opt/microsoft/msedge/microsoft-edge $EDGE_USER_FLAGS "$@" diff --git a/pkgbuilds/zen-browser-bin/.nvchecker.toml b/pkgbuilds/zen-browser-bin/.nvchecker.toml new file mode 100644 index 0000000..65580c7 --- /dev/null +++ b/pkgbuilds/zen-browser-bin/.nvchecker.toml @@ -0,0 +1,3 @@ +[zen-browser-bin] +source = "git" +git = "https://github.com/zen-browser/desktop.git" diff --git a/pkgbuilds/zen-browser-bin/.omarchy/package.json b/pkgbuilds/zen-browser-bin/.omarchy/package.json new file mode 100644 index 0000000..6cf6a0b --- /dev/null +++ b/pkgbuilds/zen-browser-bin/.omarchy/package.json @@ -0,0 +1,14 @@ +{ + "source": "local", + "release_ring": "fast", + "upstream": { + "watch": { + "github": "zen-browser/desktop", + "pattern": "(?P[0-9]+(?:\\.[0-9]+)*b)" + } + }, + "origin": { + "aur": "zen-browser-bin", + "commit": "f4c4f31acf056e4756596fb958ae7fa824c760bb" + } +} diff --git a/pkgbuilds/zen-browser-bin/PKGBUILD b/pkgbuilds/zen-browser-bin/PKGBUILD new file mode 100644 index 0000000..4ee3367 --- /dev/null +++ b/pkgbuilds/zen-browser-bin/PKGBUILD @@ -0,0 +1,74 @@ +# Maintainer: Luis Vervaet +# Contributor: Peter Jung +# Contributor: NextWorks +# Contributor: Alad Wenter +# Contributor: Luna Jernberg +# Contributor: Hilton Medeiros +# Contributor: Simon Brulhart +# Contributor: Det , Achilleas Pipinellis, speed145a, Schnouki, aus + +pkgname=zen-browser-bin +_pkgname=zen-browser +_desktopname=zen +pkgver=1.22.3b +pkgrel=1 +pkgdesc="Official package for Zen, a privacy-focused, feature packed Firefox-based web browser" +arch=('x86_64' 'aarch64') +url="https://github.com/zen-browser/desktop" +license=(MPL-2.0) +depends=(gtk3 libxt mime-types dbus-glib nss ttf-font systemd ffmpeg) +optdepends=('networkmanager: Location detection via available WiFi networks' + 'libnotify: Notification integration' + 'pulse-native-provider: Audio support' + 'speech-dispatcher: Text-to-Speech' + 'hunspell-en_US: Spell checking, American English') +options=(!strip) +provides=("zen-browser=$pkgver") +conflicts=('zen-browser') + +source_x86_64=("zen-browser-$pkgver-$pkgrel-x86_64.tar.xz::https://github.com/zen-browser/desktop/releases/download/$pkgver/zen.linux-x86_64.tar.xz") +source_aarch64=("zen-browser-$pkgver-$pkgrel-aarch64.tar.xz::https://github.com/zen-browser/desktop/releases/download/$pkgver/zen.linux-aarch64.tar.xz") + +source=("$_pkgname.sh" + "$_desktopname.desktop" + "policies.json") +sha256sums=('642bcde5b15fddb712d10ed53299781108a265432237ab27a96c5c5c489718db' + 'bfb347f0e0f6baccaf3b7b51b19a25e5b745d836734cec38611b32af842897f6' + 'fd9572d178ea1a5edf427ca85bad3fb2d83be2e250e62bad13951d70d977bd0f') +sha256sums_x86_64=('0aaee1b3f67f074aebf7fc6c2fe824441bcafd431e9991336479c16370519dd0') +sha256sums_aarch64=('bffbf418881d46963c5ec00cb0de05e7a06f77b2aefc8710a503bcfb79086c7d') + + +package() { + # Create directories + mkdir -p "$pkgdir"/usr/bin + mkdir -p "$pkgdir"/usr/share/applications + mkdir -p "$pkgdir"/opt + + # Install + cp -r zen/ "$pkgdir"/opt/$pkgname + + # Launchers + install -m755 $_pkgname.sh "$pkgdir"/usr/bin/$_pkgname + + # Desktops + install -m644 *.desktop "$pkgdir"/usr/share/applications/ + + # Icons + for i in 16x16 32x32 48x48 64x64 128x128; do + install -d "$pkgdir"/usr/share/icons/hicolor/$i/apps/ + ln -s /opt/$pkgname/browser/chrome/icons/default/default${i/x*}.png \ + "$pkgdir"/usr/share/icons/hicolor/$i/apps/$_pkgname.png + done + + # Use system-provided dictionaries + ln -Ts /usr/share/hunspell "$pkgdir"/opt/$pkgname/dictionaries + ln -Ts /usr/share/hyphen "$pkgdir"/opt/$pkgname/hyphenation + + # Use system certificates + ln -sf /usr/lib/libnssckbi.so "$pkgdir"/opt/$pkgname/libnssckbi.so + + # Disable update checks (managed by pacman) + mkdir "$pkgdir"/opt/$pkgname/distribution + install -m644 "$srcdir"/policies.json "$pkgdir"/opt/$pkgname/distribution/ +} diff --git a/pkgbuilds/zen-browser-bin/policies.json b/pkgbuilds/zen-browser-bin/policies.json new file mode 100644 index 0000000..8dacd02 --- /dev/null +++ b/pkgbuilds/zen-browser-bin/policies.json @@ -0,0 +1,6 @@ +{ + "policies": { + "DisableAppUpdate": true, + "DefaultSerialGuardSetting": 3 + } +} diff --git a/pkgbuilds/zen-browser-bin/zen-browser.sh b/pkgbuilds/zen-browser-bin/zen-browser.sh new file mode 100755 index 0000000..c60bca6 --- /dev/null +++ b/pkgbuilds/zen-browser-bin/zen-browser.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +exec /opt/zen-browser-bin/zen-bin "$@" diff --git a/pkgbuilds/zen-browser-bin/zen.desktop b/pkgbuilds/zen-browser-bin/zen.desktop new file mode 100644 index 0000000..c8bb147 --- /dev/null +++ b/pkgbuilds/zen-browser-bin/zen.desktop @@ -0,0 +1,697 @@ +[Desktop Entry] +Name=Zen Browser +Comment=A fast, private and secure web browser built to improve your day-to-day experience. +Exec=/opt/zen-browser-bin/zen-bin %u +Icon=zen-browser +Type=Application +MimeType=application/json;application/pdf;application/rdf+xml;application/rss+xml;application/x-xpinstall;application/xhtml+xml;application/xml;audio/flac;audio/ogg;audio/webm;image/avif;image/gif;image/jpeg;image/png;image/svg+xml;image/webp;text/html;text/xml;video/ogg;video/webm;x-scheme-handler/chrome;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/mailto; +StartupWMClass=zen +Categories=Network;WebBrowser; +StartupNotify=true +Terminal=false +X-MultipleArgs=false +GenericName=Web Browser +GenericName[ach]=Web Browser +GenericName[af]=Web Browser +GenericName[an]=Web Browser +GenericName[ar]=متصفح الوِب +GenericName[ast]=Web Browser +GenericName[az]=Web Browser +GenericName[be]=Вэб-браўзер +GenericName[bg]=Уеб браузър +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[bqi]=گشت گر وب +GenericName[br]=Merdeer Web +GenericName[brx]=Web Browser +GenericName[bs]=Web pretraživač +GenericName[ca]=Navegador web +GenericName[ca_valencia]=Web Browser +GenericName[cak]=Web Okik'amaya'l +GenericName[ckb]=Web Browser +GenericName[cs]=Webový prohlížeč +GenericName[cy]=Porwr Gwe +GenericName[da]=Webbrowser +GenericName[de]=Internet-Browser +GenericName[dsb]=Webwobglědowak +GenericName[el]=Πρόγραμμα περιήγησης +GenericName[en_CA]=Web Browser +GenericName[en_GB]=Web Browser +GenericName[eo]=Retumilo +GenericName[es_AR]=Navegador web +GenericName[es_CL]=Navegador Web +GenericName[es_ES]=Navegador web +GenericName[es_MX]=Navegador Web +GenericName[et]=Web Browser +GenericName[eu]=Web nabigatzailea +GenericName[fa]=مرورگر وب +GenericName[ff]=Web Browser +GenericName[fi]=Verkkoselain +GenericName[fr]=Navigateur web +GenericName[fur]=Navigadôr Web +GenericName[fy_NL]=Webbrowser +GenericName[ga_IE]=Web Browser +GenericName[gd]=Brabhsair-lìn +GenericName[gl]=Navegador web +GenericName[gn]=Ñanduti Kundahára +GenericName[gu_IN]=Web Browser +GenericName[he]=דפדפן אינטרנט +GenericName[hi_IN]=Web Browser +GenericName[hr]=Web preglednik +GenericName[hsb]=Webwobhladowak +GenericName[hu]=Webböngésző +GenericName[hy_AM]=Վեբ դիտարկիչ +GenericName[hye]=Web Browser +GenericName[ia]=Navigator web +GenericName[id]=Peramban Web +GenericName[is]=Vafri +GenericName[it]=Browser web +GenericName[ja]=ウェブブラウザー +GenericName[ka]=ბრაუზერი +GenericName[kab]=Iminig web +GenericName[kk]=Веб-браузері +GenericName[km]=Web Browser +GenericName[kn]=Web Browser +GenericName[ko]=웹 브라우저 +GenericName[lij]=Navegatô Web +GenericName[lo]=ຕົວ​ທ່ອງ​ເວັບ​ເວັບ​ໄຊ​ຕ​໌ +GenericName[lt]=Web Browser +GenericName[ltg]=Web Browser +GenericName[lv]=Tīmekļa pārlūks +GenericName[meh]=Web Browser +GenericName[mk]=Web Browser +GenericName[ml]=ഗോളാന്തരവല അന്വേഷിയന്ത്രം +GenericName[mr]=Web Browser +GenericName[ms]=Web Browser +GenericName[my]=Web Browser +GenericName[nb_NO]=Nettleser +GenericName[ne_NP]=वेब ब्राउजर +GenericName[nl]=Webbrowser +GenericName[nn_NO]=Nettlesar +GenericName[oc]=Navegador Web +GenericName[pa_IN]=ਵੈੱਬ ਬਰਾਊਜ਼ਰ +GenericName[pl]=Przeglądarka internetowa +GenericName[pt_BR]=Navegador web +GenericName[pt_PT]=Navegador Web +GenericName[rm]=Navigatur web +GenericName[ro]=Browser web +GenericName[ru]=Веб-браузер +GenericName[sat]=ᱣᱮᱵᱽ ᱵᱽᱨᱟᱣᱡᱚᱨ +GenericName[sc]=Navigadore web +GenericName[sco]=Web Browser +GenericName[si]=වියමන අතිරික්සුව +GenericName[sk]=Webový prehliadač +GenericName[skr]=ویب براؤزر +GenericName[sl]=Spletni brskalnik +GenericName[son]=Web Browser +GenericName[sq]=Shfletues +GenericName[sr]=Веб прегледач +GenericName[sv_SE]=Webbläsare +GenericName[szl]=Web Browser +GenericName[ta]=Web Browser +GenericName[te]=జాల విహారిణి +GenericName[tg]=Браузери веб +GenericName[th]=เว็บเบราว์เซอร์ +GenericName[tl]=Web Browser +GenericName[tr]=Web Tarayıcısı +GenericName[trs]=Web riña gāchē nu’ +GenericName[uk]=Браузер +GenericName[ur]=Web Browser +GenericName[uz]=Web Browser +GenericName[vi]=Trình duyệt web +GenericName[wo]=Web Browser +GenericName[xh]=Web Browser +GenericName[zh_CN]=Web 浏览器 +GenericName[zh_TW]=網頁瀏覽器 +Keywords=Internet;WWW;Browser;Web;Explorer; +Keywords[ach]=Internet;WWW;Browser;Web;Explorer; +Keywords[af]=Internet;WWW;Browser;Web;Explorer; +Keywords[an]=Internet;WWW;Browser;Web;Explorer; +Keywords[ar]=إنترنت;WWW;متصفح;ويب;مستكشف; +Keywords[ast]=Internet;WWW;Browser;Web;Explorer; +Keywords[az]=Internet;WWW;Browser;Web;Explorer; +Keywords[be]=Internet;WWW;Browser;Web;Explorer; +Keywords[bg]=Internet;WWW;Browser;Web;Explorer; +Keywords[bn]=ইন্টারনেট;WWW;ব্রাউজার;ওয়েব;এক্সপ্লোরার; +Keywords[bqi]=Internet;WWW;Browser;Web;Explorer; +Keywords[br]=Internet;WWW;Merdeer;Web;Ergerzhout; +Keywords[brx]=Internet;WWW;Browser;Web;Explorer; +Keywords[bs]=Internet;WWW;Pretraživač;Web;Istraživač; +Keywords[ca]=Internet;WWW;Browser;Web;Explorador;Navegador; +Keywords[ca_valencia]=Internet;WWW;Browser;Web;Explorer; +Keywords[cak]=K'amaya'l;WWW;Okik'amaya'l;Kanob'äl; +Keywords[ckb]=Internet;WWW;Browser;Web;Explorer; +Keywords[cs]=internet;WWW;prohlížeč;web; +Keywords[cy]=Rhyngrwyd;WWW;Porwr;Gwe;Archwiliwr; +Keywords[da]=Internet;WWW;Browser;Nettet;Explorer; +Keywords[de]=Internet;WWW;Browser;Web;Explorer; +Keywords[dsb]=Internet;WWW;wobglědowak;Web;Explorer; +Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Ιστός;Ίντερνετ; +Keywords[en_CA]=Internet;WWW;Browser;Web;Explorer; +Keywords[en_GB]=Internet;WWW;Browser;Web;Explorer; +Keywords[eo]=Interreto;Retumilo;TTT;Teksaĵo;Reto;Internet;WWW;Browser;Web;Explorer; +Keywords[es_AR]=Internet;WWW;Navegador;Web;Explorador; +Keywords[es_CL]=Internet;WWW;Navegador;Web;Explorador; +Keywords[es_ES]=Internet;WWW;Navegador;Web;Explorador; +Keywords[es_MX]=Internet;WWW;Navegador;Web;Explorador; +Keywords[et]=Internet;WWW;Browser;Web;Explorer; +Keywords[eu]=Internet;WWW;Nabigatzailea;Web;Arakatzailea; +Keywords[fa]=Internet;WWW;Browser;Web;Explorer; +Keywords[ff]=Internet;WWW;Browser;Web;Explorer; +Keywords[fi]=Internet;WWW;Browser;Web;Explorer;netti;webbi;selain; +Keywords[fr]=Internet;WWW;Navigateur;Web;Explorer; +Keywords[fur]=Internet;WWW;Browser;Navigadôr;Web;Esploradôr;Explorer; +Keywords[fy_NL]=Ynternet;WWW;Browser;Web;Ferkenner; +Keywords[ga_IE]=Internet;WWW;Browser;Web;Explorer; +Keywords[gd]=Internet;WWW;Browser;Web;Explorer;eadar-lìon;brabhsair;brobhsair;lìon;taisgealaiche; +Keywords[gl]=Internet;WWW;Navegador;Web;Explorador; +Keywords[gn]=Internet;WWW;Browser;Web;Explorer; +Keywords[gu_IN]=Internet;WWW;Browser;Web;Explorer; +Keywords[he]=אינטרנט;WWW;דפדפן;רשת;סייר;מרשתת; +Keywords[hi_IN]=Internet;WWW;Browser;Web;Explorer; +Keywords[hr]=Internet;WWW;Preglednik;Web;Istraživač; +Keywords[hsb]=Internet;WWW;wobhladowak;Web;Explorer; +Keywords[hu]=Internet;WWW;Böngésző;Web;Világháló; +Keywords[hy_AM]=Համացանց,WWW,Զննիչ,Վեբ,Ցանցախույզ: +Keywords[hye]=Internet;WWW;Browser;Web;Explorer; +Keywords[ia]=Internet;WWW;Navigator;Web;Explorator; +Keywords[id]=Internet;WWW;Browser;Web;Explorer; +Keywords[is]=Internet;WWW; Vafri; Vefur; Explorer; +Keywords[it]=Internet;WWW;Browser;Web;Explorer;Navigatore; +Keywords[ja]=Internet;WWW;Browser;Web;Explorer;インターネット;ブラウザー;ウェブ; +Keywords[ka]=ინტერნეტი;WWW;ბრაუზერი;ქსელი;ქსელთან წვდომა; +Keywords[kab]=Internet;WWW;Browser;Web;Explorer; +Keywords[kk]=Internet;WWW;Browser;Web;Explorer;Интернет;Ғаламтор;Браузер;Желі;Шолғыш; +Keywords[km]=Internet;WWW;Browser;Web;Explorer; +Keywords[kn]=Internet;WWW;Browser;Web;Explorer; +Keywords[ko]=인터넷;브라우저;웹;탐색기;Internet;WWW;Browser;Web;Explorer; +Keywords[lij]=Internet;WWW;Browser;Web;Explorer;Navegatô; +Keywords[lo]=Internet;WWW;Browser;Web;Explorer; +Keywords[lt]=Internet;WWW;Browser;Web;Explorer; +Keywords[ltg]=Internet;WWW;Browser;Web;Explorer; +Keywords[lv]=Internets;WWW;Pārlūkprogramma;Tīmeklis; +Keywords[meh]=Internet;WWW;Browser;Web;Explorer; +Keywords[mk]=Internet;WWW;Browser;Web;Explorer; +Keywords[ml]=ഗോളാന്തരവല;WWW;അന്വേഷിയന്ത്രം;ഗോളാന്തരവല;ആരായൻ; +Keywords[mr]=Internet;WWW;Browser;Web;Explorer; +Keywords[ms]=Internet;WWW;Browser;Web;Explorer; +Keywords[my]=Internet;WWW;Browser;Web;Explorer; +Keywords[nb_NO]=Internett;WWW;Nettleser;Web;Utforsker; +Keywords[ne_NP]=Internet;WWW;Browser;Web;Explorer; +Keywords[nl]=Internet;WWW;Browser;Web;Verkenner; +Keywords[nn_NO]=Internett;WWW;Nettlesar;Web;Utforskar; +Keywords[oc]=Internet;WWW;Navegador;Navigador;Navegator;Navigator;Web;Explorer; +Keywords[pa_IN]=ਇੰਟਰਨੈੱਟ;WWW;ਬਰਾਊਜ਼ਰ;ਵੈੱਬ;ਐਕਸਪਲਰੋਰ;ਵੈਬ;ਇੰਟਰਨੈਟ; +Keywords[pl]=Internet;WWW;Przeglądarka;Browser;Wyszukiwarka;Web;Sieć;Explorer;Eksplorer;Strony;Witryny;internetowe; +Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorer;Navegador; +Keywords[pt_PT]=Internet;WWW;Navegador;Web;Explorador; +Keywords[rm]=Internet;WWW;Browser;Web;Explorer;navigatur; +Keywords[ro]=Internet; WWW; Browser; Web; Explorer; +Keywords[ru]=Сеть;Интернет;Браузер;Доступ в Интернет; +Keywords[sat]=Internet;WWW;Browser;Web;Explorer; +Keywords[sc]=Internet;WWW;Navigadore;Web;Explorer; +Keywords[sco]=Internet;WWW;Browser;Web;Explorer; +Keywords[si]=අන්තර්ජාලය;අතිරික්සුව;පිරික්සන්න;ගවේශකය;Internet;WWW;Browser;Web;Explorer; +Keywords[sk]=Internet;WWW;Prehliadač;Web;Prieskumník; +Keywords[skr]=Internet;WWW;Browser;Web;Explorer; +Keywords[sl]=internet;www;brskalnik;splet; +Keywords[son]=Internet;WWW;Browser;Web;Explorer; +Keywords[sq]=Internet;WWW;Shfletues;Web;Eksplorues; +Keywords[sr]=Internet;WWW;Browser;Web;Explorer;интернет;њњњ;веб;мрежа;прегледач;експлорер;internet;pregledač;veb;mreža;pregledač;eksplorer; +Keywords[sv_SE]=Internet;WWW;Webbläsare;Webb;Utforskare; +Keywords[szl]=Internet;WWW;Browser;Web;Explorer; +Keywords[ta]=Internet;WWW;Browser;Web;Explorer; +Keywords[te]=Internet;WWW;Browser;Web;Explorer; +Keywords[tg]=Интернет;WWW;Браузер;Сомона;Ҷустуҷӯгар; +Keywords[th]=อินเทอร์เน็ต;เบราว์เซอร์;เว็บ;Internet;WWW;Browser;Web;Explorer; +Keywords[tl]=Internet;WWW;Browser;Web;Explorer; +Keywords[tr]=Internet;WWW;Browser;Web;Explorer;İnternet;Tarayıcı; +Keywords[trs]=Internet;WWW;Browser;Web;Explorer; +Keywords[uk]=Інтернет;WWW;Браузер;Веб;Переглядач; +Keywords[ur]=Internet;WWW;Browser;Web;Explorer; +Keywords[uz]=Internet;WWW;Browser;Web;Explorer; +Keywords[vi]=Internet;WWW;Trình duyệt;Web;Duyệt web; +Keywords[wo]=Internet;WWW;Browser;Web;Explorer; +Keywords[xh]=Internet;WWW;Browser;Web;Explorer; +Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer; +Keywords[zh_TW]=網際網路;網路;瀏覽器;網頁;上網;Internet;WWW;Browser;Web;Explorer; +Actions=new-window;new-blank-window;new-private-window;profilemanager; + +[Desktop Action new-window] +Exec=/opt/zen-browser-bin/zen-bin %u +Name=New Window +Name[ach]=New Window +Name[af]=New Window +Name[an]=New Window +Name[ar]=نافذة جديدة +Name[ast]=New Window +Name[az]=New Window +Name[be]=Новае акно +Name[bg]=Нов прозорец +Name[bn]=নতুন উইন্ডো +Name[bqi]=نیمدری نۊ +Name[br]=Prenestr nevez +Name[brx]=New Window +Name[bs]=Novi prozor +Name[ca]=Finestra nova +Name[ca_valencia]=New Window +Name[cak]=K'ak'a' Tzuwäch +Name[ckb]=New Window +Name[cs]=Nové okno +Name[cy]=Ffenestr Newydd +Name[da]=Nyt vindue +Name[de]=Neues Fenster +Name[dsb]=Nowe wokno +Name[el]=Νέο παράθυρο +Name[en_CA]=New Window +Name[en_GB]=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]=New Window +Name[eu]=Leiho berria +Name[fa]=پنجره جدید‌ +Name[ff]=New Window +Name[fi]=Uusi ikkuna +Name[fr]=Nouvelle fenêtre +Name[fur]=Gnûf barcon +Name[fy_NL]=Nij finster +Name[ga_IE]=New Window +Name[gd]=Uinneag ùr +Name[gl]=Nova xanela +Name[gn]=Ovetã pyahu +Name[gu_IN]=New Window +Name[he]=חלון חדש +Name[hi_IN]=New Window +Name[hr]=Novi prozor +Name[hsb]=Nowe wokno +Name[hu]=Új ablak +Name[hy_AM]=Նոր պատուհան +Name[hye]=New Window +Name[ia]=Nove fenestra +Name[id]=Jendela Baru +Name[is]=Nýr gluggi +Name[it]=Nuova finestra +Name[ja]=新しいウィンドウ +Name[ka]=ახალი ფანჯარა +Name[kab]=Asfaylu amaynut +Name[kk]=Жаңа терезе +Name[km]=បង្អួច​​​ថ្មី +Name[kn]=New Window +Name[ko]=새 창 +Name[lij]=Neuvo Barcon +Name[lo]=ວິນໂດໃໝ່ +Name[lt]=New Window +Name[ltg]=New Window +Name[lv]=Jauns logs +Name[meh]=New Window +Name[mk]=New Window +Name[ml]=പുതിയ ജാലകം +Name[mr]=New Window +Name[ms]=New Window +Name[my]=New Window +Name[nb_NO]=Nytt vindu +Name[ne_NP]=नयाँ सञ्झ्याल +Name[nl]=Nieuw venster +Name[nn_NO]=Nytt vindauge +Name[oc]=Fenèstra novèla +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]=ᱱᱟᱶᱟ ᱣᱤᱱᱰᱳ +Name[sc]=Ventana noa +Name[sco]=New Window +Name[si]=නව කවුළුව +Name[sk]=Nové okno +Name[skr]=نویں ونڈو +Name[sl]=Novo okno +Name[son]=New Window +Name[sq]=Dritare e Re +Name[sr]=Нови прозор +Name[sv_SE]=Nytt fönster +Name[szl]=New Window +Name[ta]=New Window +Name[te]=కొత్త కిటికీ +Name[tg]=Равзанаи нав +Name[th]=หน้าต่างใหม่ +Name[tl]=New Window +Name[tr]=Yeni pencere +Name[trs]=Bēntanâ nākàa +Name[uk]=Нове вікно +Name[ur]=New Window +Name[uz]=New Window +Name[vi]=Cửa sổ mới +Name[wo]=New Window +Name[xh]=New Window +Name[zh_CN]=新建窗口 +Name[zh_TW]=開新視窗 + +[Desktop Action new-blank-window] +Exec=/opt/zen-browser-bin/zen-bin --blank-window %u +Name=New Blank Window +Name[ach]=New Blank Window +Name[af]=New Blank Window +Name[an]=New Blank Window +Name[ar]=نافذة فارغة جديدة +Name[ast]=New Blank Window +Name[az]=New Blank Window +Name[be]=Новае пустое акно +Name[bg]=Нов празен прозорец +Name[bn]=নতুন ফাঁকা উইন্ডো +Name[bqi]=نیمدری نۊ خالی +Name[br]=Prenestr goulloù nevez +Name[brx]=New Blank Window +Name[bs]=Novi prazni prozor +Name[ca]=Finestra en blanc nova +Name[ca_valencia]=New Blank Window +Name[cak]=K'ak'a' Tzuwäch K'axk'ol +Name[ckb]=New Blank Window +Name[cs]=Nové prázdné okno +Name[cy]=Ffenestr Wag Newydd +Name[da]=Nyt tomt vindue +Name[de]=Neues leeres Fenster +Name[dsb]=Nowe prázdne wokno +Name[el]=Νέο κενό παράθυρο +Name[en_CA]=New Blank Window +Name[en_GB]=New Blank Window +Name[eo]=Nova malplena fenestro +Name[es_AR]=Nueva ventana en blanco +Name[es_CL]=Nueva ventana en blanco +Name[es_ES]=Nueva ventana en blanco +Name[es_MX]=Nueva ventana en blanco +Name[et]=New Blank Window +Name[eu]=Leiho huts berri +Name[fa]=پنجره خالی جدید +Name[ff]=New Blank Window +Name[fi]=Uusi tyhjä ikkuna +Name[fr]=Nouvelle fenêtre vierge +Name[fur]=Gnûf barcon vuot +Name[fy_NL]=Nij leeg finster +Name[ga_IE]=New Blank Window +Name[gd]=Uinneag bhàn ùr +Name[gl]=Nova xanela en branco +Name[gn]=Ovetã ñemi pyahu +Name[gu_IN]=New Blank Window +Name[he]=חלון ריק חדש +Name[hi_IN]=New Blank Window +Name[hr]=Novi prazni prozor +Name[hsb]=Nowe prázdne wokno +Name[hu]=Új üres ablak +Name[hy_AM]=Նոր դատարկ պատուհան +Name[hye]=New Blank Window +Name[ia]=Nove fenestra vacue +Name[id]=Jendela Kosong Baru +Name[is]=Nýr tómur gluggi +Name[it]=Nuova finestra vuota +Name[ja]=新しい空白のウィンドウ +Name[ka]=ახალი ცარიელი ფანჯარა +Name[kab]=Asfaylu amaynut n tunigin tusligt +Name[kk]=Жаңа бос терезе +Name[km]=បង្អួច​ថ្មី​ឯកជន +Name[kn]=New Blank Window +Name[ko]=새 빈 창 +Name[lij]=Neuvo Barcon Vuot +Name[lo]=ວິນໂດແອ່ງໃໝ່ +Name[lt]=New Blank Window +Name[ltg]=New Blank Window +Name[lv]=Jauns tukšais logs +Name[meh]=New Blank Window +Name[mk]=New Blank Window +Name[ml]=പുതിയ ശൂന്യ ജാലകം +Name[mr]=New Blank Window +Name[ms]=New Blank Window +Name[my]=New Blank Window +Name[nb_NO]=Nytt tomt vindu +Name[ne_NP]=नयाँ खाली सञ्झ्याल +Name[nl]=Nieuw leeg venster +Name[nn_NO]=Nytt tomt vindauge +Name[oc]=Fenèstra en blanc novèla +Name[pa_IN]=ਨਵੀਂ ਖਾਲੀ ਵਿੰਡੋ +Name[pl]=Nowe puste okno +Name[pt_BR]=Nova janela em branco +Name[pt_PT]=Nova janela em branco +Name[rm]=Nova fanestra vacue +Name[ro]=Fereastră nouă și goală +Name[ru]=Новое пустое окно +Name[sat]=ᱱᱟᱶᱟ ᱣᱤᱱᱰᱳ ᱵᱽᱨᱟᱣᱡᱚᱨ +Name[sc]=Ventana en blanc noa +Name[sco]=New Blank Window +Name[si]=නව හිස් කවුළුව +Name[sk]=Nové prázdné okno +Name[skr]=نویں خالی ونڈو +Name[sl]=Novo prazno okno +Name[son]=New Blank Window +Name[sq]=Dritare e Re e Pafajshme +Name[sr]=Нови празни прозор +Name[sv_SE]=Nytt tomt fönster +Name[szl]=New Blank Window +Name[ta]=New Blank Window +Name[te]=కొత్త ఖాళీ కిటికీ +Name[tg]=Равзанаи холӣ нав +Name[th]=หน้าต่างว่างเปล่าใหม่ +Name[tl]=New Blank Window +Name[tr]=Yeni boş pencere +Name[trs]=Bēntanâ huì nākàa +Name[uk]=Нове порожнє вікно +Name[ur]=New Blank Window +Name[uz]=New Blank Window +Name[vi]=Cửa sổ trống mới +Name[wo]=New Blank Window +Name[xh]=New Blank Window +Name[zh_CN]=新建空白窗口 +Name[zh_TW]=開新空白視窗 + +[Desktop Action new-private-window] +Exec=/opt/zen-browser-bin/zen-bin --private-window %u +Name=New Private Window +Name[ach]=New Private Window +Name[af]=New Private Window +Name[an]=New Private Window +Name[ar]=نافذة خاصة جديدة +Name[ast]=New Private Window +Name[az]=New Private Window +Name[be]=Новае прыватнае акно +Name[bg]=Нов личен прозорец +Name[bn]=নতুন ব্যক্তিগত উইন্ডো +Name[bqi]=نیمدری سیخومی نۊ +Name[br]=Prenestr prevez nevez +Name[brx]=New Private Window +Name[bs]=Novi privatni prozor +Name[ca]=Finestra privada nova +Name[ca_valencia]=New Private Window +Name[cak]=K'ak'a' Ichinan Tzuwäch +Name[ckb]=New Private Window +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_CA]=New Private Window +Name[en_GB]=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]=New Private Window +Name[eu]=Leiho pribatu berria +Name[fa]=پنجره ناشناس جدید +Name[ff]=New Private Window +Name[fi]=Uusi yksityinen ikkuna +Name[fr]=Nouvelle fenêtre privée +Name[fur]=Gnûf barcon privât +Name[fy_NL]=Nij priveefinster +Name[ga_IE]=New Private Window +Name[gd]=Uinneag phrìobhaideach ùr +Name[gl]=Nova xanela privada +Name[gn]=Ovetã ñemi pyahu +Name[gu_IN]=New Private Window +Name[he]=חלון פרטי חדש +Name[hi_IN]=New Private Window +Name[hr]=Novi privatni prozor +Name[hsb]=Nowe priwatne wokno +Name[hu]=Új privát ablak +Name[hy_AM]=Նոր գաղտնի պատուհան +Name[hye]=New Private Window +Name[ia]=Nove fenestra private +Name[id]=Jendela Mode Pribadi Baru +Name[is]=Nýr huliðsgluggi +Name[it]=Nuova finestra anonima +Name[ja]=新しいプライベートウィンドウ +Name[ka]=ახალი პირადი ფანჯარა +Name[kab]=Asfaylu amaynut n tunigin tusligt +Name[kk]=Жаңа жекелік терезе +Name[km]=បង្អួច​ឯកជន​ថ្មី +Name[kn]=New Private Window +Name[ko]=새 사생활 보호 창 +Name[lij]=Neuvo Barcon Privòu +Name[lo]=ວິນໂດສ່ວນຕົວໃໝ່ +Name[lt]=New Private Window +Name[ltg]=New Private Window +Name[lv]=Jauns privātais logs +Name[meh]=New Private Window +Name[mk]=New Private Window +Name[ml]=പുതിയ സ്വകാര്യ ജാലകം +Name[mr]=New Private Window +Name[ms]=New Private Window +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[oc]=Fenèstra privada novèla +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]=ᱱᱟᱶᱟ ᱱᱤᱡᱮᱨᱟᱜ ᱣᱤᱱᱰᱳ +Name[sc]=Ventana privada noa +Name[sco]=New Private Window +Name[si]=නව පෞද්. කවුළුව +Name[sk]=Nové súkromné okno +Name[skr]=نویں نجی ونڈو +Name[sl]=Novo zasebno okno +Name[son]=New Private Window +Name[sq]=Dritare e Re Private +Name[sr]=Нови приватни прозор +Name[sv_SE]=Nytt privat fönster +Name[szl]=New Private Window +Name[ta]=New Private Window +Name[te]=కొత్త ఆంతరంగిక కిటికీ +Name[tg]=Равзанаи хусусии нав +Name[th]=หน้าต่างส่วนตัวใหม่ +Name[tl]=New Private Window +Name[tr]=Yeni gizli pencere +Name[trs]=Bēntanâ huì nākàa +Name[uk]=Приватне вікно +Name[ur]=New Private Window +Name[uz]=New Private Window +Name[vi]=Cửa sổ riêng tư mới +Name[wo]=New Private Window +Name[xh]=New Private Window +Name[zh_CN]=新建隐私窗口 +Name[zh_TW]=開新隱私視窗 + +[Desktop Action profilemanager] +Exec=/opt/zen-browser-bin/zen-bin --ProfileManager %u +Name=Open Profile Manager +Name[ach]=Open Profile Manager +Name[af]=Open Profile Manager +Name[an]=Open Profile Manager +Name[ar]=افتح مدير الملف الشخصي +Name[ast]=Open Profile Manager +Name[az]=Open Profile Manager +Name[be]=Адкрыць менеджар профіляў +Name[bg]=Отваряне на мениджъра на профили +Name[bn]=Open Profile Manager +Name[bqi]=گۊشیڌن دؽوۉداری پوروفایل +Name[br]=Digeriñ an ardoer aeladoù +Name[brx]=Open Profile Manager +Name[bs]=Otvori Menadžera profila +Name[ca]=Obre el gestor de perfils +Name[ca_valencia]=Open Profile Manager +Name[cak]=Open Profile Manager +Name[ckb]=Open Profile Manager +Name[cs]=Otevřít Správce profilů +Name[cy]=Agorwch y Rheolwr Proffil +Name[da]=Åbn profilhåndtering +Name[de]=Profilverwaltung öffnen +Name[dsb]=Profilowy zastojnik wócyniś +Name[el]=Άνοιγμα Διαχείρισης προφίλ +Name[en_CA]=Open Profile Manager +Name[en_GB]=Open Profile Manager +Name[eo]=Malfermi administranton de profiloj +Name[es_AR]=Abrir administrador de perfiles +Name[es_CL]=Abrir administrador de perfiles +Name[es_ES]=Abrir administrador de perfiles +Name[es_MX]=Abrir administrador de perfiles +Name[et]=Open Profile Manager +Name[eu]=Ireki profilen kudeatzailea +Name[fa]=گشودن مدیر نمایه +Name[ff]=Open Profile Manager +Name[fi]=Avaa profiilien hallinta +Name[fr]=Ouvrir le gestionnaire de profils +Name[fur]=Vierç gjestôr profîi +Name[fy_NL]=Profylbehearder iepenje +Name[ga_IE]=Open Profile Manager +Name[gd]=Fosgail manaidsear nam pròifilean +Name[gl]=Abrir o xestor de perfís +Name[gn]=Embojuruja mba’ete ñangarekoha +Name[gu_IN]=Open Profile Manager +Name[he]=פתיחת מנהל הפרופילים +Name[hi_IN]=Open Profile Manager +Name[hr]=Otvori upravljač profila +Name[hsb]=Zrjadowak profilow wočinić +Name[hu]=Profilkezelő megnyitása +Name[hy_AM]=Բացեք պրոֆիլի կառավարիչը +Name[hye]=Open Profile Manager +Name[ia]=Aperir le gestor de profilo +Name[id]=Buka Pengelola Profil +Name[is]=Opna umsýslu notandasniða +Name[it]=Apri gestore profili +Name[ja]=プロファイルマネージャーを開く +Name[ka]=პროფილის მმართველის გახსნა +Name[kab]=Ldi amsefrak n umaɣnu +Name[kk]=Профильдер бақарушысын ашу +Name[km]=Open Profile Manager +Name[kn]=Open Profile Manager +Name[ko]=프로필 관리자 열기 +Name[lij]=Open Profile Manager +Name[lo]=ເປີດຕົວຈັດການໂປຣໄຟລ໌ +Name[lt]=Open Profile Manager +Name[ltg]=Open Profile Manager +Name[lv]=Atvērt profilu pārvaldnieku +Name[meh]=Open Profile Manager +Name[mk]=Open Profile Manager +Name[ml]=രൂപരേഖ മാനേചർ +Name[mr]=Open Profile Manager +Name[ms]=Open Profile Manager +Name[my]=Open Profile Manager +Name[nb_NO]=Åpne profilbehandler +Name[ne_NP]=Open Profile Manager +Name[nl]=Profielbeheerder openen +Name[nn_NO]=Opne profilhandsaming +Name[oc]=Dobrir lo gestionari de perfils +Name[pa_IN]=ਪਰੋਫ਼ਾਈਲ ਮੈਨੇਜਰ ਖੋਲ੍ਹੋ +Name[pl]=Menedżer profili +Name[pt_BR]=Abrir gerenciador de perfis +Name[pt_PT]=Abrir o Gestor de Perfis +Name[rm]=Avrir l'administraziun da profils +Name[ro]=Deschide managerul de profiluri +Name[ru]=Открыть менеджер профилей +Name[sat]=ᱢᱮᱫᱦᱟᱸ ᱢᱮᱱᱮᱡᱚᱨ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ +Name[sc]=Aberi su gestore de profilos +Name[sco]=Open Profile Manager +Name[si]=පැතිකඩ කළමනාකරු අරින්න +Name[sk]=Otvoriť Správcu profilov +Name[skr]=پروفائل منیجر کھولو +Name[sl]=Odpri upravitelja profilov +Name[son]=Open Profile Manager +Name[sq]=Hapni Përgjegjës Profilesh +Name[sr]=Отворите управљач профила +Name[sv_SE]=Öppna Profilhanteraren +Name[szl]=Open Profile Manager +Name[ta]=Open Profile Manager +Name[te]=Open Profile Manager +Name[tg]=Кушодани мудири профилҳо +Name[th]=เปิดตัวจัดการโปรไฟล์ +Name[tl]=Open Profile Manager +Name[tr]=Profil yöneticisini aç +Name[trs]=Sa nīkāj ñu’ūnj nej perfî huā nì’nï̀nj ïn +Name[uk]=Відкрити менеджер профілів +Name[ur]=Open Profile Manager +Name[uz]=Open Profile Manager +Name[vi]=Mở trình quản lý hồ sơ +Name[wo]=Open Profile Manager +Name[xh]=Open Profile Manager +Name[zh_CN]=打开配置文件管理器 +Name[zh_TW]=開啟設定檔管理員 From 41e6307d039d35e659409120573b4ce594d54833 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Sep 2026 16:53:24 -0400 Subject: [PATCH 2/2] microsoft-edge-stable-bin: drop the Debian cron job The deb's /etc/cron.daily/microsoft-edge runs a script that writes an apt keyring to /usr/share/keyrings every day. pacman doesn't track that file, so it stays behind after Edge is removed. Remove the cron job and its script the way the Chrome recipe already does, and skip the empty /etc left behind. pkgrel 2 so this build replaces AUR-installed copies. Found in a Codex review. Co-Authored-By: Claude Opus 5.5 (1M context) --- pkgbuilds/microsoft-edge-stable-bin/PKGBUILD | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgbuilds/microsoft-edge-stable-bin/PKGBUILD b/pkgbuilds/microsoft-edge-stable-bin/PKGBUILD index 5ed7df3..bc68b0f 100644 --- a/pkgbuilds/microsoft-edge-stable-bin/PKGBUILD +++ b/pkgbuilds/microsoft-edge-stable-bin/PKGBUILD @@ -11,7 +11,7 @@ _pkgname=microsoft-edge _pkgshortname=msedge _channel=stable pkgver=154.0.4258.37 -pkgrel=1 +pkgrel=2 pkgdesc="A browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier" arch=('x86_64') url="https://www.microsoftedgeinsider.com/en-us/download" @@ -29,7 +29,7 @@ optdepends=( 'ttf-liberation: fix fonts for some PDFs - CRBug #369991' 'xdg-utils' ) -options=(!strip !zipman) +options=(!strip !zipman !emptydirs) source=("https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/${_pkgname}-${_channel}_${pkgver}-1_amd64.deb" "microsoft-edge-stable.sh" "Microsoft Standard Application License Terms - Standalone (free) Use Terms.pdf") @@ -66,4 +66,9 @@ package() { # License install -Dm644 'Microsoft Standard Application License Terms - Standalone (free) Use Terms.pdf' "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE.pdf" rm "${pkgdir}/opt/microsoft/${_pkgshortname}"/product_logo_*.png + + # Remove the Debian cron job, which installs an apt keyring pacman doesn't track + rm -r \ + "${pkgdir}/etc/cron.daily/" \ + "${pkgdir}/opt/microsoft/${_pkgshortname}/cron/" }