# own-php apt-Repository

Eigenbau von PHP 8.3 (FPM, CLI, alle Module inkl. apcu/redis/imagick/memcached/igbinary/gnupg/smbclient/xmlrpc) sowie php-common 2:101+ownphp+1 für
Ubuntu 24.04 (noble, zusätzlich PHP 8.4, siehe unten), 22.04 (jammy), 20.04 (focal) und 18.04 (bionic), Debian 10 (buster, Suite `buster`, dort auch PHP 8.0, 7.4, 7.3 und 7.2, siehe unten) sowie – als Machbarkeitsbuild mit
eingeschränktem Funktionsumfang – Ubuntu 16.04 (xenial, EOL; siehe unten). Für Ubuntu 18.04 (bionic)
zusätzlich PHP 8.1 (Pakete `php8.1-*`), PHP 8.0, PHP 7.4 (Pakete `php7.4-*`), PHP 7.3 (Pakete `php7.3-*`) und PHP 7.2 (Pakete `php7.2-*`), alle in derselben Suite `bionic`
(PHP 8.1 und 7.4 sind upstream EOL, siehe unten). Gepflegt mit `reprepro`
(`/opt/own-php/scripts/07-mirror.sh`), signiert mit dem Schlüssel

    86DACC291F6EEB260DDE73B60FD19DA7686B6E21  (own-php Repository Signing Key)

Öffentlicher Schlüssel: `patchdeb-archive-keyring.gpg` (binär) bzw. `patchdeb-archive-key.asc` (ASCII).
Privater Schlüssel: `/opt/own-php/gpg/` (nur auf dem Build-Host, Modus 0700, ohne Passphrase).

## Struktur

    MIRROR/
      dists/<noble|jammy|focal|bionic|xenial|buster>/InRelease, Release, Release.gpg
      dists/<dist>/main/binary-amd64/Packages{,.gz}
      dists/<dist>/main/source/Sources{,.gz}
      pool/main/p/php8.4/*.deb, *.dsc, *.orig.tar.xz, *.debian.tar.xz   (Suite noble)
      pool/main/p/php8.3/*.deb, *.dsc, *.orig.tar.xz, *.debian.tar.xz   (Suiten noble, jammy, focal, bionic, xenial, buster)
      pool/main/p/php8.1/*.deb, *.dsc, *.orig.tar.xz, *.debian.tar.xz   (Suiten jammy, focal, bionic und xenial)
      pool/main/p/php7.4/*.deb, *.dsc, *.orig.tar.xz, *.debian.tar.xz   (Suiten bionic, xenial und buster)
      pool/main/p/php8.0/*.deb, *.dsc, *.orig.tar.xz, *.debian.tar.xz   (Suiten jammy, focal, bionic, xenial und buster)
      pool/main/p/php8.0/*.deb, *.dsc, *.orig.tar.xz, *.debian.tar.xz   (Suiten jammy, focal, bionic und xenial)
      pool/main/p/php-defaults/php-common_*.deb
      dbgsym/<dist>/*.ddeb        (Debug-Symbole, nicht im apt-Index)
      conf/, db/                  (reprepro-Verwaltung, nicht ausliefern nötig)

## Bereitstellen

Das Verzeichnis kann direkt per HTTP(S) ausgeliefert werden (z. B. nginx `root /opt/own-php/MIRROR;`
mit `autoindex on;`) oder per rsync/scp auf den Zielserver kopiert und dort lokal mit
`deb [..] file:/pfad/MIRROR focal main` eingebunden werden. `conf/` und `db/` müssen nicht mit.

## Einbinden auf einem Client (Beispiel focal)

    sudo install -m 0644 patchdeb-archive-keyring.gpg /usr/share/keyrings/patchdeb-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/patchdeb-archive-keyring.gpg] http://<mirror-host>/own-php focal main" \
      | sudo tee /etc/apt/sources.list.d/patchdeb.list
    sudo apt update
    apt policy php8.3-fpm        # Kandidat muss ...+ownphp+1 sein

Für jammy bzw. bionic entsprechend `jammy main` bzw. `bionic main` (xenial: `xenial main`, siehe Hinweis unten);
Debian 10: `buster main` (PHP 8.3 `php8.3-*`, PHP 8.0 `php8.0-*`, PHP 7.4 `php7.4-*`, PHP 7.3 `php7.3-*` und PHP 7.2 `php7.2-*`, siehe Abschnitte „… für Debian 10“);
Ubuntu 24.04: `noble main` (PHP 8.3 `php8.3-*` **ersetzt Ubuntus eigenes php8.3**, zusätzlich PHP 8.4 `php8.4-*`; siehe Abschnitte „PHP 8.3 für Ubuntu 24.04“ und „PHP 8.4 für Ubuntu 24.04“).

## Pinning (falls parallel ein Sury-Mirror eingebunden ist)

    # /etc/apt/preferences.d/own-php
    Package: php8.3-* libapache2-mod-php8.3 libphp8.3-embed php8.1-* libapache2-mod-php8.1 libphp8.1-embed php8.0-* libapache2-mod-php8.0 libphp8.0-embed php7.4-* libapache2-mod-php7.4 libphp7.4-embed
    Pin: release o=patchdeb
    Pin-Priority: 1001

Die own-php-Pakete sind untereinander strikt versioniert (`php8.3-common (= Version)`);
`php-common` (2:101+ownphp+1) ist im Repo enthalten und ersetzt die Ubuntu-/Sury-Version.

## Umstieg von Sury-/Freexian-Paketen (Revision +ownphp+2)

Seit Revision `+ownphp+2` liegen die Header der PECL-Module (apcu, imagick, igbinary) wie bei
Sury/Freexian im jeweiligen Modulpaket und nicht mehr in `php8.3-dev`; die Modulpakete tragen
`Replaces: php8.3-dev (<< …+ownphp+2)`. Ein Upgrade von Freexian- oder von `+ownphp+1`-Paketen
benötigt damit kein `--force-overwrite` mehr. `php8.3-xmlrpc` behält das Epoch 3
(`3:8.3.36-…`), damit apt von `3:1.0.0~rc3-*` sauber upgradet.

Empfohlene Reihenfolge auf einem Zielsystem (Simulation zuerst):

    sudo apt update
    apt-get -s dist-upgrade | grep -E '^(Inst|Conf|Remv)'      # nur anzeigen
    sudo apt-get dist-upgrade                                   # ohne --force-*
    dpkg-query -W -f='${Package} ${Version}\n' 'php8.3-*' 'php-common' | grep -vE 'ownphp' ; echo "(leer = alles own-php)"

Fremdquellen (Freexian/Sury) für PHP anschließend in /etc/apt/sources.list.d/ deaktivieren oder per
Pinning (s. o.) nachrangig halten.

## Nextcloud-Installation (Beispiel)

    sudo apt install php8.3-fpm php8.3-cli php8.3-common php8.3-opcache php8.3-readline \
      php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl php8.3-bcmath \
      php8.3-gmp php8.3-bz2 php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-ldap php8.3-imap \
      php8.3-apcu php8.3-redis php8.3-imagick

## PHP 8.2 für Ubuntu 18.04 (bionic)

Auf Wunsch des Betreibers (24.10.2026) liegt in der Suite `bionic` zusätzlich PHP 8.2 (`php8.2-*`, Version
`8.2.35-1+ubuntu18.04.1+ownphp+1`, 45 Binärpakete, gleicher Modulumfang wie php8.3 inkl. der acht PECL-Module,
`php8.2-xmlrpc` mit Epoch 3, `php8.2-imap` noch Kern-Erweiterung). Grundlage ist Surys gbp-Quellpaket
`php8.2 8.2.35-1+0~20261021.94+ubuntu22.04~1.gbp8bff78` (jammy-Pool; Upstream-Tarball byteidentisch mit php.net, Signatur
Sergey Panteleev, siehe `logs/gpg-verify-php8.2.txt`). **PHP 8.2.35 (21.10.2026) enthält den Fix für CVE-2026-109618/109619
(„PHP2Shell“) und `max_multipart_body_parts` nativ.** Argon2 (argon2i/argon2id) über bionics libargon2-0.
PHP 8.2 wird upstream bis 31.12.2026 mit Sicherheitskorrekturen versorgt. Parallel zu php8.3/8.1/8.0/7.x aus diesem Repo
installierbar (`/etc/php/8.2/`, `/usr/lib/php/20220829/`, Dienst `php8.2-fpm`); `php-common 2:101+ownphp+1` gilt für alle.
Pakete und Bericht: `/opt/own-php/packages/bionic-php8.2/`, `/opt/own-php/BUILD-REPORT-bionic-php8.2.md`.

    apt policy php8.2-fpm
    sudo apt install php8.2-fpm php8.2-cli php8.2-common php8.2-opcache php8.2-readline \
      php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-intl php8.2-bcmath \
      php8.2-gmp php8.2-bz2 php8.2-mysql php8.2-pgsql php8.2-sqlite3 php8.2-ldap php8.2-imap \
      php8.2-apcu php8.2-redis php8.2-imagick

Statisch geprüft; zusätzlich Laufzeittest in einer gelöschten Wegwerf-Kopie (Installation aus dem Repo, php -v/-m, php-fpm -t,
Funktionstests inkl. Argon2, Multipart-Upload und -Limit; Bericht Abschnitt 11). Die PECL-Module tragen kein Epoch `1:`
(wie bionic-8.3/8.1); liegen auf dem Zielserver alte Sury-/Freexian-Module mit Epoch, ist ein Rebuild mit `PECL_EPOCH=1` nötig.
php8.2 aus der Suite entfernen: `reprepro -b /opt/own-php/MIRROR removefilter bionic 'Source (== php8.2)'`.

## PHP 8.1 für Ubuntu 18.04 (bionic)

Auf Wunsch des Betreibers liegt in der Suite `bionic` zusätzlich PHP 8.1 (`php8.1-*`, Version
`8.1.34-8+ubuntu18.04.1+ownphp+1`, gleicher Modulumfang wie php8.3 inkl. der acht PECL-Module,
`php8.1-xmlrpc` mit Epoch 3). Grundlage ist Surys Paketierung `php8.1 8.1.34-8+ubuntu22.04.1+deb.sury.org+1`
(jammy-Pool), die Sicherheitskorrekturen aus PHP 8.2 zurückportiert (Paketierung -9 vom 21.10.2026; Repo-Stand ist der php-src-Git-Build, siehe unten). **PHP 8.1 ist seit 31.12.2025
upstream End-of-Life**; weitere Korrekturen gibt es nur, solange Sury sie zurückportiert. Beide
Hauptversionen sind parallel installierbar (getrennte Pfade `/etc/php/8.1` und `/etc/php/8.3`,
`php-fpm8.1`/`php-fpm8.3`); `php-common 2:101+ownphp+1` gilt für beide. Pakete und Berichte:
`/opt/own-php/packages/bionic-php8.1/`, `/opt/own-php/BUILD-REPORT-bionic-php8.1.md`.

    apt policy php8.1-fpm
    sudo apt install php8.1-fpm php8.1-cli php8.1-common php8.1-opcache php8.1-readline \
      php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip php8.1-intl php8.1-bcmath \
      php8.1-gmp php8.1-bz2 php8.1-mysql php8.1-pgsql php8.1-sqlite3 php8.1-ldap php8.1-imap \
      php8.1-apcu php8.1-redis php8.1-imagick

Nur statisch geprüft (keine Installation, keine Laufzeittests). php8.1 aus der Suite entfernen:
`reprepro -b /opt/own-php/MIRROR removefilter bionic 'Source (== php8.1)'`.

**Aktueller Stand in der Suite (22.10.2026):** `8.1.34+git20261018.1d7dec17-9+ubuntu18.04.1+ownphp+1` – auf Wunsch
des Betreibers aus dem php-src-Branch `PHP-8.1-CVE-2026-109618-109619` (Commit 1d7dec178a, PHP2Shell-Fix
CVE-2026-109618/109619, Commit-Signatur geprüft) gebaut: PHP-Code aus dem Git-Snapshot (8.1.34 + Commit),
Paketierung (`debian/`) aus Sury 8.1.34-9 ohne dessen inhaltsgleichen Patch 0083. Pakete:
`/opt/own-php/packages/bionic-php8.1-phpsrc/`, Bericht `BUILD-REPORT-bionic-php8.1-phpsrc.md`. Der ältere
Tarball-Build `8.1.34-8+…` (ohne PHP2Shell-Fix) liegt unter `packages/bionic-php8.1/`, ist aber nicht mehr im Repo.

## PHP 8.2 für Ubuntu 20.04 (focal)

Auf Wunsch des Betreibers (24.10.2026) liegt in der Suite `focal` zusätzlich PHP 8.2 (`php8.2-*`, Version
`8.2.35-1+ubuntu20.04.1+ownphp+1`, 45 Binärpakete, gleicher Modulumfang wie php8.3 inkl. der acht PECL-Module,
`php8.2-xmlrpc` mit Epoch 3, `php8.2-imap` noch Kern-Erweiterung). Dieselbe Quelle wie der bionic-8.2-Build: Surys gbp-Quellpaket
`php8.2 8.2.35-1+0~20261021.94+ubuntu22.04~1.gbp8bff78` (jammy-Pool; Upstream-Tarball byteidentisch mit php.net, Signatur
Sergey Panteleev, siehe `logs/gpg-verify-php8.2.txt`). **PHP 8.2.35 (21.10.2026) enthält den Fix für CVE-2026-109618/109619
(„PHP2Shell“) und `max_multipart_body_parts` nativ.** Argon2 (argon2i/argon2id) über focals libargon2-1.
PHP 8.2 wird upstream bis 31.12.2026 mit Sicherheitskorrekturen versorgt. Parallel zu php8.3/8.1/8.0/7.4 aus diesem Repo
installierbar (`/etc/php/8.2/`, `/usr/lib/php/20220829/`, Dienst `php8.2-fpm`); `php-common 2:101+ownphp+1` gilt für alle.
Pakete und Bericht: `/opt/own-php/packages/focal-php8.2/`, `/opt/own-php/BUILD-REPORT-focal-php8.2.md`.

    apt policy php8.2-fpm
    sudo apt install php8.2-fpm php8.2-cli php8.2-common php8.2-opcache php8.2-readline \
      php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-intl php8.2-bcmath \
      php8.2-gmp php8.2-bz2 php8.2-mysql php8.2-pgsql php8.2-sqlite3 php8.2-ldap php8.2-imap \
      php8.2-apcu php8.2-redis php8.2-imagick

Statisch geprüft; zusätzlich Laufzeittest in einer gelöschten Wegwerf-Kopie (Installation aus dem Repo, php -v/-m, php-fpm -t,
Funktionstests inkl. Argon2, Multipart-Upload und -Limit; Bericht Abschnitt 11). Die PECL-Module tragen kein Epoch `1:`
(wie focal-8.3/8.1). php8.2 aus der Suite entfernen: `reprepro -b /opt/own-php/MIRROR removefilter focal 'Source (== php8.2)'`.

## PHP 8.1 für Ubuntu 20.04 (focal) – aus php-src-Git

Auf Wunsch des Betreibers liegt in der Suite `focal` zusätzlich PHP 8.1 (`php8.1-*`, Version
`8.1.34+git20261018.1d7dec17-9+ubuntu20.04.1+ownphp+1`): derselbe php-src-Snapshot wie für bionic (Branch
`PHP-8.1-CVE-2026-109618-109619`, Commit 1d7dec178a, PHP2Shell-Fix), Paketierung aus Sury 8.1.34-9 ohne dessen
Patch 0083, alle acht PECL-Module. **PHP 8.1 ist upstream EOL (31.12.2025).** Parallel zu php8.3 installierbar.
Pakete und Bericht: `/opt/own-php/packages/focal-php8.1-phpsrc/`, `/opt/own-php/BUILD-REPORT-focal-php8.1-phpsrc.md`.
Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter focal 'Source (== php8.1)'`.

    apt policy php8.1-fpm      # auf einem focal-Client

## PHP 8.3 für Ubuntu 24.04 (noble)

Suite `noble`: PHP 8.3 (`php8.3-*`, Version `8.3.36-1+ubuntu24.04.1+ownphp+2`, 44 Binärpakete) aus derselben Quelle und
mit derselben Paketierung wie die php8.3-Builds für jammy/focal/bionic (Sury `php8.3 8.3.36-1+ubuntu22.04.1+deb.sury.org+1`,
alle acht PECL-Module in-tree, Argon2 über Ubuntus libargon2-1).

    echo "deb [signed-by=/usr/share/keyrings/patchdeb-archive-keyring.gpg] http://<mirror-host>/own-php noble main" \
      | sudo tee /etc/apt/sources.list.d/patchdeb.list
    sudo apt update && apt policy php8.3-fpm php-common      # Kandidat muss ...+ownphp+2 bzw. 2:101+ownphp+1 sein
    sudo apt install php8.3-fpm php8.3-cli php8.3-common php8.3-opcache php8.3-readline php8.3-curl php8.3-gd \
      php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl php8.3-bcmath php8.3-gmp php8.3-mysql php8.3-apcu \
      php8.3-redis php8.3-imagick

Hinweise:
- **Ubuntu 24.04 liefert selbst PHP 8.3** (`php8.3-* 8.3.6-0ubuntu0.24.04.x`, `php-common 2:93ubuntu2`, Modulpakete
  php8.3-apcu/-redis/-imagick/-igbinary/-memcached/-smbclient/-gnupg/-xmlrpc aus universe). Die Pakete aus diesem Repo
  tragen dieselben Namen mit höherer Version und ersetzen die Ubuntu-Pakete bei `apt install`/`apt upgrade` vollständig
  (wie Surys PPA). Pfade, Modul-API (`phpapi-20230831`) und Dienst (`php8.3-fpm`) sind identisch; bestehende Konfiguration
  unter `/etc/php/8.3/` bleibt erhalten (conffiles). Ubuntus Sicherheitsupdates für php8.3 greifen danach nicht mehr;
  Updates kommen nur noch aus diesem Repo (Rebuild bei neuem Upstream-Release).
- Rückweg zu Ubuntu-PHP: Repo-Zeile entfernen, dann z. B. `apt install php8.3-fpm=8.3.6-0ubuntu0.24.04.13 php8.3-cli=… php-common=2:93ubuntu2`
  (Downgrade; aktuelle Ubuntu-Version mit `apt policy php8.3-fpm` ermitteln).
- Soll Ubuntus php8.3 unangetastet bleiben, das Repo nur für php8.4 nutzen und php8.3 pinnen:
  `Package: php8.3-* php-common` / `Pin: release o=patchdeb` / `Pin-Priority: -1` in `/etc/apt/preferences.d/own-php`
  (php8.4 verlangt dann allerdings `php-common >= 2:95`, das Ubuntu nicht hat – php-common muss aus dem Repo kommen).
- Die systemd-Unit liegt in `/usr/lib/systemd/system/php8.3-fpm.service` (noble: usr-merge).
- Pakete und Bericht: `/opt/own-php/packages/noble/`, `/opt/own-php/BUILD-REPORT-noble.md`. Nur statisch geprüft,
  keine Laufzeittests.
- Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter noble 'Source (== php8.3)'`.

## PHP 8.4 für Ubuntu 24.04 (noble)

Suite `noble`: PHP 8.4 (`php8.4-*`, Version `8.4.27-1+ubuntu24.04.1+ownphp+1`, 42 Binärpakete) aus Surys Quellpaket
`php8.4 8.4.27-1+0~20261021.57+ubuntu22.04~1.gbp7636b9` (Upstream 8.4.27 vom 21.10.2026 mit dem PHP2Shell-Fix
CVE-2026-109618/109619; Tarball byteidentisch mit php.net, Signatur Calvin Buckley geprüft), alle acht PECL-Module
in-tree (apcu, redis, imagick, memcached, igbinary, gnupg, smbclient, xmlrpc), Argon2 über Ubuntus libargon2-1.
PHP 8.4 wird upstream aktiv gepflegt (Sicherheitsupdates bis 31.12.2028).

    echo "deb [signed-by=/usr/share/keyrings/patchdeb-archive-keyring.gpg] http://<mirror-host>/own-php noble main" \
      | sudo tee /etc/apt/sources.list.d/patchdeb.list
    sudo apt update && apt policy php8.4-fpm php-common
    sudo apt install php8.4-fpm php8.4-cli php8.4-common php8.4-opcache php8.4-readline php8.4-curl php8.4-gd \
      php8.4-mbstring php8.4-xml php8.4-zip php8.4-intl php8.4-bcmath php8.4-gmp php8.4-mysql php8.4-apcu \
      php8.4-redis php8.4-imagick

Hinweise:
- Ubuntu 24.04 liefert selbst PHP 8.3 (`php8.3-*`, php-common 2:93ubuntu2; aus diesem Repo ersetzbar durch php8.3 8.3.36, siehe oben). `php8.4-*` ist parallel installierbar
  (eigene Pfade `/etc/php/8.4/`, `/usr/lib/php/20240924/`, Dienst `php8.4-fpm`, Socket `/run/php/php8.4-fpm.sock`).
  Die php8.4-Pakete verlangen `php-common (>= 2:95~)`; dieses kommt als `php-common 2:101+ownphp+1` aus derselben
  Suite und ersetzt Ubuntus 2:93ubuntu2 (kompatibel mit Ubuntus php8.3-Paketen, wie bei Sury).
- In PHP 8.4 sind `imap` und `pspell` keine Kern-Erweiterungen mehr (nach PECL ausgelagert): es gibt kein
  `php8.4-imap` und kein `php8.4-pspell`. Nextcloud benötigt beides nicht.
- Nextcloud: PHP 8.4 wird ab Nextcloud 31 unterstützt (NC 30 nur bis PHP 8.3). ownCloud 10.x unterstützt PHP 8.4 nicht.
- Die systemd-Unit liegt in `/usr/lib/systemd/system/php8.4-fpm.service` (noble: usr-merge, wie bei Ubuntus php8.3-fpm).
- Pakete und Bericht: `/opt/own-php/packages/noble-php8.4/`, `/opt/own-php/BUILD-REPORT-noble-php8.4.md`;
  Verifikation der Quellen: `/opt/own-php/logs/gpg-verify-php8.4.txt`. Nur statisch geprüft, keine Laufzeittests.
- Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter noble 'Source (== php8.4)'`.

## PHP 8.4 für Ubuntu 22.04 (jammy)

Suite `jammy`: PHP 8.4 (`php8.4-*`, Version `8.4.27-1+ubuntu22.04.1+ownphp+1`, 42 Binärpakete, gebaut 24.10.2026) aus Surys
Quellpaket `php8.4 8.4.27-1+0~20261021.57+ubuntu22.04~1.gbp7636b9` (jammy-Variante; Upstream 8.4.27 vom 21.10.2026 mit dem
PHP2Shell-Fix CVE-2026-109618/109619; Tarball byteidentisch mit php.net, Signatur Calvin Buckley geprüft), dieselbe Paketierung
wie der noble-8.4-Build: alle acht PECL-Module in-tree (apcu, redis, imagick, memcached, igbinary, gnupg, smbclient, xmlrpc),
Argon2 (argon2i/argon2id) über Ubuntus libargon2-1 0~20171227-0.3, OpenSSL 3.0.2, ICU 70.1, PCRE2 und libgd aus jammy.
PHP 8.4 wird upstream aktiv gepflegt (Sicherheitsupdates bis 31.12.2028).

    echo "deb [signed-by=/usr/share/keyrings/patchdeb-archive-keyring.gpg] http://<mirror-host>/own-php jammy main" \
      | sudo tee /etc/apt/sources.list.d/patchdeb.list
    sudo apt update && apt policy php8.4-fpm php-common
    sudo apt install php8.4-fpm php8.4-cli php8.4-common php8.4-opcache php8.4-readline php8.4-curl php8.4-gd \
      php8.4-mbstring php8.4-xml php8.4-zip php8.4-intl php8.4-bcmath php8.4-gmp php8.4-mysql php8.4-apcu \
      php8.4-redis php8.4-imagick

Hinweise:
- Ubuntu 22.04 liefert selbst PHP 8.1 (`php8.1-*`, php-common 2:92ubuntu1). `php8.4-*` ist parallel installierbar
  (eigene Pfade `/etc/php/8.4/`, `/usr/lib/php/20240924/`, Dienst `php8.4-fpm`, Socket `/run/php/php8.4-fpm.sock`).
  Die php8.4-Pakete verlangen `php-common (>= 2:95~)`; dieses kommt als `php-common 2:101+ownphp+1` aus derselben
  Suite und ersetzt Ubuntus 2:92ubuntu1 (kompatibel mit Ubuntus php8.1-Paketen, wie bei Sury). Wer in derselben Suite
  schon php8.3/php8.1/php8.0 aus diesem Repo nutzt, hat dieses php-common bereits.
- In PHP 8.4 sind `imap` und `pspell` keine Kern-Erweiterungen mehr (nach PECL ausgelagert): es gibt kein
  `php8.4-imap` und kein `php8.4-pspell`. Nextcloud benötigt beides nicht.
- Nextcloud: PHP 8.4 wird ab Nextcloud 31 unterstützt (NC 30 nur bis PHP 8.3). ownCloud 10.x unterstützt PHP 8.4 nicht.
- Die systemd-Unit liegt in `/lib/systemd/system/php8.4-fpm.service` (jammy, wie bei php8.3-fpm/php8.1-fpm).
- Pakete und Bericht: `/opt/own-php/packages/jammy-php8.4/`, `/opt/own-php/BUILD-REPORT-jammy-php8.4.md`;
  Verifikation der Quellen: `/opt/own-php/logs/gpg-verify-php8.4.txt`. Laufzeittest in einer gelöschten Wegwerf-Kopie
  des jammy-Chroots bestanden (`logs/runtime-test-jammy-php8.4.log`: FUNC_FAILS=0, argon2id/argon2i OK, Multipart-Limit greift).
- Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter jammy 'Source (== php8.4)'`.

## PHP 8.1 für Ubuntu 22.04 (jammy) – aus php-src-Git

In der Suite `jammy` liegt zusätzlich PHP 8.1 (`php8.1-*`, Version `8.1.34+git20261018.1d7dec17-9+ubuntu22.04.1+ownphp+1`):
derselbe php-src-Snapshot (Branch `PHP-8.1-CVE-2026-109618-109619`, PHP2Shell-Fix), Paketierung aus Sury 8.1.34-9 ohne
Patch 0083, alle acht PECL-Module, Argon2 über Ubuntus libargon2-1. **PHP 8.1 ist upstream EOL (31.12.2025).**
Pakete und Bericht: `/opt/own-php/packages/jammy-php8.1-phpsrc/`, `/opt/own-php/BUILD-REPORT-jammy-php8.1-phpsrc.md`.
Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter jammy 'Source (== php8.1)'`.

## PHP 8.0 für Ubuntu 22.04 (jammy) – aus php-src-Git

Ebenso in der Suite `jammy`: PHP 8.0 (`php8.0-*`, Version `1:8.0.30+git20261018.82f8f31b-25+ubuntu22.04.1+ownphp+1`),
derselbe php-src-Snapshot (Branch `PHP-8.0-CVE-2026-109618-109619`, PHP2Shell-Fix), Paketierung aus Sury 1:8.0.30-25
ohne Patch 0137, alle acht PECL-Module, Argon2 über Ubuntus libargon2-1. **PHP 8.0 ist upstream EOL (26.11.2023).**
Pakete und Bericht: `/opt/own-php/packages/jammy-php8.0-phpsrc/`, `/opt/own-php/BUILD-REPORT-jammy-php8.0-phpsrc.md`.
Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter jammy 'Source (== php8.0)'`.

## PHP 8.0 für Ubuntu 20.04 (focal) – aus php-src-Git

Ebenso in der Suite `focal`: PHP 8.0 (`php8.0-*`, Version `1:8.0.30+git20261018.82f8f31b-25+ubuntu20.04.1+ownphp+1`),
derselbe php-src-Snapshot wie für bionic (Branch `PHP-8.0-CVE-2026-109618-109619`, Commit 82f8f31b16, PHP2Shell-Fix),
Paketierung aus Sury 1:8.0.30-25 ohne dessen Patch 0137, alle acht PECL-Module. **PHP 8.0 ist upstream EOL (26.11.2023).**
Pakete und Bericht: `/opt/own-php/packages/focal-php8.0-phpsrc/`, `/opt/own-php/BUILD-REPORT-focal-php8.0-phpsrc.md`.
Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter focal 'Source (== php8.0)'`.

## PHP 7.4 für Ubuntu 20.04 (focal) – aus php-src-Git

Auf Wunsch des Betreibers (24.10.2026) zusätzlich für Ubuntu 20.04 gebaut, aus demselben php-src-Branch `PHP-7.4-CVE-2026-109618-109619`
(Commit 712e60f9ed, Fix für CVE-2026-109618/109619 „PHP2Shell“) und derselben Sury-Paketierung 1:7.4.33-31 (ohne dessen inhaltsgleichen
Patch 0164) wie die bionic-/xenial-/buster-7.4-Builds: Version `1:7.4.33+git20261018.712e60f9-31+ubuntu20.04.1+ownphp+1` (Pakete `php7.4-*`,
Suite `focal`, 46 Binärpakete; `php7.4-xmlrpc` Kern-Erweiterung mit Epoch 1, `php7.4-json` eigenes Paket), Argon2 (argon2i/argon2id) über
focals libargon2-1, `max_multipart_body_parts` enthalten. **PHP 7.4 ist seit 28.11.2022 upstream End-of-Life.**

    sudo apt update && apt policy php7.4-fpm
    sudo apt install php7.4-fpm php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-curl php7.4-gd \
      php7.4-mbstring php7.4-xml php7.4-zip php7.4-intl php7.4-bcmath php7.4-gmp php7.4-mysql php7.4-apcu php7.4-redis php7.4-imagick

Hinweise:
- Ubuntu 20.04 liefert selbst PHP 7.4 (`7.4.3-4ubuntu2.29` vom 25.03.2025, letzter Stand vor Ubuntu-Pro/ESM; ohne den Fix für CVE-2026-109618/109619). Die eigenen Pakete haben dieselben Paketnamen und
  per Epoch `1:` die höhere Version; `apt install`/`apt upgrade` ersetzt Ubuntus php7.4-Pakete (vorher `apt policy php7.4-fpm` prüfen,
  Pinning siehe oben). Ubuntus `php-apcu`/`php-redis`/`php-imagick` ggf. vorher entfernen (Konflikt mit `php7.4-apcu` usw.).
- Parallel zu php8.3/php8.1/php8.0 aus diesem Repo installierbar (`/etc/php/7.4/`, `/usr/lib/php/20190902/`, Dienst `php7.4-fpm`).
- Zielanwendungen: ownCloud 10.x (PHP 7.4), Nextcloud bis 25.
- Pakete und Bericht: `/opt/own-php/packages/focal-php7.4-phpsrc/`, `/opt/own-php/BUILD-REPORT-focal-php7.4-phpsrc.md`.
  Statisch geprüft; zusätzlich Laufzeittest in einer gelöschten Wegwerf-Kopie (Installation aus dem Repo, php -v/-m, php-fpm -t,
  Funktionstests inkl. Argon2, Multipart-Upload und -Limit; Bericht Abschnitt 11).
- Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter focal 'Source (== php7.4)'`.

## PHP 7.3 für Ubuntu 18.04 (bionic)

Auf Wunsch des Betreibers gebaut: Version `7.3.33-35+ubuntu18.04.1+ownphp+2` (Pakete `php7.3-*`, Suite `bionic`).
Revision +2 (23.10.2026): die sieben PECL-Modulpakete (apcu, redis, imagick, memcached, igbinary, gnupg, smbclient) tragen
Epoch 1 (`1:7.3.33-35+ubuntu18.04.1+ownphp+2`), damit sie vorher installierte Sury-/Freexian-Module `1:x.y.z` ablösen;
Kernpakete ohne Epoch, Inhalt sonst wie +1.
Grundlage ist Surys Paketierung `php7.3 7.3.33-35` vom 21.10.2026 (Tarball 7.3.33 byteidentisch mit php.net, Signatur
Christoph M. Becker geprüft), deren Patch 0139 „Avoid state corruption via bailout“ den PHP2Shell-Fix
(CVE-2026-109618/109619) aus PHP 8.2.35 zurückportiert – einen php-src-Branch mit dem Fix gibt es für 7.3 nicht.
Modulumfang wie php7.4 inkl. der sieben PECL-Module (phpredis **5.3.7** statt 6.3.0, das PHP ≥ 7.4 verlangt; `php7.3-xmlrpc`
und `php7.3-json` sind Kern-Pakete), Argon2 (argon2i/argon2id) gegen Bionics libargon2.
**PHP 7.3 ist seit 06.12.2021 upstream End-of-Life**; weitere Sicherheitskorrekturen kommen nur über Surys Backports.
Pakete und Bericht: `/opt/own-php/packages/bionic-php7.3/`, `/opt/own-php/BUILD-REPORT-bionic-php7.3.md`. Statisch geprüft; zusätzlich
Laufzeittest in einer gelöschten Wegwerf-Kopie (Installation aus dem Repo, php -v/-m, php-fpm -t, Funktionstests inkl. Argon2,
Multipart-Upload; Bericht Abschnitt 11). `php7.3 -v` meldet `7.3.33-35+ubuntu18.04.1+ownphp+2` (Debian-Revision in PHP_VERSION,
wie bei allen Debian-/Sury-7.3-Paketen; PHP_VERSION_ID = 70333).
Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter bionic 'Source (== php7.3)'`.

    apt policy php7.3-fpm
    sudo apt install php7.3-fpm php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline php7.3-curl php7.3-gd \
      php7.3-mbstring php7.3-xml php7.3-zip php7.3-intl php7.3-bcmath php7.3-gmp php7.3-mysql php7.3-apcu php7.3-redis php7.3-imagick

## PHP 7.2 für Ubuntu 18.04 (bionic)

Auf Wunsch des Betreibers gebaut: Version `7.2.34-66+ubuntu18.04.1+ownphp+1` (Pakete `php7.2-*`, Suite `bionic`).
Grundlage ist Surys Paketierung `php7.2 7.2.34-66` vom 21.10.2026 (Tarball 7.2.34 byteidentisch mit php.net, Signatur
Remi Collet geprüft), deren Patch 0159 „Avoid state corruption via bailout“ den PHP2Shell-Fix
(CVE-2026-109618/109619) aus PHP 8.2.35 zurückportiert – einen php-src-Branch mit dem Fix gibt es für 7.2 nicht.
Modulumfang wie php7.3 inkl. der sieben PECL-Module (phpredis **5.3.7**; `php7.2-xmlrpc` und `php7.2-json` sind Kern-Pakete).
Die sieben PECL-Modulpakete tragen von Anfang an Epoch 1 (`1:7.2.34-66+ubuntu18.04.1+ownphp+1`), damit sie vorher
installierte Sury-/Freexian-Module `1:x.y.z` ablösen; Kernpakete ohne Epoch.
**Argon2 nur argon2i** (argon2id gibt es erst ab PHP 7.3; argon2id-Hashes aus neueren PHP-Versionen kann 7.2 nicht prüfen)
gegen Bionics libargon2-0. PCRE 8.39 aus dem System (libpcre3).
**PHP 7.2 ist seit 30.11.2020 upstream End-of-Life**; weitere Sicherheitskorrekturen kommen nur über Surys Backports.
Pakete und Bericht: `/opt/own-php/packages/bionic-php7.2/`, `/opt/own-php/BUILD-REPORT-bionic-php7.2.md`. Statisch geprüft; zusätzlich
Laufzeittest in einer gelöschten Wegwerf-Kopie (Installation aus dem Repo, php -v/-m, php-fpm -t, Funktionstests inkl. Argon2i,
Multipart-Upload; Bericht Abschnitt 11). `php7.2 -v` meldet `7.2.34-66+ubuntu18.04.1+ownphp+1` (Debian-Revision in PHP_VERSION,
wie bei allen Debian-/Sury-7.2-Paketen; PHP_VERSION_ID = 70234).
Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter bionic 'Source (== php7.2)'`.

    apt policy php7.2-fpm
    sudo apt install php7.2-fpm php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-curl php7.2-gd \
      php7.2-mbstring php7.2-xml php7.2-zip php7.2-intl php7.2-bcmath php7.2-gmp php7.2-mysql php7.2-apcu php7.2-redis php7.2-imagick

## PHP 7.4 für Ubuntu 18.04 (bionic)

Ebenfalls auf Wunsch des Betreibers: PHP 7.4 (`php7.4-*`, Version `1:7.4.33-30+ubuntu18.04.1+ownphp+1`;
das Epoch `1:` stammt vom Sury-Quellpaket und bleibt erhalten, damit apt von Sury-/Freexian-7.4-Paketen
sauber upgradet). Modulumfang wie php8.3 inkl. apcu/redis/imagick/memcached/igbinary/gnupg/smbclient;
`php7.4-xmlrpc` und `php7.4-json` sind in 7.4 Kern-Erweiterungen aus der Sury-Paketierung (kein Epoch 3).
Grundlage: `php7.4 1:7.4.33-30+ubuntu22.04.1+deb.sury.org+1` (jammy-Pool) mit seit 2022 zurückportierten
Sicherheitskorrekturen (Paketierung -31 vom 21.10.2026; Repo-Stand ist der php-src-Git-Build, siehe unten). **PHP 7.4 ist seit 28.11.2022 upstream End-of-Life.** Parallel zu 8.1/8.3
installierbar (`/etc/php/7.4`, `php-fpm7.4`). Pakete und Bericht: `/opt/own-php/packages/bionic-php7.4/`,
`/opt/own-php/BUILD-REPORT-bionic-php7.4.md`.

    apt policy php7.4-fpm
    sudo apt install php7.4-fpm php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline \
      php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-zip php7.4-intl php7.4-bcmath \
      php7.4-gmp php7.4-bz2 php7.4-mysql php7.4-pgsql php7.4-sqlite3 php7.4-ldap php7.4-imap \
      php7.4-apcu php7.4-redis php7.4-imagick

Nur statisch geprüft (keine Installation, keine Laufzeittests). Entfernen:
`reprepro -b /opt/own-php/MIRROR removefilter bionic 'Source (== php7.4)'`.

**Aktueller Stand in der Suite (22.10.2026):** `1:7.4.33+git20261018.712e60f9-31+ubuntu18.04.1+ownphp+1` –
auf Wunsch des Betreibers aus dem php-src-Git-Branch `PHP-7.4-CVE-2026-109618-109619` (Commit 712e60f9ed,
Fix für CVE-2026-109618/109619 „state corruption via bailout“, Commit-Signatur geprüft) gebaut. Der PHP-Code
stammt aus dem Git-Snapshot, die Paketierung (`debian/`) aus Sury 1:7.4.33-31 ohne dessen inhaltsgleichen
Patch 0164; die Versionsstrings im Baum wurden auf 7.4.33 gesetzt (`php -v` meldet 7.4.33). Pakete:
`/opt/own-php/packages/bionic-php7.4-phpsrc/`, Bericht `BUILD-REPORT-bionic-php7.4-phpsrc.md`. Der ältere
Tarball-Build `1:7.4.33-30+…` liegt weiter unter `packages/bionic-php7.4/`, ist aber nicht mehr im Repo.

## PHP 8.0 für Ubuntu 18.04 (bionic) – aus php-src-Git

Auf Wunsch des Betreibers aus dem php-src-Branch `PHP-8.0-CVE-2026-109618-109619` (Commit 82f8f31b16,
Fix für CVE-2026-109618/109619 „PHP2Shell“, Commit-Signatur geprüft) gebaut: Version
`1:8.0.30+git20261018.82f8f31b-25+ubuntu18.04.1+ownphp+1` (Pakete `php8.0-*`, Suite `bionic`). PHP-Code aus
dem Git-Snapshot (8.0.30 + Commit), Paketierung (`debian/`) aus Sury 1:8.0.30-25 ohne dessen inhaltsgleichen
Patch 0137; Modulumfang wie php8.3 inkl. der acht PECL-Module (`php8.0-xmlrpc` mit Epoch 3).
**PHP 8.0 ist seit 26.11.2023 upstream End-of-Life.** Pakete und Bericht: `/opt/own-php/packages/bionic-php8.0-phpsrc/`,
`/opt/own-php/BUILD-REPORT-bionic-php8.0-phpsrc.md`. Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter bionic 'Source (== php8.0)'`.

    apt policy php8.0-fpm

## PHP 8.3 für Debian 10 (buster)

Suite `buster`: PHP 8.3 (`php8.3-*`, Version `8.3.36-1+debian10.1+ownphp+2`, 44 Binärpakete) aus derselben Quelle und
mit derselben Paketierung wie die php8.3-Builds für jammy/focal/bionic (Sury `php8.3 8.3.36-1+ubuntu22.04.1+deb.sury.org+1`,
alle acht PECL-Module in-tree, Argon2 über Debians libargon2-1), gebaut im buster-Chroot aus archive.debian.org.

    echo "deb [signed-by=/usr/share/keyrings/patchdeb-archive-keyring.gpg] http://<mirror-host>/own-php buster main" \
      | sudo tee /etc/apt/sources.list.d/patchdeb.list
    sudo apt update && apt policy php8.3-fpm php-common      # Kandidat muss ...+ownphp+2 sein
    sudo apt install php8.3-fpm php8.3-cli php8.3-common php8.3-opcache php8.3-readline php8.3-curl php8.3-gd \
      php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl php8.3-bcmath php8.3-gmp php8.3-mysql php8.3-apcu \
      php8.3-redis php8.3-imagick

Hinweise:
- Debian 10 liefert selbst PHP 7.3 (`php7.3-*`, php-common 2:69); php8.3 und php8.0 aus diesem Repo sind parallel dazu
  installierbar (eigene Pfade `/etc/php/8.3/`, `/usr/lib/php/20230831/`, Dienst `php8.3-fpm`). Debians `php-common 2:69`
  erfüllt die Abhängigkeit bereits (Epoch 2); `php-common 2:101+ownphp+1` kommt mit `apt upgrade`.
- Wer bisher Surys deb.sury.org-Pakete für buster nutzte (dort 2024 eingestellt): deren Versionen `…+0~<datum>+debian10~1.gbp…`
  sind niedriger als `…+debian10.1+ownphp+2`, apt wechselt also auf die eigenen Pakete.
- Nextcloud 28–31 unterstützen PHP 8.3; ownCloud 10.x nicht. Debian 10 selbst ist seit 30.06.2024 ohne LTS-Sicherheitsupdates.
- Pakete und Bericht: `/opt/own-php/packages/buster/`, `/opt/own-php/BUILD-REPORT-buster.md`. Statisch geprüft; zusätzlich Laufzeittest in einer
  gelöschten Wegwerf-Kopie des buster-Chroots (Installation aus dem Repo, php -v/-m, php-fpm -t, Funktionstests inkl. Argon2,
  Multipart-Upload; Bericht Abschnitt 11).
- Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter buster 'Source (== php8.3)'`.

## PHP 8.0 für Debian 10 (buster) – aus php-src-Git

Auf Wunsch des Betreibers zusätzlich für Debian 10 gebaut, aus demselben php-src-Branch `PHP-8.0-CVE-2026-109618-109619`
(Commit 82f8f31b16, Fix für CVE-2026-109618/109619 „PHP2Shell“) und derselben Sury-Paketierung 1:8.0.30-25 wie die
Ubuntu-8.0-Builds: Version `1:8.0.30+git20261018.82f8f31b-25+debian10.1+patchdeb+1` (Pakete `php8.0-*`, Suite `buster`,
45 Binärpakete inkl. der acht PECL-Module, `php8.0-xmlrpc` mit Epoch 3; Neubau 26.10.2026 mit Suffix +patchdeb+1, ersetzt +ownphp+1 bei gleichem Quellstand), dazu `php-common 2:101+patchdeb+1`.
**PHP 8.0 ist seit 26.11.2023 upstream End-of-Life; Debian 10 ist seit 30.06.2024 ohne LTS-Sicherheitsupdates**
(nur noch Freexian ELTS). Build-Chroot aus archive.debian.org (buster 10.13 + buster/updates, Release-Signaturen mit den
Debian-10-Schlüsseln von ftp-master.debian.org geprüft; Keyring `src/debian-buster-archive-keyring.gpg`).

    echo "deb [signed-by=/usr/share/keyrings/patchdeb-archive-keyring.gpg] http://<mirror-host>/own-php buster main" \
      | sudo tee /etc/apt/sources.list.d/patchdeb.list
    sudo apt update && apt policy php8.0-fpm php-common
    sudo apt install php8.0-fpm php8.0-cli php8.0-common php8.0-opcache php8.0-readline php8.0-curl php8.0-gd \
      php8.0-mbstring php8.0-xml php8.0-zip php8.0-intl php8.0-bcmath php8.0-gmp php8.0-mysql php8.0-apcu \
      php8.0-redis php8.0-imagick

Hinweise:
- Debian 10 liefert selbst PHP 7.3 (`php7.3-*`, php-common 2:69). `php8.0-*` ist parallel installierbar
  (eigene Pfade `/etc/php/8.0/`, `/usr/lib/php/20200930/`, Dienst `php8.0-fpm`); `php-common 2:101+patchdeb+1`
  ersetzt Debians 2:69 (kompatibel mit php7.3, wie bei Sury).
- Wer bisher Surys deb.sury.org-Pakete für buster nutzt (Sury hat buster 2024 eingestellt): Versionsvergleich beachten,
  Surys letzte buster-Builds heißen `…+0~<datum>+debian10~1.gbp…`; das eigene Suffix `-25+debian10.1+patchdeb+1` ist höher.
- Nextcloud: PHP 8.0 wird von Nextcloud 26–28 unterstützt (NC 25: 7.4–8.1); ownCloud 10.x unterstützt PHP 8.0 nicht.
- Pakete und Bericht: `/opt/patchdeb/packages/buster-php8.0-phpsrc/`, `/opt/patchdeb/BUILD-REPORT-buster-php8.0-phpsrc.md`.
  Statisch geprüft; zusätzlich Laufzeittest in einer gelöschten Wegwerf-Kopie des buster-Chroots (Installation aus dem Repo,
  php -v/-m, php-fpm -t, Funktionstests inkl. Argon2, Multipart-Upload; Bericht Abschnitt 11). Hinweis: Debians eigenes
  `php-common 2:69` erfüllt die Abhängigkeit der php8.0-Pakete bereits (Epoch 2 > 1:81); `php-common 2:101+patchdeb+1` kommt erst mit `apt upgrade`.
- Entfernen: `reprepro -b /opt/patchdeb/MIRROR removefilter buster 'Source (== php8.0)'`.

## PHP 7.3 für Debian 10 (buster)

Auf Wunsch des Betreibers (26.10.2026) für Debian 10 gebaut, aus derselben Sury-Paketierung `7.3.33-35+0~20261021.144+ubuntu22.04~1.gbpecf76f`
wie die bionic-/xenial-7.3-Builds: Version `7.3.33-35+debian10.1+patchdeb+1` (Pakete `php7.3-*`, Suite `buster`, 47 Binärpakete inkl. der
acht PECL-Module mit Epoch 1, `php7.3-xmlrpc` als Kernmodul), dazu `php-common 2:101+patchdeb+1`. Enthält die PHP2Shell-Fixes
CVE-2026-109618/109619 (Surys Backport „Avoid state corruption via bailout“ aus 8.2.35, Patch 0139) sowie die weiteren Sury-Backports bis -35.
**PHP 7.3 ist seit 06.12.2021 upstream End-of-Life; Debian 10 ist seit 30.06.2024 ohne LTS-Sicherheitsupdates.** Argon2 (argon2i/argon2id)
gegen Debians libargon2-1 0~20171227.

**Ersetzt Debians eigenes PHP 7.3** (`php7.3-*` 7.3.31-1~deb10u…, gleiche Paketnamen, keine Epoch): `apt upgrade` zieht die
patchdeb-Pakete, weil 7.3.33-35+debian10.1+patchdeb+1 höher ist. Vorher `apt policy php7.3-cli` prüfen; Konfiguration unter
`/etc/php/7.3/` bleibt erhalten (conffiles/ucf), Dienst `php7.3-fpm` wird beim Upgrade neu gestartet.

    sudo apt update && apt policy php7.3-fpm php-common
    sudo apt install php7.3-fpm php7.3-cli php7.3-common php7.3-opcache php7.3-readline php7.3-json php7.3-curl php7.3-gd \
      php7.3-mbstring php7.3-xml php7.3-zip php7.3-intl php7.3-bcmath php7.3-gmp php7.3-mysql php7.3-apcu \
      php7.3-redis php7.3-imagick

Hinweise:
- Debians eigene PECL-Pakete `php-apcu`, `php-redis`, `php-imagick`, `php-memcached`, `php-igbinary` (buster, für denselben
  API-Pfad `/usr/lib/php/20180731/`) **vorher entfernen**: `php7.3-apcu` usw. (Epoch 1, `Provides: php-apcu` …) liefern dieselben
  `.so`-Dateien, deklarieren aber kein Conflicts/Replaces gegen Debians Pakete; bei gleichzeitiger Installation meldet dpkg einen Dateikonflikt.
- Pakete und Bericht: `/opt/patchdeb/packages/buster-php7.3/`, `/opt/patchdeb/BUILD-REPORT-buster-php7.3.md`. Statisch geprüft; zusätzlich
  Laufzeittest in einer gelöschten Wegwerf-Kopie des buster-Chroots (Installation aus dem Repo, php -v/-m, php-fpm -t, Funktionstests
  inkl. Argon2, Multipart-Upload und max_multipart_body_parts-Limit; Bericht Abschnitt 11, FUNC_FAILS=0).
- Entfernen: `reprepro -b /opt/patchdeb/MIRROR removefilter buster 'Source (== php7.3)'`.

## PHP 7.2 für Debian 10 (buster)

Auf Wunsch des Betreibers (26.10.2026) für Debian 10 gebaut, aus derselben Sury-Paketierung `7.2.34-66+0~20261021.122+ubuntu22.04~1.gbpe0bcd4`
wie die bionic-/xenial-7.2-Builds: Version `7.2.34-66+debian10.1+patchdeb+1` (Pakete `php7.2-*`, Suite `buster`, 47 Binärpakete inkl. der
acht PECL-Module mit Epoch 1, `php7.2-xmlrpc` als Kernmodul), dazu `php-common 2:101+patchdeb+1`. Enthält die PHP2Shell-Fixes
CVE-2026-109618/109619 (Surys Backport „Avoid state corruption via bailout“ aus 8.2.35, Patch 0159) sowie die weiteren Sury-Backports bis -66.
**PHP 7.2 ist seit 30.11.2020 upstream End-of-Life; Debian 10 ist seit 30.06.2024 ohne LTS-Sicherheitsupdates.** Argon2 (argon2i; argon2id
gibt es erst ab PHP 7.3) gegen Debians libargon2-1 0~20171227.

    sudo apt update && apt policy php7.2-fpm php-common
    sudo apt install php7.2-fpm php7.2-cli php7.2-common php7.2-opcache php7.2-readline php7.2-json php7.2-curl php7.2-gd \
      php7.2-mbstring php7.2-xml php7.2-zip php7.2-intl php7.2-bcmath php7.2-gmp php7.2-mysql php7.2-apcu \
      php7.2-redis php7.2-imagick

Hinweise:
- Parallel zu Debians eigenem PHP 7.3 installierbar (eigene Pfade `/etc/php/7.2/`, `/usr/lib/php/20170718/`, Dienst `php7.2-fpm`).
- Pakete und Bericht: `/opt/patchdeb/packages/buster-php7.2/`, `/opt/patchdeb/BUILD-REPORT-buster-php7.2.md`. Statisch geprüft; zusätzlich
  Laufzeittest in einer gelöschten Wegwerf-Kopie des buster-Chroots (Installation aus dem Repo, php -v/-m, php-fpm -t, Funktionstests
  inkl. Argon2, Multipart-Upload und max_multipart_body_parts-Limit; Bericht Abschnitt 11, FUNC_FAILS=0).
- Entfernen: `reprepro -b /opt/patchdeb/MIRROR removefilter buster 'Source (== php7.2)'`.

## PHP 7.4 für Debian 10 (buster) – aus php-src-Git

Auf Wunsch des Betreibers zusätzlich für Debian 10 gebaut, aus demselben php-src-Branch `PHP-7.4-CVE-2026-109618-109619`
(Commit 712e60f9ed, Fix für CVE-2026-109618/109619 „PHP2Shell“) und derselben Sury-Paketierung 1:7.4.33-31 wie die
bionic-/xenial-7.4-Builds: Version `1:7.4.33+git20261018.712e60f9-31+debian10.1+patchdeb+1` (Pakete `php7.4-*`, Suite `buster`,
46 Binärpakete; `php7.4-xmlrpc` ist in 7.4 Kern-Erweiterung mit Epoch 1, `php7.4-json` eigenes Paket), Argon2 über Debians libargon2-1.
**PHP 7.4 ist seit 28.11.2022 upstream End-of-Life; Debian 10 ist seit 30.06.2024 ohne LTS-Sicherheitsupdates.**

    sudo apt update && apt policy php7.4-fpm
    sudo apt install php7.4-fpm php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-curl php7.4-gd \
      php7.4-mbstring php7.4-xml php7.4-zip php7.4-intl php7.4-bcmath php7.4-gmp php7.4-mysql php7.4-apcu php7.4-redis php7.4-imagick

Hinweise:
- Parallel zu Debians PHP 7.3 und zu php8.0/php8.3 aus diesem Repo installierbar (`/etc/php/7.4/`, `/usr/lib/php/20190902/`, Dienst `php7.4-fpm`).
- Zielanwendungen: ownCloud 10.x (PHP 7.4), Nextcloud bis 25.
- Pakete und Bericht: `/opt/patchdeb/packages/buster-php7.4-phpsrc/`, `/opt/patchdeb/BUILD-REPORT-buster-php7.4-phpsrc.md`.
  Statisch geprüft; zusätzlich Laufzeittest in einer gelöschten Wegwerf-Kopie (Installation aus dem Repo, php -v/-m, php-fpm -t,
  Funktionstests inkl. Argon2, Multipart-Upload und max_multipart_body_parts-Limit; Bericht Abschnitt 11, FUNC_FAILS=0). Neubau 26.10.2026 mit Suffix +patchdeb+1 (ersetzt +ownphp+1, gleicher Quellstand).
- Entfernen: `reprepro -b /opt/patchdeb/MIRROR removefilter buster 'Source (== php7.4)'`.

## Ubuntu 16.04 (xenial) – nur Machbarkeitsbuild

Xenial ist EOL (keine Updates seit 2021, ESM bis April 2026). Die Pakete in Suite `xenial` sind gegen
OpenSSL 1.0.2g, ICU 55, libzip 1.0.1 und libsodium 1.0.8 gelinkt, die keine Sicherheitsupdates mehr
erhalten. Abweichungen: kein `php8.3-tidy`, kein Argon2-Passwort-Hashing, `php8.3-redis` ohne zstd,
gebündeltes PCRE2, keine dbgsym-Pakete. Details: `/opt/own-php/BUILD-REPORT-xenial.md`.
Zusätzlich liegt in `xenial` auf Wunsch des Betreibers PHP 7.4 aus dem php-src-Branch `PHP-7.4-CVE-2026-109618-109619`
(`php7.4-*`, Version `1:7.4.33+git20261018.712e60f9-31+ubuntu16.04.1+ownphp+1`, PHP2Shell-Fix; ohne php7.4-tidy, ohne Argon2,
redis ohne zstd, gebündeltes PCRE2, keine dbgsym; Bericht `/opt/own-php/BUILD-REPORT-xenial-php7.4-phpsrc.md`).
Ebenso PHP 8.0 aus dem Branch `PHP-8.0-CVE-2026-109618-109619` (`php8.0-*`, Version
`1:8.0.30+git20261018.82f8f31b-25+ubuntu16.04.1+ownphp+1`, gleiche Einschränkungen; Bericht `/opt/own-php/BUILD-REPORT-xenial-php8.0-phpsrc.md`).
Ebenso PHP 8.1 aus dem Branch `PHP-8.1-CVE-2026-109618-109619` (`php8.1-*`, Version
`8.1.34+git20261018.1d7dec17-9+ubuntu16.04.1+ownphp+3`, gleiche Einschränkungen; Bericht `/opt/own-php/BUILD-REPORT-xenial-php8.1-phpsrc.md`;
seit +3 (23.10.2026) tragen die sieben PECL-Modulpakete Epoch 1, `1:8.1.34+git…+ownphp+3`, damit sie vorher installierte
Freexian-/Sury-Module `1:x.y.z` ablösen; Laufzeittest in Wegwerf-Kopie OK).
**Argon2 auf Xenial (seit 22.10.2026):** Freexians php8.3 für Xenial war mit Argon2 gebaut; Nextcloud speichert
Passwörter als `argon2id`. Die ersten own-php-Xenial-Builds hatten kein Argon2 (Xenial hat kein libargon2) → Login
schlug nach dem Umstieg fehl. Deshalb liegt jetzt ein eigenes `libargon2-1`/`libargon2-dev` (Rebuild von Ubuntu
argon2 0~20171227-0.2, `packages/xenial-argon2/`, binärkompatibel mit Freexians libargon2-1) in der Suite `xenial`,
und **php8.3 8.3.36-1+ubuntu16.04.1+ownphp+4** ist damit gebaut (`PASSWORD_ARGON2ID` verfügbar, Laufzeittest OK;
+4 vom 23.10.2026: die sieben PECL-Modulpakete tragen Epoch 1, `1:8.3.36-1+ubuntu16.04.1+ownphp+4`, damit sie vorher
installierte Freexian-/Sury-Module `1:x.y.z` ablösen; Kernpakete ohne Epoch).
Die Git-Builds php7.4/8.1/8.0 für Xenial wurden ebenfalls mit Argon2 neu gebaut (jeweils `…+ownphp+2`; php8.1 inzwischen `+3`, siehe oben).

PHP 7.3 für Xenial (23.10.2026, auf Wunsch): `php7.3-*` Version `7.3.33-35+ubuntu16.04.1+ownphp+2` aus Surys Paketierung
7.3.33-35 mit dem PHP2Shell-Patch 0139 (siehe Abschnitt „PHP 7.3 für Ubuntu 18.04“), **mit Argon2** (eigenes libargon2),
ohne php7.3-tidy, redis 5.3.7 ohne zstd, gebündeltes PCRE2 (Xenials libpcre2 10.21 ist für PHP 7.3 zu alt), keine dbgsym.
Revision +2: die sieben PECL-Modulpakete (apcu, redis, imagick, memcached, igbinary, gnupg, smbclient) tragen **Epoch 1**
(`1:7.3.33-35+ubuntu16.04.1+ownphp+2`), damit sie Freexians Modulpakete `1:x.y.z` (z. B. php7.3-redis 1:6.0.2) ablösen –
ohne Epoch bliebe Freexians Modul installiert. Nur xenial/php7.3; Abhängigkeiten auf php7.3-common unverändert.
Bericht `/opt/own-php/BUILD-REPORT-xenial-php7.3.md`, Pakete `/opt/own-php/packages/xenial-php7.3/`.
Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter xenial 'Source (== php7.3)'`.

PHP 7.2 für Xenial (23.10.2026, auf Wunsch): `php7.2-*` Version `7.2.34-66+ubuntu16.04.1+ownphp+2` aus Surys Paketierung
7.2.34-66 vom 21.10.2026 (PHP2Shell-Fix als Patch 0159 aus 8.2.35; Tarball php.net-identisch, Signatur Remi Collet geprüft),
**Argon2 nur argon2i** (argon2id gibt es erst ab PHP 7.3 – mit neueren PHP-Versionen erzeugte argon2id-Hashes kann 7.2 nicht
prüfen), phpredis 5.3.7, kein php7.2-tidy, redis ohne zstd, keine dbgsym; PCRE 8.x aus dem System (kein PCRE2 in 7.2).
**PHP 7.2 ist seit 30.11.2020 upstream End-of-Life.** Revision +2: die sieben PECL-Modulpakete tragen **Epoch 1**
(`1:7.2.34-66+ubuntu16.04.1+ownphp+2`), damit sie Freexians Modulpakete `1:x.y.z` ablösen (wie bei php7.3). Bericht `/opt/own-php/BUILD-REPORT-xenial-php7.2.md`,
Pakete `/opt/own-php/packages/xenial-php7.2/`. Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter xenial 'Source (== php7.2)'`.

PHP 7.0 für Xenial (24.10.2026, auf Wunsch): `php7.0-*` Version `7.0.33-93+ubuntu16.04.1+ownphp+1` (47 Pakete) aus Surys
Paketierung 7.0.33-93 vom 22.10.2026 (PHP2Shell-Fix als Patch 0230 „Avoid state corruption via bailout“ aus 8.2.35 plus
Patch 0232 `max_multipart_body_parts`; Tarball 7.0.33 php.net-identisch, Signatur Anatol Belski geprüft, Sury-Kette
InRelease→Sources geprüft: `logs/gpg-verify-php7.0.txt`). **Argon2 (argon2i und argon2id) als eigene Rückportierung aus
PHP 7.3** – PHP 7.0 hat upstream gar keine Argon2-Unterstützung; Patch `1000-own-php-argon2-backport-php73.patch`
(`src/patches-xenial-7.0/`) ergänzt `PASSWORD_ARGON2I`/`PASSWORD_ARGON2ID` in password_hash/password_verify/
password_get_info/password_needs_rehash gegen das eigene libargon2 0~20171227; `PASSWORD_DEFAULT` bleibt bcrypt.
phpredis 5.3.7, kein php7.0-tidy, redis ohne zstd, keine dbgsym; PCRE 8.38 aus dem System. Die sieben PECL-Modulpakete
tragen **Epoch 1** (`1:7.0.33-93+ubuntu16.04.1+ownphp+1`) wie alle xenial-Module. **PHP 7.0 ist seit 10.01.2019 upstream
End-of-Life**; Nextcloud 13–15 bzw. ownCloud 10.0–10.4 laufen noch mit 7.0, neuere nicht. Laufzeittest in gelöschter
Wegwerf-Kopie bestanden (`logs/runtime-test-xenial-php7.0.log`: FUNC_FAILS=0, argon2id/argon2i hash+verify OK,
Multipart-Limit greift). Bericht `/opt/own-php/BUILD-REPORT-xenial-php7.0.md`, Pakete `/opt/own-php/packages/xenial-php7.0/`.
Einbinden auf 16.04 mit `[trusted=yes]` (xenial-apt kann den ed25519-Schlüssel nicht prüfen), dann z. B.
`apt-get install php7.0-fpm php7.0-cli php7.0-common php7.0-opcache php7.0-readline php7.0-curl php7.0-gd php7.0-mbstring
php7.0-xml php7.0-zip php7.0-intl php7.0-mysql php7.0-apcu php7.0-redis php7.0-imagick` (Ubuntus `php-apcu`/`php-redis`/
`php-imagick` für 7.0 vorher entfernen, gleiche .so-Namen). Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter xenial 'Source (== php7.0)'`.

**Achtung Signaturprüfung auf Xenial:** `apt` 1.2 / `gpgv` 1.4 in Ubuntu 16.04 kann den ed25519-Schlüssel dieses Repos
nicht prüfen (`ERRSIG`). Xenial-Clients müssen die Quelle mit `[trusted=yes]` einbinden
(`deb [trusted=yes] http://<mirror-host>/own-php xenial main`) oder das Repo muss zusätzlich mit einem RSA-Schlüssel
signiert werden (`SignWith: <ed25519> <rsa>` in `conf/distributions`). Bionic und neuer sind nicht betroffen.
Laufzeittest php7.4 in einer Wegwerf-Chroot-Kopie (22.10.2026, auf Freigabe): Installation, `php -v/-m`, FPM-Start,
38 Funktionstests und Multipart-Upload OK; siehe `BUILD-REPORT-xenial-php7.4-phpsrc.md`, Abschnitt 11.
Nextcloud-25-Test (nginx + php7.4-fpm, SQLite; MariaDB 10.0 aus Xenial ist für Nextcloud zu alt): Installation, occ, WebDAV,
Login über FPM OK; Abschnitt 12. Nextcloud 26+ verlangt PHP ≥ 8.0.
Laufzeittest php8.3 (22.10.2026, gleiche Wegwerf-Methode): Installation, `php -v/-m` (46 Module), FPM, 38 Funktionstests,
Multipart OK (`BUILD-REPORT-xenial.md`, Abschnitt 11). Xenials MariaDB 10.0 und SQLite 3.11 sind für Nextcloud ≥ 31 zu alt.
Anwendungstests mit Xenials MySQL 5.7 (MariaDB 10.0 aus Xenial ist für ownCloud 10.16/Nextcloud ≥ 25 zu alt):
**ownCloud 10.16.3 mit php7.4** (Bericht php7.4-phpsrc, Abschnitt 13) und **Nextcloud 28.0.14 mit php8.3** (Bericht xenial, Abschnitt 12):
Installation, occ, Login über nginx/FPM, WebDAV-Upload/Download, Multipart-POSTs jeweils OK.
Zusätzlich mit **MySQL Community Server 8.0.25** (repo.mysql.com, wie auf dem Zielserver cloud10): ownCloud 10.16.3 + php7.4 und
Nextcloud 28.0.14 + php8.3 jeweils vollständig OK (Berichte php7.4-phpsrc Abschnitt 14, xenial Abschnitt 13).
Produktiver Einsatz nicht empfohlen; Zielsysteme besser auf 18.04/20.04/22.04 heben. Suite entfernen:
`reprepro -b /opt/own-php/MIRROR removematched xenial '*'` und den xenial-Block in `scripts/07-mirror.sh` löschen.

## PHP 5.5.9 für Ubuntu 14.04 (trusty) – Ubuntu-Paketierung, mod_php

> **Revision `5.5.9+dfsg-1ubuntu4.29+patchdeb+3` (26.10.2026):** ersetzt `+ownphp+2` in der Suite trusty (Umbenennung des Projekts auf `patchdeb`, gleiche Paketnamen `php5-*`/`libapache2-mod-php5`, `phpapi-20121212` unverändert). Zusätzlich zur PHP2Shell-Mitigation enthält sie 86 Backports historischer Sicherheitskorrekturen (104 CVE-/GHSA-IDs, u. a. EXIF-, Phar-, SOAP-, Request-Parsing-, libxml-, pgsql-, oniguruma-Fixes; vollständige Liste im Paket-Changelog und in `/opt/patchdeb/audit-php55/PHP55-MISSING-SECURITY-PATCHES.md`). **Verhaltensänderungen** (vor dem Einsatz mit der Anwendung prüfen): Cookie-Namen werden nicht mehr URL-dekodiert; `__Host-`/`__Secure-`-Variablennamen werden nicht mehr umgeschrieben; `post_max_size` gilt auch für Multipart-Bodies ohne Content-Length (Chunked); fehlerhafte bcrypt-Salts werden abgewiesen; `pg_convert()` liefert `'…'` statt `E'…'`; SOAP-Verschachtelung ≤ 2048; TAR-Größenfelder werden geprüft; `http://`-Streams weisen fehlerhafte Antwort-Header ab und entfernen Credentials bei Cross-Origin-Redirects; oniguruma-Muster ≤ 4096 Ebenen. Laufzeittest (Skript 22, erweitert) siehe `BUILD-REPORT-trusty-php5.md`. Installation wie unten beschrieben; die alten `+ownphp+2`-Pakete liegen unter `/opt/patchdeb/build/trusty-php5/packages-rev2/`.


Auf Wunsch des Betreibers für den Server cloud12 (61 ownCloud-8/9- und Nextcloud-10-Instanzen, Apache 2.4.7 mpm_prefork
mit `libapache2-mod-php5`) gebaut: Version `5.5.9+dfsg-1ubuntu4.29+ownphp+2` (24.10.2026; +1 vom selben Tag ersetzt, Unterschied: `fflush(stderr)` vor `_exit()`, damit die Fatal-error-Zeile im Apache-Error-Log ankommt), Suite `trusty`, Paketnamen wie bei Ubuntu
(`php5-*`, `libapache2-mod-php5`, `/etc/php5/`, Modulverzeichnis `/usr/lib/php5/20121212`). Grundlage ist Ubuntus
Quellpaket `php5 5.5.9+dfsg-1ubuntu4.29` (letzter öffentlicher Stand aus trusty-security, enthält die CVE-Fixes bis 2019;
cloud12 hat noch 4.19) ohne Änderung an der Paketierung, plus **ein eigener Patch
`0300-ownphp-PHP2Shell-mitigation-ZE2.patch`**: Handportierung der von PHP für 7.4/8.0/8.1 veröffentlichten
Minimal-Mitigation für CVE-2026-109618/109619 („PHP2Shell“, state corruption via bailout) auf Zend Engine 2.5,
einschließlich der INI-Option `max_multipart_body_parts` (Standard max_input_vars + max_file_uploads). Für PHP 5 gibt es
keinen Upstream- oder Distributions-Backport; Details und Abweichungen im Patch-Header und in `BUILD-REPORT-trusty-php5.md`.
Wirkung: Speicherlimit-/OOM-/Overflow-Fehler beenden den Apache-Kindprozess sofort (Eintrag `Fatal error …` im Apache-Error-Log,
leere Antwort an den Client, prefork startet ein neues Kind), statt Fehler-Handler und Shutdown-Funktionen in korruptem Zustand
auszuführen; `session.upload_progress` ist funktionslos. **Kein Argon2** (PHP 5.5 kennt es nicht; auf cloud12 nicht genutzt,
ownCloud 8/9 hasht mit bcrypt). Die Fremdmodule php5-apcu, -imagick, -gnupg, -geoip, -json, -mcrypt bleiben die trusty-Pakete
(ABI phpapi-20121212 unverändert). **Ubuntu 14.04 und PHP 5.5 sind EOL**; alle übrigen seit 2019 bekannten PHP-5.5-Lücken bleiben offen.
Pakete und Bericht: `/opt/own-php/packages/trusty-php5/`, `/opt/own-php/BUILD-REPORT-trusty-php5.md`. Statisch geprüft und Laufzeittest in
gelöschter Wegwerf-Kopie (Skript 22: Installation aus dem Repo, php5 -v/-m, 36 Funktionstests, Apache/mod_php mit Multipart-Upload,
max_multipart_body_parts-Limit, doppelten MIME-Headern, Speicherlimit-Überlauf; Bericht Abschnitt 11).
Entfernen: `reprepro -b /opt/own-php/MIRROR removefilter trusty 'Source (== php5)'`.

Einbinden auf trusty (gpgv 1.4 kennt den ed25519-Schlüssel nicht → `trusted=yes` wie bei xenial):

    echo 'deb [trusted=yes] http://<repo-host>/own-php trusty main' > /etc/apt/sources.list.d/patchdeb.list
    apt-get update
    apt-cache policy libapache2-mod-php5 php5-cli          # Kandidat: 5.5.9+dfsg-1ubuntu4.29+ownphp+2
    apt-get -s install libapache2-mod-php5 php5-cli php5-common php5-curl php5-gd php5-intl php5-ldap php5-mysql \
      php5-readline php5-sqlite php5-xmlrpc php5-xsl php5-dev php-pear php5-dbg        # erst simulieren
    apt-get install libapache2-mod-php5 php5-cli php5-common php5-curl php5-gd php5-intl php5-ldap php5-mysql \
      php5-readline php5-sqlite php5-xmlrpc php5-xsl php5-dev php-pear php5-dbg
    service apache2 restart
    php5 -v; php5 -i | grep max_multipart_body_parts; apache2ctl -M | grep php5

Empfehlung zusätzlich: in `/etc/php5/apache2/php.ini` `memory_limit` auf einen endlichen Wert setzen (derzeit -1 auf cloud12).

## Aktualisieren des Repos (Build-Host)

    DIST=focal  PHPVER=8.3.x scripts/02-prepare-source.sh && sudo env DIST=focal  PHPVER=8.3.x scripts/03-build-php8.3.sh
    DIST=bionic PHPVER=8.3.x scripts/02-prepare-source.sh && sudo env DIST=bionic PHPVER=8.3.x scripts/03-build-php8.3.sh
    DIST=jammy  PHPVER=8.3.x scripts/02-prepare-source.sh && sudo env DIST=jammy  PHPVER=8.3.x scripts/03-build-php8.3.sh
    # oder je Distribution komplett (prepare, build-deps, build, Pruefungen, Einzelbericht):
    sudo env DIST=<dist> PHPMAJ=8.3 PHPVER=8.3.x OWNREV=<n> scripts/12-build-dist.sh
    sudo env DIST=bionic PHPMAJ=8.1 PHPVER=8.1.34 OWNREV=<n> scripts/12-build-dist.sh   # PHP 8.1 (Ausgabe: packages/bionic-php8.1/)
    sudo env DIST=bionic PHPMAJ=7.4 PHPVER=7.4.33 OWNREV=<n> scripts/12-build-dist.sh   # PHP 7.4 (Ausgabe: packages/bionic-php7.4/)
    sudo env DIST=bionic PHPMAJ=7.3 PHPVER=7.3.33 OWNREV=<n> scripts/12-build-dist.sh   # PHP 7.3 (Ausgabe: packages/bionic-php7.3/; Quelle Sury gbp-Snapshot, phpredis 5.3.7)
    sudo env DIST=noble  PHPMAJ=8.3 PHPVER=8.3.x  OWNREV=<n> scripts/12-build-dist.sh   # PHP 8.3 fuer Ubuntu 24.04 (Ausgabe: packages/noble/)
    sudo env DIST=noble  PHPMAJ=8.4 PHPVER=8.4.x  OWNREV=<n> scripts/12-build-dist.sh   # PHP 8.4 fuer Ubuntu 24.04 (Ausgabe: packages/noble-php8.4/)
    sudo env DIST=buster PHPMAJ=8.3 PHPVER=8.3.x  OWNREV=<n> scripts/12-build-dist.sh   # PHP 8.3 fuer Debian 10 (Ausgabe: packages/buster/)
    sudo env DIST=buster PHPMAJ=7.4 PHPVER=7.4.33+git20261018.712e60f9 PKGBASEVER=7.4.33 OWNREV=<n> TAGSUFFIX=-phpsrc SNAPSHOT=... DROP_PATCHES=0164-... EXTRA_PATCHES=src/patches-php7.4-git DROP_HUNKS=... scripts/12-build-dist.sh   # PHP 7.4 fuer Debian 10 (Ausgabe: packages/buster-php7.4-phpsrc/)
    sudo env DIST=buster PHPMAJ=8.0 PHPVER=8.0.30+git20261018.82f8f31b PKGBASEVER=8.0.30 OWNREV=<n> TAGSUFFIX=-phpsrc SNAPSHOT=... DROP_PATCHES=... DROP_HUNKS=... scripts/12-build-dist.sh   # PHP 8.0 fuer Debian 10 (Ausgabe: packages/buster-php8.0-phpsrc/; Chroot: DIST=buster 01-chroot-setup.sh nach debootstrap von archive.debian.org)
    # Pakete nach packages/<dist>/ kopieren, Pruefungen (04/05/06), dann (importiert je Suite auch packages/<dist>-php*/):
    scripts/07-mirror.sh noble jammy focal bionic xenial buster

Hinweis: Die Pakete wurden nur statisch geprüft (keine Installation, keine Laufzeittests).
Siehe /opt/own-php/BUILD-REPORT.md.
