Skip to content

tarballs deps: one package per EL base for gdal, proj and perl - #178

Merged
mohitj1988 merged 1 commit into
mainfrom
tarball-deps-split
Oct 20, 2026
Merged

mohitj1988 merged 1 commit into
mainfrom
tarball-deps-split

Conversation

@rjd15372

Copy link
Copy Markdown
Collaborator

Why

percona-gdal, percona-proj and percona-perl in ppg:common:deps:tarballs each built two upstream versions from one OBS package, picking the source with %if 0%{?rhel} == 8:

Package RHEL 8 (RockyLinux_8, ssl1.1) RHEL 9 (RockyLinux_9.6 / RockyLinux_9, ssl3 / ssl3.5)
percona-gdal 3.8.5 3.13.3
percona-proj 9.6.2 9.8.1
percona-perl 5.26.3 5.32.1

One OBS package with two versions breaks anything that keys versions by package. With #177 (EXPECTED_VERSIONS from OBS builds), qa run ppg:staging:18:tarballs aborts with OBS builds disagree on the version for all three.

What

Split each into one package per tarball base, the way ppg:common:deps:postgis already splits gdal38/gdal313 and proj96/proj98:

RHEL 8 RHEL 9
percona-gdal38 percona-gdal313
percona-proj96 percona-proj98
percona-perl526 percona-perl532
  • Each spec builds a single version from a single source (the %if 0%{?rhel} == 8 version branches are resolved per package), and its package.yaml disables the other base's repositories (build: flags).
  • RPM names follow the package names; GDAL/PROJ names come from the existing GIS_*_MAJOR macros. The 5.26 libxcrypt patch stays with percona-perl526 only.
  • Install prefixes are unchanged (/opt/percona-gdal, /opt/percona-proj, /opt/percona-perl), so build-tarball.sh's component inventory and the tarball layout do not change.
  • Consumers pick the package of their base:
    • percona-postgresql-tarball/obs/simpleimage BuildRequires — %if 0%{?rhel} == 8 (verified %rhel is 8 on ssl1.1 and 9 on ssl3/ssl3.5 in the live build config);
    • percona-gis-compat.spec Requires — same conditional;
    • _shared/tarballs/project.yaml Prefer: lines — ssl1.1 names the RHEL 8 packages, ssl3 and ssl3.5 the RHEL 9 ones.
  • Docs/messages: root/README.md, the common:deps:tarballs description, build-tarball.sh FATAL messages.

Release mirrors (root/ppg/releases/*/tarballs) are not hand-edited; the next project release regenerates them.

Verification

  • Every new spec renders (macros) and parses with rpmspec under its own EL with the expected name/version/single source and matching percona-proj<NN> dependency (the local Fedora rpm rejects the pre-existing %patch0 of the 5.26 spec; unchanged and valid on EL8).
  • project verify --offline passes for ppg:common:deps:tarballs and ppg:staging:{14,17,18}:tarballs.

After merge

  • Every tarball (14–19) rebuilds against the new packages.
  • The old percona-gdal, percona-proj and percona-perl OBS packages stay in ppg:common:deps:tarballs until deleted (sync never deletes); remove them on both instances once the new ones are built.
  • EXPECTED_VERSIONS keys become percona-gdal38=3.8.5, percona-gdal313=3.13.3, …: ppg-testing's tarball tests need the matching names if they look up percona-gdal / percona-proj / percona-perl by name.

percona-gdal, percona-proj and percona-perl in ppg:common:deps:tarballs
each built two upstream versions from one OBS package, picking the
source with %if 0%{?rhel} == 8: GDAL 3.8.5 / 3.13.3, PROJ 9.6.2 / 9.8.1,
Perl 5.26.3 / 5.32.1. One OBS package therefore had two versions, which
breaks anything that keys versions by package, e.g. the agreement check
of EXPECTED_VERSIONS read from OBS builds.

Split each into one package per tarball base, the way
ppg:common:deps:postgis already splits gdal38/gdal313 and
proj96/proj98:

  percona-gdal38   (RHEL 8)  percona-gdal313  (RHEL 9)
  percona-proj96   (RHEL 8)  percona-proj98   (RHEL 9)
  percona-perl526  (RHEL 8)  percona-perl532  (RHEL 9)

Each spec builds a single version from a single source, and its
package.yaml disables the other base's repositories. RPM names follow
the package names (GDAL/PROJ from the GIS_* macros); install prefixes
stay /opt/percona-gdal, /opt/percona-proj and /opt/percona-perl, so
build-tarball.sh and the tarball layout do not change. The 5.26 libxcrypt
patch stays with percona-perl526 only.

Consumers pick the package for their base: the tarball simpleimage
BuildRequires and percona-gis-compat's Requires are %if 0%{?rhel} == 8
conditional, and the Prefer: lines of the ssl1.1 / ssl3 / ssl3.5 blocks
in the shared tarballs project config name the per-EL package.

Rebuilds every tarball. The old percona-gdal, percona-proj and
percona-perl OBS packages must be deleted from ppg:common:deps:tarballs
once the new ones are built.

Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
@mohitj1988
mohitj1988 self-requested a review October 20, 2026 12:15
@mohitj1988
mohitj1988 merged commit e183cd2 into main Oct 20, 2026
8 checks passed
@rjd15372
rjd15372 deleted the tarball-deps-split branch October 20, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants