Open shawnlaffan opened 1 year ago
These errors could also just be the way I set up the build. Postgres is listed as building successfully in https://github.com/StrawberryPerl/build-extlibs/issues/4#issuecomment-1326531971
The MSYS patches will probably still be useful though.
The build errors were a PEBKAC as I neglected to pass the DLLSUFFIX argument to the build.sh call.
I'll leave this open as I suspect the patches will still be useful.
I need to look a bit further but perl is needed for two Postgres components.
At build time to run some tests, possibly only when checked out from a git source tree.
https://github.com/postgres/postgres/blob/e72910f8080185b6ade9ef7caa5c891dba3cb51c/configure#L1536
https://github.com/postgres/postgres/blob/e72910f8080185b6ade9ef7caa5c891dba3cb51c/configure#L10394-L10405
To enable the PL/perl procedural language as part of queries.
https://www.postgresql.org/docs/current/plperl.html
The build for the latter includes XS code so will need to be run with the same perl it was built with (https://github.com/postgres/postgres/tree/master/src/pl/plperl). If it is enabled the docker image needs an initial perl build to bootstrap itself, consistent with the current diagram (https://github.com/StrawberryPerl/spbuild/issues/12).
FWIW, MSYS2/mingw disable it in their builds.
https://github.com/msys2/MINGW-packages/blob/42c31ba612a436c4fe3fccce6bdefc934a069fc3/mingw-w64-postgresql/PKGBUILD#L94
Is PL/perl used by consumers of strawberry perl? Has it worked in the past few versions of strawberry perl? Have the past few versions even included it?
It seems I have not been checking the postgresql builds.
Running a new build and re-using build artifacts from a previous run to speed things up, I get these failures.
...more logging...
There are no patches for postgres 15.1 at the moment (edit - in this repo). MSYS are applying a number of patches which we should look to adapt. Some are already present for postgres 9.x but since we use version specific patch sets they are not applied.
MSYS also disable the perl component in their build, which maybe we should look at if it has no effect on Strawberry perl users and if postgres does a hard bind to the version it was built with.