# Maintainer: XZS # This PKGBUILD is maintained on GitHub . # You may find it convenient to file issues and pull requests there. pkgname=firefox-extension-omnisidebar-git pkgver=1.6.15 pkgrel=2 pkgdesc='A firefox add-on designed to provide more control over the behavior of the sidebar.' url='https://github.com/Quicksaver/OmniSidebar' arch=('any') license=('MPLv2') depends=('firefox') install=discontinuation-notice.install makedepends+=('git') source+=("${_gitname:=${pkgname%-git}}::${_giturl:-git+$url}") for integ in $(get_integlist) do typeset -n array="${integ}sums" array+=('SKIP') done provides+=("$_gitname=$pkgver") conflicts+=("$_gitname") # Move down repository content for easier access by following functions. prepare() { cp -rfT --reflink=auto "$_gitname" . rm -rf "$_gitname" } makedepends+=(rasqal) sparql() { roqet -e "PREFIX em: SELECT ?x WHERE { $1 }" \ -D "${2:-install.rdf}" -r csv 2>/dev/null | tr -d '\r' | tail -n 1 | head -c -1 } # Retrieve current compatibility information from install.rdf. query-version() { sparql "[] em:id '$2' ; em:${1}Version ?x" install.rdf } pkgver() { sparql ' em:version ?x' | tr - . echo -n . printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } version-range() { if [ -z "$(sparql "?x em:type ?type. filter(?type in ('2', '64'))")" ] || [ -n "$(sparql "?x em:strictCompatibility 'true'")" ] || { [ -e chrome.manifest ] && grep '^binary-component[ \t]' chrome.manifest ; } then local emid=$(emid $1) echo "$1>$(version min $emid)" "$1<$(version max $emid)" else echo "$1>$(version min $(emid $1))" fi } emid() { case $1 in firefox) echo '{ec8030f7-c20a-464f-9b0e-13a3a9e97384}' ;; thunderbird) echo '{3550f703-e582-4d05-9a08-453d09bdfdc6}' ;; *) return 1 ;; esac } version() { local version="$(query-version $1 $2)" if [[ $version =~ ([[:digit:]]+).\* ]]; then if [[ $1 = max ]]; then echo $(( ${BASH_REMATCH[1]} + 1 )) else echo "=${BASH_REMATCH[1]}" fi else echo "=$version" fi } prepare_target() { local target=${pkgname%%-*} id="$(sparql ' em:id ?x')" destdir="$pkgdir/usr/lib/${target/firefox/firefox\/browser}/extensions" install -d "$destdir" } depends=(${pkgname%%-*}) package() { compose_dependencies prepare_target cp --no-preserve=ownership,mode -r . "$destdir/$id" find "$destdir/$id" -mindepth 1 -name ".*" -exec rm -rf '{}' + } # Hidden from mksrcinfo in silly subfunction. compose_dependencies() { depends=($(version-range ${pkgname%%-*})) }