summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 05e3471484e174b09f702dd7d2296d7e932666f5 (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
# Maintainer: 30p87 <aur@30p87.de>
# Based on: HLFH <gaspard@dhautefeuille.eu>

pkgname=searxng-uwsgi
_pkgname=searxng
pkgver=r9209.b5bb27f
pkgrel=3
pkgdesc='A privacy-respecting, hackable metasearch engine'
arch=('any')
url='https://searxng.github.io/searxng/'
license=('AGPL-3.0-or-later')
makedepends=('git')
depends=('uwsgi' 'uwsgi-plugin-python' 'valkey')
provides=('searxng')
conflicts=('searx' 'searx-git' 'searxng-git' 'searxng-uwsgi-novenv-git')
backup=('etc/searxng/settings.yml' 'etc/uwsgi/searxng.ini')
_giturl='https://github.com/searxng/searxng'
_gitbranch='master'
source=("git+${_giturl}#branch=${_gitbranch}"
		'nginx.example.conf'
        'uwsgi.ini'
        'sysusers.conf'
		'tmpfiles.conf'
        'settings.yml')
b2sums=('SKIP'
        '5cf35a3ac9607af203f8bb5e396012fd9bacf90becd3fffabc2a4985f10b020baf34bc403d8658779905db8ad53be2ef482b61a2680847bc032c6a707347a256'
        '0cea85bfd713b68da71da0651f80f1c2cdb9231d092684f95ca4bba572124e82f00dc8e666a45b76344f1b5dc67d216978a24850bf0a86e9a053514a1c030ed5'
        '3487c220d6c538dba60671aaaf0927746d8ede4d47f901e01542efdf74dc067ade3d3ee30b500f08d3ef00c2ceba460961e0f4329a4afc32b83e42d8761d5e41'
        '65f66920c96dfd8d68570fb48adb4f74894f188d2a71b1b9214372b43d4b34ab029404ea2eeb3709cce190276d375a2a816e5b7fc3b39210b447337c361bb8d9'
        '99bb7a7dfdab65a8844beb7dd4924601e2f9e85aacacc526a18881dc53e1fa270ff2653c5ada2ce0f92ecebac8917afa974116c09b3e61977b21d70b0f6a4d37')

pkgver() {
  cd searxng
  printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
}

build() {
  cd "${srcdir}/${_pkgname}"
  python -m venv venv
  source venv/bin/activate
  pip install --upgrade pip build installer wheel setuptools

  pip install -r requirements.txt

  export SEARXNG_SETTINGS_PATH='../settings.yml'
  python -m searx.version freeze
  sed -i "s|GIT_URL =.*|GIT_URL = \"${_giturl}\"|g" searx/version_frozen.py
  sed -i "s|GIT_BRANCH =.*|GIT_BRANCH = \"${_gitbranch}\"|g" searx/version_frozen.py
  
  # Build the package
  python -m build --wheel --no-isolation
}

package() {
  cd "${srcdir}/${_pkgname}"
  source venv/bin/activate

  local site_packages="$(python -c 'import site, os; print(os.path.relpath(site.getsitepackages()[0]))')"

  # Install package
  python -m installer dist/*.whl

  # Update the venv path
  pip install virtualenv-tools4
  cd venv
  virtualenv-tools --update-path /var/lib/searxng/venv/
  sed -i "s|$(pwd)|/var/lib/searxng/venv/|g" bin/* pyvenv.cfg

  # Copy the venv directory
  install -d -m 750 "${pkgdir}/var/lib/searxng/venv"
  cp -r . "${pkgdir}/var/lib/searxng/venv"
  ln -s "/var/lib/searxng/venv/lib/$(basename ${pkgdir}/var/lib/searxng/venv/lib/python3.*)/site-packages/searx/static" "${pkgdir}/var/lib/searxng/static"


  install -Dm644 "${srcdir}/uwsgi.ini" "${pkgdir}/etc/uwsgi/searxng.ini"
  install -dm750 "${pkgdir}/etc/searxng"
  install -Dm640 "${srcdir}/settings.yml" "${pkgdir}/etc/searxng/settings.yml" 
  install -Dm640 "${srcdir}/searxng/searx/limiter.toml" "${pkgdir}/etc/searxng/limiter.toml"
  install -dm750 "${pkgdir}/var/lib/searxng"
  install -Dm640 "${srcdir}/searxng/searx/version_frozen.py" "${pkgdir}/var/lib/searxng/${site_packages}/searx/version_frozen.py"
  install -Dm644 "${srcdir}/searxng/LICENSE" "${pkgdir}/usr/share/licenses/searxng/LICENSE"
  install -Dm644 "${srcdir}/nginx.example.conf" "${pkgdir}/usr/share/doc/searxng/nginx.example.conf"

  install -Dm644 "${srcdir}/sysusers.conf" "${pkgdir}/usr/lib/sysusers.d/searxng.conf"
  install -Dm644 "${srcdir}/tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/searxng.conf"
}