BUG #17672: Wrong logic of Postgresql Resporitory Naming and mirroring incompatibility

Started by PG Bug reporting formover 3 years ago3 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

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

#2Christoph Berg
myon@debian.org
In reply to: PG Bug reporting form (#1)
Re: BUG #17672: Wrong logic of Postgresql Resporitory Naming and mirroring incompatibility

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/bindmount

https://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 be

https://apt.postgresql.org/pub/repos/apt/dists/focal/postgresql

That would require you to set distribution = focal/postgresql. Is that
any better?

Christoph

#3Mike Burgener
Mike.Burgener@zg.ch
In reply to: Christoph Berg (#2)
AW: BUG #17672: Wrong logic of Postgresql Resporitory Naming and mirroring incompatibility

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/bindmount

https://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 be

https://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