MSVC vs Perl

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: MSVC vs Perl
Date: 2022-11-25 23:48:26
Message-ID: c2da86a0-2906-744c-923d-16da6047875e@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2022-11-25 23:52:38 Re: MSVC vs Perl
Previous Message Peter Geoghegan 2022-11-25 23:06:15 Re: Making autovacuum logs indicate if insert-based threshold was the triggering condition