StrawberryPerl / build-extlibs

16 stars 11 forks source link

postgres build status #36

Open shawnlaffan opened 1 year ago

shawnlaffan commented 1 year ago

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.

### BUILDING postgresql-15.1
cp: cannot stat 'src/interfaces/libpq/libpqdll.def': No such file or directory
sed: can't read src/interfaces/libpq/libpqdll.def.old: No such file or directory

...more logging...

checking for library containing gethostbyname_r... no
checking for library containing pthread_barrier_wait... none required
checking for inflate in -lz... no
configure: error: zlib library not found
If you have zlib already installed, see config.log for details on the
failure.  It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.

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.

shawnlaffan commented 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.

shawnlaffan commented 1 year ago

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.

shawnlaffan commented 1 year ago

I need to look a bit further but perl is needed for two Postgres components.

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?