blob: 9f9670a08581e9d18e58abf645b181a0acf4df84 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# Maintainer: VitalyR <vr@vitalyr.com>
# Contributor: George Rawlinson <george@rawlinson.net.nz>
# Contributor: Cyano Hao <c@cyano.cn>
# Contributor: Bruno Pagani (a.k.a. ArchangeGabriel) <bruno.n.pagani@gmail.com>
# Contributor: Cedric MATHIEU <me.xenom @ gmail.com>
_name=firefox
_channel=nightly
_lang=en-US
_pkgname="${_name}-${_channel}"
pkgname="${_pkgname}-bin"
provides=('firefox-nightly')
conflicts=('firefox-nightly')
pkgdesc="Fast, Private & Safe Web Browser from Mozilla — Nightly Build (${_lang})"
url="https://www.mozilla.org/${_lang}/${_name}/${_channel}"
# Apparently there is an alternate URL - https://archive.mozilla.org/pub/
_base_url="https://ftp.mozilla.org/pub/${_name}/${_channel}"
_version=$(curl "${CURL_OPTS[@]}" ${_base_url}/latest-mozilla-central/ | grep "${_lang}.linux-${CARCH}.checksums" | sed "s/^.*>firefox-//; s/\.${_lang}.*//" | sort -n | tail -n 1)
_build_id_raw="$(curl -s "${_base_url}/latest-mozilla-central/${_name}-${_version}.${_lang}.linux-${CARCH}.checksums" | grep '.partial.mar' | cut -d' ' -f4 | grep -E -o '[[:digit:]]{14}' | sort | tail -n1)"
declare -A _build_id
_build_id=(
[year]="${_build_id_raw:0:4}"
[month]="${_build_id_raw:4:2}"
[day]="${_build_id_raw:6:2}"
[hour]="${_build_id_raw:8:2}"
[min]="${_build_id_raw:10:2}"
[sec]="${_build_id_raw:12:2}"
[date]="${_build_id_raw:0:8}"
[time]="${_build_id_raw:8:6}"
)
_build_id_date=${_build_id[date]}
_build_id_time=${_build_id[time]}
pkgver=135.0a1.20241128.042549
pkgver() {
printf "%s.%s.%s" ${_version} ${_build_id_date} ${_build_id_time}
}
pkgrel=1
arch=('x86_64' 'aarch64')
license=('MPL' 'GPL' 'LGPL')
conflicts=('firefox-nightly')
depends=(
'dbus-glib'
'gtk3'
'libxt'
'nss'
'mime-types'
'python'
)
optdepends=(
'pulseaudio: audio support'
'ffmpeg: h.264 video'
'hunspell: spell checking'
'hyphen: hyphenation'
'libnotify: notification integration'
'networkmanager: location detection via available WiFi networks'
'speech-dispatcher: text-to-speech'
'startup-notification: support for FreeDesktop Startup Notification'
)
_url="${_base_url}/${_build_id[year]}/${_build_id[month]}/${_build_id[year]}-${_build_id[month]}-${_build_id[day]}-${_build_id[hour]}-${_build_id[min]}-${_build_id[sec]}-mozilla-central"
_src="${_name}-${_version}.${_lang}.linux-${CARCH}"
_filename="${_build_id[date]}-${_build_id[time]}-${_src}"
source=('firefox-nightly.desktop'
'policies.json'
"${_filename}.tar.xz::${_url}/${_src}.tar.xz"
"${_filename}.tar.xz.asc::${_url}/${_src}.tar.xz.asc")
sha512sums=('320659477fc3319db4b73492aa6ce39c3a5dbc4ab8adc27440cb1e7ab69dad2cea83a57d7cd77eebfe833fb8a48c7e021bdca851f1be4840fae292afdba96664'
'5ed67bde39175d4d10d50ba5b12063961e725e94948eadb354c0588b30d3f97d2178b66c1af466a6e7bd208ab694227a1391c4141f88d3da1a1178454eba5308'
'SKIP'
'SKIP')
validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla’s GnuPG release key
package() {
OPT_PATH="usr/lib/${_pkgname}"
# Install the package files
install -d "${pkgdir}"/{usr/bin,usr/lib}
cp -r ${_name} "${pkgdir}"/${OPT_PATH}
ln -s "/${OPT_PATH}/${_name}" "${pkgdir}"/usr/bin/${_pkgname}
# Install .desktop files
install -Dm644 "${srcdir}"/${_pkgname}.desktop -t "${pkgdir}"/usr/share/applications
# Install icons
SRC_LOC="${srcdir}"/${_name}/browser
DEST_LOC="${pkgdir}"/usr/share/icons/hicolor
for i in 16 32 48 64 128; do
install -Dm644 "${SRC_LOC}"/chrome/icons/default/default${i}.png "${DEST_LOC}"/${i}x${i}/apps/${_pkgname}.png
done
# Disable auto-updates
install -Dm644 "${srcdir}"/policies.json -t "${pkgdir}"/${OPT_PATH}/distribution
# Use system-provided dictionaries
rm -rf "${pkgdir}"/${OPT_PATH}/{dictionaries,hyphenation}
ln -sf /usr/share/hunspell "${pkgdir}"/${OPT_PATH}/dictionaries
ln -sf /usr/share/hyphen "${pkgdir}"/${OPT_PATH}/hyphenation
}
|