Browse Source

Use php-legacy by default in Arch packages

This has not yet received rigorous testing
arch
J. King 4 months ago
parent
commit
9550b013a9
  1. 2
      CHANGELOG
  2. 53
      dist/arch/PKGBUILD
  3. 52
      dist/arch/PKGBUILD-git
  4. 12
      docs/en/020_Getting_Started/020_Download_and_Installation/010_On_Arch_Linux.md

2
CHANGELOG

@ -3,6 +3,8 @@ Version 0.??.? (????-??-??)
Changes:
- Require PHP 7.3
- Default to using php-legacy package on Arch Linux; the new arsse-latest
package can be installed to depend on the latest PHP version instead
- Multiple editorial and stylistic changes to the UNIX manual page
Version 0.10.4 (2023-01-24)

53
dist/arch/PKGBUILD

@ -1,22 +1,17 @@
# Maintainer: J. King <jking@jkingweb.ca>
pkgname="arsse"
_pkgdesc="Multi-protocol RSS/Atom newsfeed synchronization server"
pkgname=("arsse" "arsse-latest")
pkgver=0.10.4
pkgrel=1
pkgrel=2
epoch=
pkgdesc="Multi-protocol RSS/Atom newsfeed synchronization server"
arch=("any")
url="https://thearsse.com/"
license=("MIT")
depends=()
makedepends=()
checkdepends=()
optdepends=("nginx: HTTP server"
_optdepends=("nginx: HTTP server"
"apache>=2.4: HTTP server"
"percona-server: Alternate database"
"postgresql>=10: Alternate database"
"php-pgsql>=7.3: PostgreSQL database support")
backup=("etc/webapps/arsse/config.php"
"etc/php/php-fpm.d/arsse.conf"
"postgresql>=10: Alternate database")
_backup=("etc/webapps/arsse/config.php"
"etc/webapps/arsse/nginx/example.conf"
"etc/webapps/arsse/nginx/arsse.conf"
"etc/webapps/arsse/nginx/arsse-loc.conf"
@ -24,15 +19,15 @@ backup=("etc/webapps/arsse/config.php"
"etc/webapps/arsse/apache/example.conf"
"etc/webapps/arsse/apache/arsse.conf"
"etc/webapps/arsse/apache/arsse-loc.conf")
_conflicts=("arsse-git"
"arsse-latest-git")
source=("arsse-0.10.4.tar.gz")
md5sums=("SKIP")
package() {
# define runtime dependencies
depends=("php>=7.3" "php-intl>=7.3" "php-sqlite>=7.3" "php-fpm>=7.3")
_package() {
# create most directories necessary for the final package
cd "$pkgdir"
mkdir -p "usr/share/webapps/arsse" "usr/share/doc/arsse" "usr/share/licenses/arsse" "usr/lib/systemd/system" "usr/lib/sysusers.d" "usr/lib/tmpfiles.d" "etc/php/php-fpm.d" "etc/webapps/arsse"
mkdir -p "usr/share/webapps/arsse" "usr/share/doc/arsse" "usr/share/licenses/arsse" "usr/lib/systemd/system" "usr/lib/sysusers.d" "usr/lib/tmpfiles.d" "etc/$1/php-fpm.d" "etc/webapps/arsse"
# copy requisite files
cd "$srcdir/arsse"
cp -r lib locale sql vendor www CHANGELOG UPGRADING README.md arsse.php "$pkgdir/usr/share/webapps/arsse"
@ -41,7 +36,7 @@ package() {
cp dist/systemd/* "$pkgdir/usr/lib/systemd/system"
cp dist/sysuser.conf "$pkgdir/usr/lib/sysusers.d/arsse.conf"
cp dist/tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/arsse.conf"
cp dist/php-fpm.conf "$pkgdir/etc/php/php-fpm.d/arsse.conf"
cp dist/php-fpm.conf "$pkgdir/etc/$1/php-fpm.d/arsse.conf"
cp -r dist/man "$pkgdir/usr/share"
cp -r dist/nginx dist/apache config.defaults.php "$pkgdir/etc/webapps/arsse"
cd "$pkgdir"
@ -51,7 +46,29 @@ package() {
install -Dm640 dist/config.php "$pkgdir/etc/webapps/arsse"
# patch generic configuration files to use Arch-specific paths and identifiers
sed -i -se 's/\/\(etc\|usr\/share\)\/arsse\//\/\1\/webapps\/arsse\//g' "$pkgdir/etc/webapps/arsse/nginx/"* "$pkgdir/etc/webapps/arsse/apache/"* "$pkgdir/usr/lib/tmpfiles.d/arsse.conf" "$pkgdir/usr/lib/systemd/system/"* "$pkgdir/usr/bin/"*
sed -i -se 's/\/var\/run\/php\//\/run\/php-fpm\//g' "$pkgdir/etc/webapps/arsse/nginx/"* "$pkgdir/etc/webapps/arsse/apache/"* "$pkgdir/etc/php/php-fpm.d/arsse.conf"
sed -i -se 's/www-data/http/g' "$pkgdir/etc/php/php-fpm.d/arsse.conf"
sed -i -se 's/\/var\/run\/php\//\/run\/php-fpm\//g' "$pkgdir/etc/webapps/arsse/nginx/"* "$pkgdir/etc/webapps/arsse/apache/"* "$pkgdir/etc/$1/php-fpm.d/arsse.conf"
sed -i -se 's/www-data/http/g' "$pkgdir/etc/$1/php-fpm.d/arsse.conf"
sed -i -e 's/^WorkingDirectory=.*$/WorkingDirectory=\/usr\/share\/webapps\/arsse/g' -e 's/^ConfigurationDirectory=.*$/ConfigurationDirectory=webapps\/arsse/g' "$pkgdir/usr/lib/systemd/system/arsse-fetch.service"
}
package_arsse() {
pkgdesc="${_pkgdesc}"
depends=("php-legacy>=7.3" "php-legacy-sqlite>=7.3" "php-legacy-fpm>=7.3")
optdepends=("${_optdepends[@]}" "php-legacy-pgsql>=7.3: PostgreSQL database support")
backup=("${_backup[@]}" "etc/php-legacy/php-fpm.d/arsse.conf")
conflicts=("${_conflicts[@]}" "arsse-latest")
_package "php-legacy"
# perform additional patching for php-legacy
sed -i -se 's/\/usr\/bin\/env php/\/usr\/bin\/env php-legacy/' "$pkgdir/usr/bin/arsse"
sed -i -se 's/php-fpm/php-fpm-legacy/g' "$pkgdir/etc/webapps/arsse/nginx/"* "$pkgdir/etc/webapps/arsse/apache/"* "$pkgdir/etc/$1/php-fpm.d/arsse.conf"
}
package_arsse-latest() {
provides=("arsse")
pkgdesc="${_pkgdesc} (latest PHP version)"
depends=("php>=7.3" "php-sqlite>=7.3" "php-fpm>=7.3")
optdepends=("${_optdepends[@]}" "php-pgsql>=7.3: PostgreSQL database support")
backup=("${_backup[@]}" "etc/php/php-fpm.d/arsse.conf")
conflicts=("${_conflicts[@]}" "arsse")
_package "php"
}

52
dist/arch/PKGBUILD-git

@ -1,24 +1,21 @@
# Maintainer: J. King <jking@jkingweb.ca>
_pkgdesc="Multi-protocol RSS/Atom newsfeed synchronization server, bugfix-testing version"
pkgname=("arsse-git" "arsse-latest-git")
pkgname="arsse-git"
pkgver=0.10.4
pkgrel=1
pkgrel=2
epoch=
pkgdesc="Multi-protocol RSS/Atom newsfeed synchronization server, bugfix-testing version"
arch=("any")
url="https://thearsse.com/"
license=("MIT")
provides=("arsse")
conflicts=("arsse")
depends=("php>=7.3" "php-intl>=7.3" "php-sqlite>=7.3")
makedepends=("composer" "pandoc")
makedepends=("php-legacy" "composer" "pandoc")
checkdepends=()
optdepends=("nginx: HTTP server"
_optdepends=("nginx: HTTP server"
"apache>=2.4: HTTP server"
"percona-server: Alternate database"
"postgresql>=10: Alternate database"
"php-pgsql>=7.3: PostgreSQL database support")
backup=("etc/webapps/arsse/config.php"
"etc/php/php-fpm.d/arsse.conf"
"postgresql>=10: Alternate database")
_backup=("etc/webapps/arsse/config.php"
"etc/webapps/arsse/nginx/example.conf"
"etc/webapps/arsse/nginx/arsse.conf"
"etc/webapps/arsse/nginx/arsse-loc.conf"
@ -26,6 +23,8 @@ backup=("etc/webapps/arsse/config.php"
"etc/webapps/arsse/apache/example.conf"
"etc/webapps/arsse/apache/arsse.conf"
"etc/webapps/arsse/apache/arsse-loc.conf")
_conflicts=("arsse"
"arsse-latest")
source=("git+https://code.mensbeam.com/MensBeam/arsse/")
md5sums=("SKIP")
@ -44,12 +43,10 @@ build() {
rm -r vendor/bin
}
package() {
# define runtime dependencies
depends=("php>=7.3" "php-intl>=7.3" "php-sqlite>=7.3" "php-fpm>=7.3")
_package() {
# create most directories necessary for the final package
cd "$pkgdir"
mkdir -p "usr/share/webapps/arsse" "usr/share/doc/arsse" "usr/share/licenses/arsse" "usr/lib/systemd/system" "usr/lib/sysusers.d" "usr/lib/tmpfiles.d" "etc/php/php-fpm.d" "etc/webapps/arsse"
mkdir -p "usr/share/webapps/arsse" "usr/share/doc/arsse" "usr/share/licenses/arsse" "usr/lib/systemd/system" "usr/lib/sysusers.d" "usr/lib/tmpfiles.d" "etc/$1/php-fpm.d" "etc/webapps/arsse"
# copy requisite files
cd "$srcdir/arsse"
cp -r lib locale sql vendor www CHANGELOG UPGRADING README.md arsse.php "$pkgdir/usr/share/webapps/arsse"
@ -58,7 +55,7 @@ package() {
cp dist/systemd/* "$pkgdir/usr/lib/systemd/system"
cp dist/sysuser.conf "$pkgdir/usr/lib/sysusers.d/arsse.conf"
cp dist/tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/arsse.conf"
cp dist/php-fpm.conf "$pkgdir/etc/php/php-fpm.d/arsse.conf"
cp dist/php-fpm.conf "$pkgdir/etc/$1/php-fpm.d/arsse.conf"
cp -r dist/man "$pkgdir/usr/share"
cp -r dist/nginx dist/apache config.defaults.php "$pkgdir/etc/webapps/arsse"
cd "$pkgdir"
@ -68,7 +65,28 @@ package() {
install -Dm640 dist/config.php "$pkgdir/etc/webapps/arsse"
# patch generic configuration files to use Arch-specific paths and identifiers
sed -i -se 's/\/\(etc\|usr\/share\)\/arsse\//\/\1\/webapps\/arsse\//g' "$pkgdir/etc/webapps/arsse/nginx/"* "$pkgdir/etc/webapps/arsse/apache/"* "$pkgdir/usr/lib/tmpfiles.d/arsse.conf" "$pkgdir/usr/lib/systemd/system/"* "$pkgdir/usr/bin/"*
sed -i -se 's/\/var\/run\/php\//\/run\/php-fpm\//g' "$pkgdir/etc/webapps/arsse/nginx/"* "$pkgdir/etc/webapps/arsse/apache/"* "$pkgdir/etc/php/php-fpm.d/arsse.conf"
sed -i -se 's/www-data/http/g' "$pkgdir/etc/php/php-fpm.d/arsse.conf"
sed -i -se 's/\/var\/run\/php\//\/run\/php-fpm\//g' "$pkgdir/etc/webapps/arsse/nginx/"* "$pkgdir/etc/webapps/arsse/apache/"* "$pkgdir/etc/$1/php-fpm.d/arsse.conf"
sed -i -se 's/www-data/http/g' "$pkgdir/etc/$1/php-fpm.d/arsse.conf"
sed -i -e 's/^WorkingDirectory=.*$/WorkingDirectory=\/usr\/share\/webapps\/arsse/g' -e 's/^ConfigurationDirectory=.*$/ConfigurationDirectory=webapps\/arsse/g' "$pkgdir/usr/lib/systemd/system/arsse-fetch.service"
}
package_arsse() {
pkgdesc="${_pkgdesc}"
depends=("php-legacy>=7.3" "php-legacy-sqlite>=7.3" "php-legacy-fpm>=7.3")
optdepends=("${_optdepends[@]}" "php-legacy-pgsql>=7.3: PostgreSQL database support")
backup=("${_backup[@]}" "etc/php-legacy/php-fpm.d/arsse.conf")
conflicts=("${_conflicts[@]}" "arsse-latest-git")
_package "php-legacy"
# perform additional patching for php-legacy
sed -i -se 's/\/usr\/bin\/env php/\/usr\/bin\/env php-legacy/' "$pkgdir/usr/bin/arsse"
sed -i -se 's/php-fpm/php-fpm-legacy/g' "$pkgdir/etc/webapps/arsse/nginx/"* "$pkgdir/etc/webapps/arsse/apache/"* "$pkgdir/etc/$1/php-fpm.d/arsse.conf"
}
package_arsse-latest() {
pkgdesc="${_pkgdesc} (latest PHP version)"
depends=("php>=7.3" "php-sqlite>=7.3" "php-fpm>=7.3")
optdepends=("${_optdepends[@]}" "php-pgsql>=7.3: PostgreSQL database support")
backup=("${_backup[@]}" "etc/php/php-fpm.d/arsse.conf")
conflicts=("${_conflicts[@]}" "arsse-git")
_package "php"
}

12
docs/en/020_Getting_Started/020_Download_and_Installation/010_On_Arch_Linux.md

@ -2,7 +2,7 @@
# Downloading The Arsse
Since version 0.9.2 The Arsse is available from the [Arch User Repository](https://aur.archlinux.org/) as packages `arsse` and `arsse-git`. The latter should normally only be used to test bug fixes.
Since version 0.9.2 The Arsse is available from the [Arch User Repository](https://aur.archlinux.org/) as packages `arsse`, `arsse-latest`, `arsse-git` and `arsse-latest-git`. The latter two should normally only be used to test bug fixes. The base `arsse` package uses the `php-legacy` package rather than the `php` package, to avoid disruptions when new PHP feature versions are released.
Generic release tarballs may also be downloaded [from our Web site](https://thearsse.com), and the `PKGBUILD` file (found under `arsse/dist/arch/`) can then be extracted alongside the tarball and used to build the `arsse` package. Installing directly from the generic release tarball without producing an Arch package is not recommended as the package-building process performs various adjustments to handle Arch peculiarities.
@ -12,15 +12,15 @@ For illustrative purposes, this document assumes the `yay` [AUR helper](https://
```sh
# Install the package
sudo yay -S arsse
yay -S arsse
# Enable the necessary PHP extensions; curl is optional but recommended; pdo_sqlite may be used instead of sqlite3, but this is not recommended
sudo sed -i -e 's/^;\(extension=\(curl\|iconv\|intl\|sqlite3\)\)$/\1/' /etc/php/php.ini
sudo sed -i -e 's/^;\(extension=\(curl\|iconv\|intl\|sqlite3\)\)$/\1/' /etc/php-legacy/php.ini
# Enable and start the necessary systemd units
sudo systemctl enable php-fpm arsse
sudo systemctl restart php-fpm arsse
sudo systemctl enable php-legacy-fpm arsse
sudo systemctl restart php-legacy-fpm arsse
```
Note that the above is the most concise process, not necessarily the recommended one. In particular [it is recommended](https://wiki.archlinux.org/title/PHP#Extensions) to use `/etc/php/conf.d/` to enable PHP extensions rather than editing `php.ini` as done above.
Note that the above is the most concise process, not necessarily the recommended one. In particular [it is recommended](https://wiki.archlinux.org/title/PHP#Extensions) to use `/etc/php-legacy/conf.d/` to enable PHP extensions rather than editing `php.ini` as done above.
# Web server configuration

Loading…
Cancel
Save