[PostGIS] #6115: Release staging can overwrite /stuff tarballs under released names
PostGIS
trac at osgeo.org
Wed Aug 12 03:39:39 PDT 2026
#6115: Release staging can overwrite /stuff tarballs under released names
-------------------------------------+-------------------------------------
Reporter: komzpa | Owner: strk
Type: defect | Status: new
Priority: high | Milestone: Website Management,
| Bots
Component: build | Version: 3.5.x
Keywords: release tarball |
checksum md5 debbie |
-------------------------------------+-------------------------------------
The release staging area can publish tarballs under an already-released
name when a release branch is built after the release tag but before the
branch version is bumped to the next dev version.
Observed case:
* `https://download.osgeo.org/postgis/source/postgis-3.5.7.tar.gz`
* size: `14975173`
* md5: `480b8a90e32cb1ce6f2852f73aa9e835`
* sha256:
`af9ab591854d52a0d1115f90b797ef1cd60d01b85a11ff813073689e332272ff`
* HTTP Last-Modified: `2026-06-10 19:15:43 GMT`
* extracted tracked files match tag `3.5.7`, commit
`9816f82458db774e62906cfb2c4f01f8b262c862`
* `https://postgis.net/stuff/postgis-3.5.7.tar.gz`
* size: `14989106`
* md5: `26788e82bb74e83d2b441d647d6f0100`
* sha256:
`20801761cf4a4c6a84abb00dde4bbe8f435ab2a037ea8bb2a4f0ce771a73323c`
* HTTP Last-Modified: `2026-06-30 21:25:45 GMT`
* extracted tracked files match stable-3.5 commit
`b775c99ddeeecd32fe68a23cc95963c59c81029d`, not tag `3.5.7`
The later archive still has `POSTGIS_MICRO_VERSION=7` in `Version.config`,
but its `NEWS` already contains post-release hardening/backpatch entries
such as OSSFuzz fixes, address_standardizer and tiger_geocoder hardening,
`#6081`, `GH-888`, `GH-889`, `GH-890`, `GH-894`, `GH-895`, `GH-897`, and
`GH-898`.
Likely mechanism:
* `ci/debbie/postgis_make_dist.sh` derives `newoutdir` from
`Version.config`.
* It then calls `sh make_dist.sh` without an explicit release tag.
* `make_dist.sh` defaults to `git rev-parse HEAD`.
* If the Debbie job is run on `stable-3.5` after tag `3.5.7` but before
`Version.config` is bumped to `3.5.8dev`, the generated file is named
`postgis-3.5.7.tar.gz` while containing a post-release stable-3.5
snapshot.
The 3.5 branch was only bumped to `3.5.8dev` by commit
`aadeecfb513034ce713c51285286d6989096b3d2` on `2026-07-06`, while the
`/stuff` archive content matches `b775c99d` from `2026-06-30`, so it falls
exactly into that window.
For comparison, `postgis-3.4.6.tar.gz` and `postgis-3.3.10.tar.gz` differ
between `download.osgeo.org` and `/stuff` only at the tar/gzip stream
level: extracted file hashes and file sizes/modes match. Those look like
repacks, not different source snapshots.
Suggested fixes:
* Make the release/staging job refuse to write `postgis-X.Y.Z.tar.gz`
unless `HEAD` is exactly tag `X.Y.Z`, or pass the intended tag explicitly
to `make_dist.sh`.
* After a release is copied to `download.osgeo.org`, treat
`postgis.net/stuff/postgis-X.Y.Z.tar.gz` as immutable or remove it from
active release checksum/source paths.
* Replace or remove the stale `/stuff/postgis-3.5.7.tar.gz` and `.md5` so
users do not see a post-release snapshot under the released `3.5.7` name.
Related website mitigation:
https://gitea.osgeo.org/postgis/postgis.net/pulls/32 changes active
release checksum links/checks to use the same `download.osgeo.org` source
as the tarball.
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/6115>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list