Packages the distribution does not carry (h2o, Cherokee, PHP 5.6 - 7.3)
Most of what HiTechCloud installs comes from the distribution's own repositories, plus Remi on Enterprise Linux and packages.sury.org on Debian/Ubuntu for the PHP versions. A few things are not packaged anywhere for a current release:
| Where it is missing | What the mirror carries | |
|---|---|---|
| h2o WebEngine | AlmaLinux / Rocky / RHEL 8, 9, 10 (not in EPEL) | built from upstream master at a pinned commit |
| Cherokee WebEngine | EL 8/9/10, Debian 12, Ubuntu 22.04/24.04 (dropped after bullseye) | built from the community repository, without the Python 2 admin interface |
| PHP 5.6, 7.0, 7.1, 7.2, 7.3 | EL 9 and EL 10 (Remi stops at 7.4 there; EL 8 still has them) | rebuilt from Remi's own source RPMs, same /opt/remi/php56 layout and php56-php-* package names, with the OpenSSL 3 / ICU 74 / gcc 14 patches Debian carries for the same versions |
They are built by the Packages workflow in deploy/packages/ (one job per
target, inside almalinux:N / debian / ubuntu containers) and served by
the mirror:
https://mirrors.hitechcloud.org/packages/el/<8|9|10>/x86_64/ dnf repository
https://mirrors.hitechcloud.org/packages/deb/<codename>/ flat apt repository
https://mirrors.hitechcloud.org/packages/index.json what is there
Nothing to do on a server
hitechcloudcli phpversions install 5.6 and hitechcloudcli enterprise h2o install (or the Packages & Apps page on port 2087) ask the distribution
first and the mirror second: when the distribution has no package for this
release and the mirror does, the repository is added as
hitechcloud-packages (/etc/yum.repos.d/hitechcloud-packages.repo or
/etc/apt/sources.list.d/hitechcloud-packages.list) and the package installs
from it. A server whose distribution already carries the package never sees
the mirror's copy.
To look at what the mirror offers this machine:
hitechcloudcli packages show
hitechcloudcli packages has php56-php-fpm && echo yes
hitechcloudcli packages enable # add the repository by hand
hitechcloudcli packages disable # remove it
HITECHCLOUD_MIRROR in the environment points all of this at a private
mirror, the same variable the installer honours.
PHP 5.6 - 7.3 are past their upstream end of life. The rebuilt packages carry Remi's security backports up to his last build of each line and nothing after; they exist so that an application that still needs an old PHP can run on a current distribution behind the same front-end, firewall and per-account isolation as everything else - not as a reason to stay on it.
Building by hand
cargo build --release --manifest-path devtools/Cargo.toml --target x86_64-unknown-linux-musl
T=devtools/target/x86_64-unknown-linux-musl/release
podman run --rm -v "$PWD/deploy/packages:/pkg:Z" -v "$PWD/dist:/dist:Z" -v "$PWD/$T:/tools:Z" almalinux:10 \
/tools/hitechcloud-devtools rpm-build --pkg-dir /pkg --el 10 --out /dist h2o cherokee php73
podman run --rm -v "$PWD/deploy/packages:/pkg:Z" -v "$PWD/dist:/dist:Z" -v "$PWD/$T:/tools:Z" debian:bookworm \
/tools/hitechcloud-devtools deb-build --pkg-dir /pkg --codename bookworm --out /dist cherokee
dist/el10/x86_64/ is then a complete dnf repository (with repodata/) and
dist/bookworm/ a flat apt one (Packages.gz). Versions are pinned in
deploy/packages/rpm/versions.env and deb/versions.env.