template

2.9 KB · 125 lines
GITHUB
# Template file for 'brave'
pkgname=brave
version=1.95.102
revision=1
archs="x86_64 aarch64"
create_wrksrc=yes
depends="
 alsa-lib
 at-spi2-core
 cairo
 cups
 dbus
 expat
 glib
 gtk+3
 libX11
 libXcomposite
 libXdamage
 libXext
 libXfixes
 libXrandr
 libXScrnSaver
 libdrm
 libxcb
 libxkbcommon
 mesa
 nspr
 nss
 pango
 xdg-utils
"
short_desc="Web browser that blocks ads and trackers by default"
maintainer="AmarBego <[email protected]>"
license="MPL-2.0, BSD-3-Clause, custom:chromium"
homepage="https://brave.com"
# Binary repackage
restricted=yes
nopie=yes
nostrip=yes
noshlibprovides=yes

_baseurl="https://github.com/brave/brave-browser/releases/download/v${version}"

case "$XBPS_TARGET_MACHINE" in
	x86_64)
		_arch_class=linux-amd64
		checksum=c5be7c420d3f256d63335464d8f689f5d4868791ff59db136dacaa70492ab53f
		;;
	aarch64)
		_arch_class=linux-arm64
		checksum=f58f081779a8b13f2a7c5e75f71a7a24fc465023b2e8274b727b48193b6462eb
		;;
esac

distfiles="${_baseurl}/brave-browser-${version}-${_arch_class}.zip"

hostmakedepends="unzip"

do_extract() {
	mkdir -p "$wrksrc"
	unzip -q "${XBPS_SRCDISTDIR}/${pkgname}-${version}/brave-browser-${version}-${_arch_class}.zip" -d "$wrksrc"
}

do_install() {
	# Extract and copy contents
	vmkdir opt/brave
	vcopy "*" opt/brave

	# Allow suid sandbox
	chmod 4755 ${DESTDIR}/opt/brave/chrome-sandbox

	# Create wrapper script
	cat > brave.sh <<EOF
#!/bin/bash
XDG_CONFIG_HOME=\${XDG_CONFIG_HOME:-~/.config}

# Allow users to override command-line options
if [[ -f \$XDG_CONFIG_HOME/brave-flags.conf ]]; then
   BRAVE_USER_FLAGS="\$(sed 's/#.*//' \$XDG_CONFIG_HOME/brave-flags.conf | tr '\n' ' ')"
fi

# Wayland native support
if [[ \$XDG_SESSION_TYPE == "wayland" ]]; then
   WAYLAND_FLAGS="--ozone-platform=wayland --enable-features=WaylandWindowDecorations"
fi

exec /opt/brave/brave "\$@" \$WAYLAND_FLAGS \$BRAVE_USER_FLAGS
EOF
	vbin brave.sh brave

	# Desktop file
	cat > brave.desktop <<EOF
[Desktop Entry]
Name=Brave Web Browser
Comment=Web browser that blocks ads and trackers by default
GenericName=Web Browser
Exec=brave %U
Icon=brave
Type=Application
StartupNotify=true
StartupWMClass=brave-browser
Categories=Network;WebBrowser;
MimeType=application/pdf;application/rdf+xml;application/rss+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
Exec=brave

[Desktop Action new-private-window]
Name=New Private Window
Exec=brave --incognito
EOF
	vinstall brave.desktop 644 usr/share/applications

	# Icons
	for size in 16 24 32 48 64 128 256; do
		vinstall "${DESTDIR}/opt/brave/product_logo_${size}.png" 644 usr/share/icons/hicolor/${size}x${size}/apps brave.png
	done
	vinstall "${DESTDIR}/opt/brave/product_logo_128.png" 644 usr/share/pixmaps brave.png
    
	# License
	vlicense "${DESTDIR}/opt/brave/LICENSE"
}

Part of brave