BUG #17672: Wrong logic of Postgresql Resporitory Naming and mirroring incompatibility
The following bug has been logged on the website:
Bug reference: 17672
Logged by: Michael Burgener
Email address: mike.burgener@zg.ch
PostgreSQL version: Unsupported/Unknown
Operating system: Ubuntu/Debian Distrbution Postgres Repository
Description:
Dear Postgresql Community, while trying to mirror your repository to a
Canonical Landscape Server, i discovered that you don't follow the
guidelines of the Repository Format.
In your case the structure is like:
https://apt.postgresql.org/pub/repos/apt/dists/focal-pgdg/
where as of best-practice and for best compatibility with mirroring tools
etc. the format should be
https://apt.postgresql.org/pub/repos/apt/dists/focal/
I could not get landscape to mirror, as it quite strictly checks if the
repository is in the correct format and it internaly reuses the
$distribution name set earlier and globally as a variable value.
Maybe a quick on your repository to fullfill the Repository format standard
could be to link/bindmount
https://apt.postgresql.org/pub/repos/apt/dists/focal/ to
https://apt.postgresql.org/pub/repos/apt/dists/focal-pgdg/ (stable)
Another special case i discovered on your repositories, you are using the
Postgres-Version name like
https://apt.postgresql.org/pub/repos/apt/dists/focal-pgdg/12/
actually that's not really needed, as your package-names for each major
version seem to be different, you could just use
https://apt.postgresql.org/pub/repos/apt/dists/focal/postgresql and have all
versions like postgresql-12 postgresql-13 etc. in the same release file, as
thats selectable by apt later for example with "apt install postgresql-12"
"apt install postgresql-13"
My suggestion to have a proper repository setup which follows the guidelines
would be
https://apt.postgresql.org/pub/repos/apt/dists/focal/postgresql
https://apt.postgresql.org/pub/repos/apt/dists/focal/postgresql-testing
https://apt.postgresql.org/pub/repos/apt/dists/focal/postgresql-snapshot
https://apt.postgresql.org/pub/repos/apt/dists/jammy/postgresql
https://apt.postgresql.org/pub/repos/apt/dists/jammy/postgresql-testing
https://apt.postgresql.org/pub/repos/apt/dists/jammy/postgresql-snapshot
Adjusting the Repository mirrors to better match the guidelines would make
things a lot easier to maintain IMHO.
Btw i provide Ubuntu Official mirrors for about 15 years now and have quite
some experience with Ubuntu/Debian package repos :-)
kind regards
Michael
Dear Postgresql Community, while trying to mirror your repository to a
Canonical Landscape Server, i discovered that you don't follow the
guidelines of the Repository Format.
Hi Mike,
do you have any references to these guidelines?
I could not get landscape to mirror, as it quite strictly checks if the
repository is in the correct format and it internaly reuses the
$distribution name set earlier and globally as a variable value.
Did you try setting distribution to focal-pgdg? Then everything should
be consistent.
Maybe a quick on your repository to fullfill the Repository format standard
could be to link/bindmounthttps://apt.postgresql.org/pub/repos/apt/dists/focal/ to
https://apt.postgresql.org/pub/repos/apt/dists/focal-pgdg/ (stable)
That doesn't work as the Release file mentions the name as well and
apt will complain if it doesn't match.
Another special case i discovered on your repositories, you are using the
Postgres-Version name like
https://apt.postgresql.org/pub/repos/apt/dists/focal-pgdg/12/
actually that's not really needed, as your package-names for each major
version seem to be different, you could just use
https://apt.postgresql.org/pub/repos/apt/dists/focal/postgresql and have all
versions like postgresql-12 postgresql-13 etc. in the same release file, as
thats selectable by apt later for example with "apt install postgresql-12"
"apt install postgresql-13"
Please see https://apt.postgresql.org/pub/repos/apt/pool/README for an
explanation.
My suggestion to have a proper repository setup which follows the guidelines
would behttps://apt.postgresql.org/pub/repos/apt/dists/focal/postgresql
That would require you to set distribution = focal/postgresql. Is that
any better?
Christoph
See quoted replies:
Hi Mike,
do you have any references to these guidelines?
Here: https://wiki.debian.org/DebianRepository/Format
I could not get landscape to mirror, as it quite strictly checks if the
repository is in the correct format and it internaly reuses the
$distribution name set earlier and globally as a variable value.
Did you try setting distribution to focal-pgdg? Then everything should
be consistent.
[>] Many tools don't allow this, landscape also not
Maybe a quick on your repository to fullfill the Repository format standard
could be to link/bindmounthttps://apt.postgresql.org/pub/repos/apt/dists/focal/ to
https://apt.postgresql.org/pub/repos/apt/dists/focal-pgdg/ (stable)
That doesn't work as the Release file mentions the name as well and
apt will complain if it doesn't match.
oh, my bad sorry, maybe somebody else would have a good idea.
Another special case i discovered on your repositories, you are using the
Postgres-Version name like
https://apt.postgresql.org/pub/repos/apt/dists/focal-pgdg/12/
actually that's not really needed, as your package-names for each major
version seem to be different, you could just use
https://apt.postgresql.org/pub/repos/apt/dists/focal/postgresql and have all
versions like postgresql-12 postgresql-13 etc. in the same release file, as
thats selectable by apt later for example with "apt install postgresql-12"
"apt install postgresql-13"
Please see https://apt.postgresql.org/pub/repos/apt/pool/README for an
explanation.
My error! Thx !
My suggestion to have a proper repository setup which follows the guidelines
would behttps://apt.postgresql.org/pub/repos/apt/dists/focal/postgresql
That would require you to set distribution = focal/postgresql. Is that
any better?
Lol, I seem to have misread something last time, a landscape-api line like this worked properly: landscape-api create-pocket --mirror-suite focal-pgdg --mirror-uri https://apt.postgresql.org/pub/repos/apt pgdg focal ubuntu main amd64 mirror mirror-key --mirror-gpg-key postgresql
So everything seems ok with your setup 😃
Maybe the landscape-api line is helpful for somebody else in the future
Thx
Mike