Re: Another morning lost to bad ports choices (perl upgrade, plus postgres)
- In reply to: Dan Mahoney (Ports): "Another morning lost to bad ports choices (perl upgrade, plus postgres)"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 26 Oct 2023 00:44:18 UTC
On Tue, 24 Oct 2023, Dan Mahoney (Ports) wrote:
> All,
>
> I=E2=80=99ve lost another morning to a bad choice made by ports/pkg.
>
> Maybe this is a dumb question/rant, but recently, a routine pkg upgrade=
=20
> of the dayjob=E2=80=99s RT VM (which included an upgrade to perl) decided=
to=20
> leave me with no ability to connect. After following the rabbit hole, I=
=20
> hit a database connect error.
>
> p5-dbd-pg was still installed, according to pkg, but none of the perl=20
> libraries could find it, because it was in the wrong perl include dir=20
> (/usr/local/lib/perl5/site_perl/mach/5.32/DBD/Pg.pm, when the perl=20
> version was 5.34)
>
> Now, postgresql13 is still in pkg, still works, and according to=20
> Freshports indirectly requires postgresql13 (by way of requining libpq),=
=20
> and it still builds cleanly if you set DEFAULT_VERSIONS+=3Dpgsql=3D13 in=
=20
> make.conf,
Rather than do nothing but complain, I decided to try and submit a patch=20
to fix this problem. (Mat, I'm cc'ing you because you're the author of=20
anything flavors-related in /usr/ports/Updating)
I had a look at Makefile for databases/p5-DBD-Pg, and while it sets=20
uses=3Dperl pgsql, I don't see a magic way to simply cause the port to be=
=20
built with all supported versions of pgsql.
I don't see anything referring to Flavors in /usr/ports/Mk/Uses/pgsql.mk
The porter's handbook is sort of lacking on this,=20
(https://docs.freebsd.org/en/books/porters-handbook/flavors/) -- it gives=
=20
specific examples for PHP and Python, but not for a port which might just=
=20
happen to have multiple available versions with USES=3D
Lines like:
"To declare a port having multiple flavors, add FLAVORS to its Makefile.=20
The first flavor in FLAVORS is the default flavor."
and:
It can help simplify the logic of the Makefile to also define FLAVOR as:
FLAVOR?=3D=09${FLAVORS:[1]}
=2E..don't give much of an example, and reading the files in /usr/ports/Mk,=
=20
are not super straightforward.
So the questions:
Is there a trick I'm missing here?
Is there not some way to auto-populate all possible flavors of a port with=
=20
supported versions of a given package in USES? (Ala=20
FLAVORS=3D(pgsql_versions))
(If there were, an example usage for this is probably the most obvious use=
=20
case I can think of -- a simple database driver that matches a DB=20
version).
Would this require flavors knobs to be added to=20
/usr/ports/Mk/Uses/pgsql.mk?
Do I need to define each possible postgres version and ifdefine it?
Finally, should I be asking this somewhere else?
Thanks,
-Dan
--=20
--------Dan Mahoney--------
Techie, Sysadmin, WebGeek
Gushi on efnet/undernet IRC
FB: fb.com/DanielMahoneyIV
LI: linkedin.com/in/gushi
Site: http://www.gushi.org
---------------------------