From 9550b013a9cd4872ba24637751387ded5798ba2e Mon Sep 17 00:00:00 2001 From: "J. King" Date: Tue, 19 Dec 2023 17:25:49 -0500 Subject: [PATCH] Use php-legacy by default in Arch packages This has not yet received rigorous testing --- CHANGELOG | 2 + dist/arch/PKGBUILD | 53 ++++++++++++------- dist/arch/PKGBUILD-git | 52 ++++++++++++------ .../010_On_Arch_Linux.md | 12 ++--- 4 files changed, 78 insertions(+), 41 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index fc89404b..f82eec7e 100644 --- a/CHANGELOG +++ b/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) diff --git a/dist/arch/PKGBUILD b/dist/arch/PKGBUILD index 76afba7d..446f9929 100644 --- a/dist/arch/PKGBUILD +++ b/dist/arch/PKGBUILD @@ -1,22 +1,17 @@ # Maintainer: J. King -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" +} diff --git a/dist/arch/PKGBUILD-git b/dist/arch/PKGBUILD-git index c366e893..6f9f6d0a 100644 --- a/dist/arch/PKGBUILD-git +++ b/dist/arch/PKGBUILD-git @@ -1,24 +1,21 @@ # Maintainer: J. King +_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" +} diff --git a/docs/en/020_Getting_Started/020_Download_and_Installation/010_On_Arch_Linux.md b/docs/en/020_Getting_Started/020_Download_and_Installation/010_On_Arch_Linux.md index e075c1b2..fd8f144e 100644 --- a/docs/en/020_Getting_Started/020_Download_and_Installation/010_On_Arch_Linux.md +++ b/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