Guest User

Untitled

a guest
Feb 28th, 2023
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.10 KB | None | 0 0
  1. # Maintainer: Yurii Kolesnykov <[email protected]>
  2. # Based on community/firefox-developer-edition by Andrew Crerar <[email protected]>
  3.  
  4. pkgname=thunderbird-beta
  5. _pkgname=thunderbird
  6. pkgver=111.0b1
  7. pkgrel=1
  8. pkgdesc='Beta version of standalone mail and news reader from mozilla.org'
  9. arch=('x86_64')
  10. license=('MPL' 'GPL' 'LGPL')
  11. url="https://www.thunderbird.net/channel/#beta"
  12. depends=('gtk3' 'libxt' 'mime-types' 'dbus-glib' 'ffmpeg' 'ttf-font' 'libpulse' 'nss')
  13. makedepends=('unzip' 'zip' 'diffutils' 'yasm' 'mesa' 'imake' 'inetutils'
  14. 'xorg-server-xvfb' 'autoconf2.13' 'rust' 'clang' 'llvm' 'jack'
  15. 'nodejs' 'cbindgen' 'nasm' 'lld' 'python' 'dump_syms'
  16. 'wasi-compiler-rt' 'wasi-libc' 'wasi-libc++' 'wasi-libc++abi')
  17. makedepends+=('libotr')
  18. optdepends=('networkmanager: Location detection via available WiFi networks'
  19. 'libnotify: Notification integration'
  20. 'pulseaudio: Audio support'
  21. 'speech-dispatcher: Text-to-Speech'
  22. 'hunspell-en_US: Spell checking, American English'
  23. 'xdg-desktop-portal: Screensharing with Wayland')
  24. optdepends+=('libotr: OTR support for active one-to-one chats')
  25. options=(!emptydirs !makeflags !strip !lto !debug)
  26. options+=(!buildflags)
  27. provides=("thunderbird=$pkgver")
  28. source=(https://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz{,.asc}
  29. install-dir.patch
  30. "$pkgname".desktop
  31. )
  32. b2sums=('227016b3f28910c684945ba664716c0441b3359f9078f3c3b7dd1d96384175cc4ad24acf02cb03d72ecf6b881b43424f7c5b2faf9fb5fb9e8d5492c652cde537'
  33. 'SKIP'
  34. 'ba188a0c1359f49390a789621b2c0bec67f4152f62c0dced26b31ec291abccfb5636dba0f8ed1f879e1a2a237e183b96b092d760e04e148a64da18660b87dcfb'
  35. '3518012290b5b358d882d7d12bc2455345b89cef4abfbccaca025dfb935fcefe49806dd534e75b10c0c6a3495b7133a7feb3f11d7773a0ce252f8d68e15b5a24')
  36. validpgpkeys=(
  37. 14F26682D0916CDD81E37B6D61B7B526D98F0353 # Mozilla Software Releases <[email protected]>
  38. 4360FE2109C49763186F8E21EBE41E90F6F12F6D # Mozilla Software Releases <[email protected]>
  39. )
  40. # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
  41. # Note: These are for Arch Linux use ONLY. For your own distribution, please
  42. # get your own set of keys. Feel free to contact [email protected] for
  43. # more information.
  44. _google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
  45.  
  46. # Mozilla API keys (see https://location.services.mozilla.com/api)
  47. # Note: These are for Arch Linux use ONLY. For your own distribution, please
  48. # get your own set of keys. Feel free to contact [email protected] for
  49. # more information.
  50. _mozilla_api_key=16674381-f021-49de-8622-3021c5942aff
  51.  
  52. prepare() {
  53. mkdir -p mozbuild
  54. cd "${_pkgname}-${pkgver%b*}"
  55.  
  56. local src
  57. for src in "${source[@]}"; do
  58. src="${src%%::*}"
  59. src="${src##*/}"
  60. [[ $src = *.patch ]] || continue
  61. echo "Applying patch $src..."
  62. patch -Np1 < "../$src"
  63. done
  64.  
  65. echo -n "$_google_api_key" > google-api-key
  66. echo -n "$_mozilla_api_key" > mozilla-api-key
  67. cat > .mozconfig << END
  68. ac_add_options --enable-application=comm/mail
  69. mk_add_options MOZ_OBJDIR=${PWD@Q}/obj
  70.  
  71. ac_add_options --prefix=/usr
  72. ac_add_options --enable-release
  73. ac_add_options --enable-hardening
  74. ac_add_options --enable-optimize
  75. ac_add_options --enable-rust-simd
  76. ac_add_options --enable-linker=lld
  77. ac_add_options --disable-elf-hack
  78. ac_add_options --disable-bootstrap
  79. ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot
  80.  
  81. # Branding
  82. ac_add_options --enable-official-branding
  83. ac_add_options --enable-update-channel=aurora
  84. ac_add_options --with-distribution-id=org.archlinux
  85. ac_add_options --with-unsigned-addon-scopes=app,system
  86. ac_add_options --allow-addon-sideload
  87. export MOZILLA_OFFICIAL=1
  88. export MOZ_APP_REMOTINGNAME=${pkgname//-/}
  89. export MOZ_REQUIRE_SIGNING=
  90.  
  91. # Keys
  92. ac_add_options --with-google-location-service-api-keyfile=${PWD@Q}/google-api-key
  93. ac_add_options --with-google-safebrowsing-api-keyfile=${PWD@Q}/google-api-key
  94. ac_add_options --with-mozilla-api-keyfile=${PWD@Q}/mozilla-api-key
  95.  
  96. # System libraries
  97. ac_add_options --with-system-nspr
  98. ac_add_options --with-system-nss
  99.  
  100. # Features
  101. ac_add_options --enable-alsa
  102. ac_add_options --enable-jack
  103. ac_add_options --enable-crashreporter
  104. ac_add_options --disable-updater
  105. ac_add_options --disable-tests
  106. END
  107. }
  108.  
  109. build() {
  110. cd "${_pkgname}-${pkgver%b*}"
  111.  
  112. export MOZ_NOSPAM=1
  113. export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
  114. export MOZ_ENABLE_FULL_SYMBOLS=1
  115. export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="pip"
  116.  
  117. echo "Building thunderbird..."
  118. ./mach build
  119.  
  120. echo "Building symbol archive..."
  121. ./mach buildsymbols
  122. }
  123.  
  124. package() {
  125. cd "${_pkgname}-${pkgver%b*}"
  126. DESTDIR="$pkgdir" ./mach install
  127.  
  128. local vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js"
  129. install -Dvm644 /dev/stdin "$vendorjs" << END
  130. // Use LANG environment variable to choose locale.
  131. pref("intl.locale.requested", "");
  132.  
  133. // Use system-provided dictionaries.
  134. pref("spellchecker.dictionary_path", "/usr/share/hunspell");
  135.  
  136. // Disable default browser checking.
  137. pref("browser.shell.checkDefaultBrowser", false);
  138.  
  139. // Don't disable our bundled extensions in the application directory.
  140. pref("extensions.autoDisableScopes", 11);
  141. END
  142.  
  143. local distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
  144. install -Dvm644 /dev/stdin "$distini" << END
  145. [Global]
  146. id=archlinux
  147. version=1.0
  148. about=Mozilla Thunderbird Beta for Arch Linux
  149.  
  150. [Preferences]
  151. app.distributor=archlinux
  152. app.distributor.channel=$pkgname
  153. app.partner.archlinux=archlinux
  154. END
  155.  
  156. for i in 16 22 24 32 48 64 128 256; do
  157. install -Dm644 comm/mail/branding/thunderbird/default${i}.png \
  158. "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png"
  159. done
  160.  
  161. install -Dvm644 comm/mail/branding/thunderbird/content/about-logo.svg \
  162. "$pkgdir/usr/share/icons/hicolor/scalable/apps/$pkgname.svg"
  163. install -Dvm644 comm/mail/branding/thunderbird/TB-symbolic.svg \
  164. "$pkgdir/usr/share/icons/hicolor/symbolic/apps/$pkgname-symbolic.svg"
  165.  
  166. install -Dvm644 ../$pkgname.desktop \
  167. "$pkgdir/usr/share/applications/$pkgname.desktop"
  168.  
  169. # Use system-provided dictionaries
  170. ln -Ts /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries"
  171. ln -Ts /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation"
  172.  
  173. # Install a wrapper to avoid confusion about binary path
  174. install -Dvm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" << END
  175. #!/bin/sh
  176. exec /usr/lib/$pkgname/$_pkgname "\$@"
  177. END
  178.  
  179. # Replace duplicate binary with wrapper
  180. # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
  181. ln -srfv "$pkgdir/usr/bin/$pkgname" "$pkgdir/usr/lib/$pkgname/$_pkgname-bin"
  182.  
  183. # Use system certificates
  184. local nssckbi="$pkgdir/usr/lib/$pkgname/libnssckbi.so"
  185. if [[ -e $nssckbi ]]; then
  186. ln -srfv "$pkgdir/usr/lib/libnssckbi.so" "$nssckbi"
  187. fi
  188.  
  189. export SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE="$startdir/.crash-stats-api.token"
  190. if [[ -f $SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE ]]; then
  191. make -C obj uploadsymbols
  192. else
  193. cp -fvt "$startdir" obj/dist/*crashreporter-symbols-full.tar.zst
  194. fi
  195. }
  196.  
Advertisement
Add Comment
Please, Sign In to add comment