Page MenuHomeFreeBSD

Uses/pgsql.mk: PostgreSQL option to install a version between an interval
ClosedPublic

Authored by lbartoletti on Jan 11 2019, 9:00 AM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Nov 28, 9:50 PM
Unknown Object (File)
Tue, Nov 19, 8:32 AM
Unknown Object (File)
Tue, Nov 19, 8:08 AM
Unknown Object (File)
Tue, Nov 19, 8:06 AM
Unknown Object (File)
Tue, Nov 19, 6:21 AM
Unknown Object (File)
Tue, Nov 19, 6:01 AM
Unknown Object (File)
Tue, Nov 19, 5:30 AM
Unknown Object (File)
Tue, Nov 19, 5:26 AM

Details

Summary

As a postgis maintainer and other tools relying on postgresql, I need to define an interval for postgresql. This allows you to avoid errors like this one at https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=234813

I had proposed this patch in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213038 but it was not followed.

I propose this patch independently.

Once approved, I will modify my ports requiring intervals and update the documentation.

Thank you.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 21928
Build 21171: arc lint + arc unit

Event Timeline

crees requested changes to this revision.Jan 11 2019, 12:18 PM

I think this should work-- how have you tested this?

Uses/pgsql.mk
18

Please would you document it too? I'll deal with the Porter's Handbook bit.

92

_MIN=${pgsql_ARGS:M?*-?*:C,-.*,,}

Should work, but please test. Use ?* because * matches the empty string, which isn't a problem because of the elif but the test is incorrect; would match *- as well.

This revision now requires changes to proceed.Jan 11 2019, 12:18 PM

I think this should work-- how have you tested this?

Yes, with some test on a fake port. However, I didn't try to compile all the ports using pgsql.mk

For example with pgsql9.5 installed and a port with

USES= pgsql:9.3-9.4

I get

version 9.3 9.4 and you have version 9.5 installed.
*** Error code 1

Stop.
USES= pgsql:9.6-11

The result is:

version 9.6 10 11 and you have version 9.5 installed.
*** Error code 1

Stop.

If I write:

USES= pgsql:9.6-9.3

I get:

The minimum version must be higher than the maximum version wanted.
*** Error code 1

Stop.

And if no pgsql is installed

USES= pgsql:9.6-11

installs postgresql9.6

lbartoletti retitled this revision from PostgreSQL option to install a version between an interval to PostgreSQL option to install a version between an interval.

Rewriting documentation on version options. Application of the @crees suggestion for MIN

Please get the MAX fixed too and it's great.

Uses/pgsql.mk
93

If you do this one too I'll commit it :)

This revision is now accepted and ready to land.Jan 11 2019, 6:22 PM

Change substitution also for MAX

This revision now requires review to proceed.Jan 11 2019, 7:43 PM
lbartoletti added inline comments.
Uses/pgsql.mk
93

Oh yes, sorry!
Thank you :)

linimon retitled this revision from PostgreSQL option to install a version between an interval to Uses/pgsql.mk: PostgreSQL option to install a version between an interval.Jan 15 2019, 4:22 PM
This revision was not accepted when it landed; it landed in state Needs Review.Jan 15 2019, 9:51 PM
This revision was automatically updated to reflect the committed changes.

Committed, thanks!

Uses/pgsql.mk
98

Point of curiosity, in former versions of make it had to be written as ${_MIN} <= ${version}

If you're ever writing portable code that's worth remembering:

https://www.freebsd.org/cgi/man.cgi?query=make&apropos=0&sektion=1&manpath=FreeBSD+8.3-RELEASE&arch=default&format=html#end