MSVC vs Perl - Mailing list pgsql-hackers

From Andrew Dunstan
Subject MSVC vs Perl
Date
Msg-id c2da86a0-2906-744c-923d-16da6047875e@dunslane.net
Whole thread Raw
Responses Re: MSVC vs Perl
Re: MSVC vs Perl
List pgsql-hackers
For various reasons (see below) it's preferable to build on Windows with
Strawberry Perl. This works OK if you're building with Msys2, I upgraded
the instance on the machine that runs fairywren and drongo today, and
fairywren seems fine. Not so drongo, however. First it encountered a
build error, which I attempted to cure using something I found in the
vim sources [1]. That worked, but then there's a failure at runtime like
this:

2022-11-25 21:33:01.073 UTC [3764:3] pg_regress LOG:  statement: CREATE EXTENSION IF NOT EXISTS "plperl"
src/pl/plperl/Util.c: loadable library and perl binaries are mismatched (got handshake key 0000000012800080, needed
0000000012900080)
2022-11-25 21:33:01.100 UTC [5048:5] LOG:  server process (PID 3764) exited with exit code 1

I don't know how to debug this. I'm not sure if there's some flag we
could set which would cure it. It looks like a 1 bit difference, but I
haven't found what that bit corresponds to.

That leaves ActiveState Perl as the alternative. The chocolatey package
is no longer maintained, and the last maintained package is no longer
installable. The maintainer says [2]:

    To everybody having problems with the ActivePerl installer. I'm
    sorry, but I'm not maintaining the package anymore and the reason
    for this is as follows. The Chocolatey moderation team requires,
    that the download URL and checksum for the actual binary package are
    static (for security reasons). However, nowadays ActiveState
    provides the community edition download as a weekly build only. This
    means that the checksum of the URL changes every week. (The
    Chocolatey moderation team proposed that we would setup automation
    that would update the version of the Chocolatey package weekly too.
    While this would kind-of work, it would still mean that only the
    latest version ever would work and every time when the version would
    update there would be a short but annoying time window when even the
    latest package would be broken. I think this is not the way to go.)
    Thus I contacted ActiveState and asked for their support. They were
    very friendly and promised to take over the maintenance of the
    Chocolatey installer themselves and fix the problem. In my opinion
    this is really the best solution and I hope that it will get fixed
    soon by the new maintainers. So, for any further questions, it is
    probably best to contact the ActiveState support directly.

However, nothing has actually been done along these lines AFAICT.

I could download the installer from ActiveState, but they want me to
sign up for an account before I do that, which I'm not happy about. And
while I think our use probably comes within their license terms, IANAL
and I'm not dead sure, whereas Strawberry is licensed under the usual
perl license terms.

The upshot of this is that I have disabled building drongo with perl for
now. There will possibly be some fallout with cross version upgrades,
which I will try to prevent.


cheers


andrew


[1]
https://git.postgresql.org/pg/commitdiff/171c7fffaa4a3f2b000f980ecb33c2f7441a9a03

[2] https://community.chocolatey.org/packages/ActivePerl#comment-5484577151

--
Andrew Dunstan
EDB: https://www.enterprisedb.com




pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Making autovacuum logs indicate if insert-based threshold was the triggering condition
Next
From: Andrew Dunstan
Date:
Subject: Re: MSVC vs Perl