Advertisement
Guest User

Untitled

a guest
Nov 16th, 2022
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.22 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=108.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://archive.mozilla.org/pub/thunderbird/candidates/108.0b1-candidates/build1/source/thunderbird-$pkgver.source.tar.xz{,.asc}
  29. install-dir.patch
  30. "$pkgname".desktop
  31. )
  32. b2sums=('baf8c2fcf04dd781df63449283116dabe565b8d1dd87d97fff02268a18911456f1fdf1f9c4c2b842b17edd7bf163592d9302a7778e5db3b19c2c8e59b5614f89'
  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. msg2 "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.  
  107. # System addons
  108. ac_add_options --with-unsigned-addon-scopes=app,system
  109. ac_add_options --allow-addon-sideload
  110. END
  111. }
  112.  
  113. build() {
  114. cd "${_pkgname}-${pkgver%b*}"
  115.  
  116. export MOZ_NOSPAM=1
  117. export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
  118. export MOZ_ENABLE_FULL_SYMBOLS=1
  119. export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="pip"
  120.  
  121. echo "Building thunderbird..."
  122. ./mach build
  123.  
  124. echo "Building symbol archive..."
  125. ./mach buildsymbols
  126. }
  127.  
  128. package() {
  129. cd "${_pkgname}-${pkgver%b*}"
  130. DESTDIR="$pkgdir" ./mach install
  131.  
  132. local vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js"
  133. install -Dvm644 /dev/stdin "$vendorjs" << END
  134. // Use LANG environment variable to choose locale.
  135. pref("intl.locale.requested", "");
  136.  
  137. // Use system-provided dictionaries.
  138. pref("spellchecker.dictionary_path", "/usr/share/hunspell");
  139.  
  140. // Disable default browser checking.
  141. pref("browser.shell.checkDefaultBrowser", false);
  142.  
  143. // Don't disable our bundled extensions in the application directory.
  144. pref("extensions.autoDisableScopes", 11);
  145. END
  146.  
  147. local distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
  148. install -Dvm644 /dev/stdin "$distini" << END
  149. [Global]
  150. id=archlinux
  151. version=1.0
  152. about=Mozilla Thunderbird Beta for Arch Linux
  153.  
  154. [Preferences]
  155. app.distributor=archlinux
  156. app.distributor.channel=$pkgname
  157. app.partner.archlinux=archlinux
  158. END
  159.  
  160. for i in 16 22 24 32 48 64 128 256; do
  161. install -Dm644 comm/mail/branding/thunderbird/default${i}.png \
  162. "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png"
  163. done
  164.  
  165. install -Dvm644 comm/mail/branding/thunderbird/content/about-logo.svg \
  166. "$pkgdir/usr/share/icons/hicolor/scalable/apps/$pkgname.svg"
  167. install -Dvm644 comm/mail/branding/thunderbird/TB-symbolic.svg \
  168. "$pkgdir/usr/share/icons/hicolor/symbolic/apps/$pkgname-symbolic.svg"
  169.  
  170. install -Dvm644 ../$pkgname.desktop \
  171. "$pkgdir/usr/share/applications/$pkgname.desktop"
  172.  
  173. # Use system-provided dictionaries
  174. ln -Ts /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries"
  175. ln -Ts /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation"
  176.  
  177. # Install a wrapper to avoid confusion about binary path
  178. install -Dvm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" << END
  179. #!/bin/sh
  180. exec /usr/lib/$pkgname/$_pkgname "\$@"
  181. END
  182.  
  183. # Replace duplicate binary with wrapper
  184. # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
  185. ln -srfv "$pkgdir/usr/bin/$pkgname" "$pkgdir/usr/lib/$pkgname/$_pkgname-bin"
  186.  
  187. # Use system certificates
  188. local nssckbi="$pkgdir/usr/lib/$pkgname/libnssckbi.so"
  189. if [[ -e $nssckbi ]]; then
  190. ln -srfv "$pkgdir/usr/lib/libnssckbi.so" "$nssckbi"
  191. fi
  192.  
  193. export SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE="$startdir/.crash-stats-api.token"
  194. if [[ -f $SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE ]]; then
  195. make -C obj uploadsymbols
  196. else
  197. cp -fvt "$startdir" obj/dist/*crashreporter-symbols-full.tar.zst
  198. fi
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement