| 1 | # Maintainer: Cowington Post <[email protected]> |
| 2 | pkgname=freshrss |
| 3 | pkgver=1.29.1 |
| 4 | pkgrel=0 |
| 5 | pkgdesc="Free and self hosted rss feed agregator" |
| 6 | url="https://freshrss.org/" |
| 7 | arch="noarch" |
| 8 | license="AGPL-3.0-or-later" |
| 9 | pkgusers="freshrss" |
| 10 | pkggroups="www-data" |
| 11 | _php=php85 |
| 12 | depends=" |
| 13 | $_php |
| 14 | $_php-ctype |
| 15 | $_php-curl |
| 16 | $_php-dom |
| 17 | $_php-fileinfo |
| 18 | $_php-fpm |
| 19 | $_php-gmp |
| 20 | $_php-intl |
| 21 | $_php-mbstring |
| 22 | $_php-pdo |
| 23 | $_php-session |
| 24 | $_php-simplexml |
| 25 | $_php-xml |
| 26 | $_php-xmlreader |
| 27 | $_php-zip |
| 28 | " |
| 29 | checkdepends=" |
| 30 | $_php-pdo_sqlite |
| 31 | $_php-openssl |
| 32 | $_php-phar |
| 33 | $_php-tokenizer |
| 34 | $_php-xmlwriter |
| 35 | composer |
| 36 | " |
| 37 | install="$pkgname.pre-install $pkgname-openrc.post-install" |
| 38 | subpackages=" |
| 39 | $pkgname-doc |
| 40 | $pkgname-openrc |
| 41 | $pkgname-lang |
| 42 | $pkgname-themes |
| 43 | $pkgname-mysql |
| 44 | $pkgname-pgsql |
| 45 | $pkgname-sqlite" |
| 46 | source="https://github.com/FreshRSS/FreshRSS/archive/refs/tags/$pkgver/freshrss-$pkgver.tar.gz |
| 47 | defaults.patch |
| 48 | freshrss.confd |
| 49 | fpm-pool.conf |
| 50 | freshrss.crontab |
| 51 | " |
| 52 | builddir="$srcdir/FreshRSS-$pkgver" |
| 53 | options="net !fhs" # openrc() installs into /var/tmp |
| 54 | |
| 55 | prepare() { |
| 56 | default_prepare |
| 57 | |
| 58 | # Create directory for tests |
| 59 | mkdir -p "$srcdir"/data/users/_ |
| 60 | } |
| 61 | |
| 62 | check() { |
| 63 | sed -i "s|^#!/usr/bin/env php$|#!/usr/bin/env $_php|" tests/cli/cli-parser-test.php |
| 64 | $_php /usr/bin/composer.phar install --prefer-dist --no-progress |
| 65 | DATA_PATH="$srcdir"/data \ |
| 66 | $_php vendor/bin/phpunit ./tests --bootstrap ./tests/bootstrap.php |
| 67 | rm -fr vendor |
| 68 | } |
| 69 | |
| 70 | package() { |
| 71 | rm -f ./*.md |
| 72 | rm -rf .devcontainer |
| 73 | rm -f .dockerignore |
| 74 | rm -f .editorconfig |
| 75 | rm -f .eslint* |
| 76 | rm -f .jshint* |
| 77 | rm -f .style* |
| 78 | rm -f .markdownlint* |
| 79 | rm -f .hadolint* |
| 80 | rm -f .typos.toml |
| 81 | rm -f Makefile |
| 82 | |
| 83 | install -d "$pkgdir"/usr/share/doc |
| 84 | mv ./docs "$pkgdir"/usr/share/doc/$pkgname |
| 85 | |
| 86 | install -d "$pkgdir"/usr/share/webapps/freshrss |
| 87 | cp -r . "$pkgdir"/usr/share/webapps/freshrss/ |
| 88 | |
| 89 | find "$pkgdir/usr/share/webapps/freshrss" -name '.git*' -exec rm -rf {} \; || true |
| 90 | |
| 91 | rm -rf "$pkgdir"/usr/share/webapps/freshrss/Docker |
| 92 | rm -rf "$pkgdir"/usr/share/webapps/freshrss/tests |
| 93 | install -dm755 "$pkgdir"/var/lib/freshrss |
| 94 | |
| 95 | mv "$pkgdir"/usr/share/webapps/freshrss/data "$pkgdir"/var/lib/freshrss/data |
| 96 | chgrp -R "www-data" "$pkgdir"/var/lib/freshrss/ |
| 97 | chown -R "$pkgname" "$pkgdir"/var/lib/freshrss/ |
| 98 | |
| 99 | install -dm775 -o "$pkgname" -g www-data "$pkgdir"/var/log/"$pkgname" |
| 100 | |
| 101 | install -m600 -D "$srcdir"/freshrss.crontab "$pkgdir"/etc/crontabs/freshrss |
| 102 | } |
| 103 | |
| 104 | openrc() { |
| 105 | install -m644 -D "$srcdir"/fpm-pool.conf "$subpkgdir/etc/$_php/php-fpm.d/$pkgname".conf |
| 106 | install -m644 -D "$srcdir/$pkgname".confd "$subpkgdir"/etc/conf.d/"$pkgname" |
| 107 | |
| 108 | install -d -o freshrss -g www-data "$pkgdir"/var/tmp/freshrss |
| 109 | |
| 110 | mkdir -p "$subpkgdir"/etc/init.d/ |
| 111 | ln -s "php-fpm${_php#php}" "$subpkgdir"/etc/init.d/"$pkgname" |
| 112 | } |
| 113 | |
| 114 | lang() { |
| 115 | pkgdesc="translations for $pkgname" |
| 116 | install_if="$pkgname=$pkgver-r$pkgrel lang" |
| 117 | local lang |
| 118 | for lang in "$pkgdir"/usr/share/webapps/freshrss/app/i18n/*; do |
| 119 | # keep in base for default language |
| 120 | if [ "$(basename "$lang")" != "en" ]; then |
| 121 | amove usr/share/webapps/freshrss/app/i18n/"$(basename "$lang")" |
| 122 | fi |
| 123 | done |
| 124 | } |
| 125 | |
| 126 | themes() { |
| 127 | pkgdesc="themes for $pkgname" |
| 128 | local theme |
| 129 | for theme in "$pkgdir"/usr/share/webapps/freshrss/p/themes/*; do |
| 130 | if [ -d "$theme" ]; then |
| 131 | case "$(basename "$theme")" in |
| 132 | # keep base-theme and default files, split the rest |
| 133 | base-theme | fonts | icons | Origine) ;; |
| 134 | *) amove usr/share/webapps/freshrss/p/themes/"$(basename "$theme")" ;; |
| 135 | esac |
| 136 | fi |
| 137 | done |
| 138 | } |
| 139 | |
| 140 | mysql() { |
| 141 | pkgdesc="FreshRSS MySQL support" |
| 142 | depends="$pkgname $_php-pdo_mysql" |
| 143 | mkdir -p "$subpkgdir" |
| 144 | } |
| 145 | |
| 146 | pgsql() { |
| 147 | pkgdesc="FreshRSS PostgreSQL support" |
| 148 | depends="$pkgname $_php-pgsql $_php-pdo_pgsql" |
| 149 | mkdir -p "$subpkgdir" |
| 150 | } |
| 151 | |
| 152 | sqlite() { |
| 153 | pkgdesc="FreshRSS SQLite support" |
| 154 | depends="$pkgname $_php-sqlite3 $_php-pdo_sqlite" |
| 155 | mkdir -p "$subpkgdir" |
| 156 | } |
| 157 | |
| 158 | sha512sums=" |
| 159 | 0a42d17c6c357e1cc7338af73fec190556e9b69cff60714f0a3e8b1402018ed90de21f3e212de417176456b83e801077ad4d56d0866c376469005ae02a467cb4 freshrss-1.29.1.tar.gz |
| 160 | dbd1468439192cd536ae1fc063edcda0a8047504c053f2566486697d454bbc328bb5ba841b597c09c1c4954fa0d71d1c79044fb8a179915b5bcc136fa2b50889 defaults.patch |
| 161 | 304767cc14db425fdb6f0214aca8baaa92ea05e8fc767e79ec96c4d9032509c2b52cb687106dc25b291bc7150305dde0bd0a84d77b0fc8ad872d2331c458bacf freshrss.confd |
| 162 | b6fe57b31bd48afb067d0c851ff42078e01ee42e3e2f01bbb64f8114429ddce740ce3fbd76eb487acf1b80909eb7e5e2721d5f3b2bdd6264d75d169d032dd2fe fpm-pool.conf |
| 163 | 03e84ba5207dfa3d289326d87a2cba02d05a8de0da6dc7c390a43ab4061c259fe6c62b99a05f0192b5883405f2490022a280fa6a02984f3b640b6d8c9c1dab9a freshrss.crontab |
| 164 | " |