Created attachment 228826 [details] 0001-databases-postgresql-plv8js-update-to-3.0.0 Needs C++14 and a custom way to pass CXXFLAGS, see attached patch (can be applied with 'git am')
Do you also want to take the maintainership?
(In reply to Li-Wen Hsu from comment #1) As I don't use this software, I don't think I could maintain it well :( I just attempted to fix the port because there was someone needing it on FreeBSD forums…
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=9013d2fa7dc122d48f1f3060c2fa80195f8d32cd commit 9013d2fa7dc122d48f1f3060c2fa80195f8d32cd Author: Felix Palmen <felix@palmen-it.de> AuthorDate: 2021-10-19 07:27:06 +0000 Commit: Li-Wen Hsu <lwhsu@FreeBSD.org> CommitDate: 2021-10-19 08:58:34 +0000 databases/postgresql-plv8js: Update to 3.0.0 Unbreak the build, needs C++14 and CXXFLAGS passed to the build in a non-standard way. PR: 259262 databases/postgresql-plv8js/Makefile | 12 +++--- databases/postgresql-plv8js/distinfo | 6 +-- .../postgresql-plv8js/files/patch-Makefile (gone) | 11 ----- .../postgresql-plv8js/files/patch-plv8.cc (gone) | 27 ------------- .../files/patch-plv8__type.cc (new) | 47 ++++++++++++++++++++++ .../files/patch-plv8_func.cc (gone) | 26 ------------ .../files/patch-plv8_type.cc (gone) | 26 ------------ databases/postgresql-plv8js/pkg-plist | 26 +++++++++++- 8 files changed, 82 insertions(+), 99 deletions(-)
A commit in branch 2021Q4 references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=acf8b1c393fb8eefdea414050206432d2681b4b5 commit acf8b1c393fb8eefdea414050206432d2681b4b5 Author: Felix Palmen <felix@palmen-it.de> AuthorDate: 2021-10-19 07:27:06 +0000 Commit: Li-Wen Hsu <lwhsu@FreeBSD.org> CommitDate: 2021-10-19 08:59:04 +0000 databases/postgresql-plv8js: Update to 3.0.0 Unbreak the build, needs C++14 and CXXFLAGS passed to the build in a non-standard way. PR: 259262 (cherry picked from commit 9013d2fa7dc122d48f1f3060c2fa80195f8d32cd) databases/postgresql-plv8js/Makefile | 12 +++--- databases/postgresql-plv8js/distinfo | 6 +-- .../postgresql-plv8js/files/patch-Makefile (gone) | 11 ----- .../postgresql-plv8js/files/patch-plv8.cc (gone) | 27 ------------- .../files/patch-plv8__type.cc (new) | 47 ++++++++++++++++++++++ .../files/patch-plv8_func.cc (gone) | 26 ------------ .../files/patch-plv8_type.cc (gone) | 26 ------------ databases/postgresql-plv8js/pkg-plist | 26 +++++++++++- 8 files changed, 82 insertions(+), 99 deletions(-)
(In reply to Felix Palmen from comment #2) That's fine and thanks again for your patch. If possible, please consider also submitting the patch to the upstream.
Hi Li-Wen! I can take maintainership. I don't use this software too, but at least my employer have expertise in plv8 and one of customer use it (on Linux). Thanks!
(In reply to Michael Zhilin from comment #6) That's great, thanks! Please go ahead to update the MAINTAINER line (and cherry-pick to quarterly branch) with my approval.
(In reply to Li-Wen Hsu from comment #5) About the new patch in files, it just follows a breaking change in the v8 API. We have v8 9.4.146.21 in ports. Upstream's default Makefile does a static build and has hardcoded AUTOV8_VERSION = 8.8.278.14 So, I'm not sure they would accept it right now… maybe open an issue asking whether they want to move to v8 9.x?
Created attachment 228830 [details] 0001-databases-postgresql-plv8js-remove-pgsql-version I'm sorry, a little thing slipped me through the cracks :o It seems 3.0.0 now builds fine with any pgsql version (did a poudriere testport with 9.6, 12 and 14), so I suggest to remove the restriction in the USES.
Created attachment 228833 [details] 0001-databases-postgresql-plv8js-remove-pgsql-version And I forgot to bump PORTREVISION to trigger a rebuild for everyone *not* using 9.6 as the default pgsql version. Shame on me…
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=fb3f11e5db16d91932828a877a2238f0e482ece3 commit fb3f11e5db16d91932828a877a2238f0e482ece3 Author: Felix Palmen <felix@palmen-it.de> AuthorDate: 2021-10-19 14:31:00 +0000 Commit: Michael Zhilin <mizhka@FreeBSD.org> CommitDate: 2021-10-19 14:33:21 +0000 databases/postgresql-plv8js: remove pgsql version Remove version restriction for pgsql, as 3.0.0 builds fine with any version. Reported by: Felix Palmen <felix@palmen-it.de> PR: 259262 Sponsored by: Postgres Professional databases/postgresql-plv8js/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
A commit in branch 2021Q4 references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=f8db0660e0cf8e258bbdb7109f4d23dbafc6a3a1 commit f8db0660e0cf8e258bbdb7109f4d23dbafc6a3a1 Author: Felix Palmen <felix@palmen-it.de> AuthorDate: 2021-10-19 14:31:00 +0000 Commit: Michael Zhilin <mizhka@FreeBSD.org> CommitDate: 2021-10-19 14:35:50 +0000 databases/postgresql-plv8js: remove pgsql version Remove version restriction for pgsql, as 3.0.0 builds fine with any version. Reported by: Felix Palmen <felix@palmen-it.de> PR: 259262 Sponsored by: Postgres Professional (cherry picked from commit fb3f11e5db16d91932828a877a2238f0e482ece3) databases/postgresql-plv8js/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Somehow, these latest commits miss the actual removal of the pgsql version restriction :o
Reopen, for pgsql version restriction removal wip.
Not sure if this is the correct place and apologize if it is not but I have been testing this build this morning as I was the one in the forums with the issues. The build finishes successfully but when testing on the server I get the following error when attempting to create the plv8 extension: # psql -U postgres -c 'CREATE EXTENSION plv8' ERROR: could not load library "/usr/local/lib/postgresql/plv8-3.0.0.so": dlopen (/usr/local/lib/postgresql/plv8-3.0.0.so) failed: /usr/local/lib/postgresql/plv8-3.0.0.so: Undefined symbol "_ZTIN2v811ArrayBuffer9AllocatorE" I am currently using PostgreSQL version 10.
That's related to v8, not to pgsql. In wonder why this doesn't lead to a compile error :-( gotta investigate…
Created attachment 228841 [details] 0001-databases-postgresql-plv8js-disable-C-RTTI (In reply to Ryan D from comment #15) Could you try whether this patch (or just manually adding -fno-rtti to the CXXFLAGS) solves the problem?
Felix, I get the following output after adding the patch and rebuilding: # psql -U postgres -c 'CREATE EXTENSION plv8' # # Fatal error in ../../src/api/api.cc, line 5865 # Embedder-vs-V8 build configuration mismatch. On embedder side pointer compression is DISABLED while on V8 side it's ENABLED. # # # #FailureMessage Object: 0x7fffffffc6a0 ==== C stack trace =============================== 0x80cf8b6e3 <v8::base::debug::StackTrace::StackTrace(void)+0x13> at /usr/local/lib/libv8_libbase.so 0x80cf454cb <v8::platform::DefaultPlatform::GetStackTracePrinter(void)+0x3b> at /usr/local/lib/libv8_libplatform.so 0x80cf720d8 <V8_Fatal(char const*, int, char const*, ...)+0x148> at /usr/local/lib/libv8_libbase.so 0x80bcf06f7 <v8::V8::Initialize(int)+0x47> at /usr/local/lib/libv8.so 0x80adeb5da <_PG_init+0x32a> at /usr/local/lib/postgresql/plv8-3.0.0.so 0x850baf <load_external_function+0x30f> at /usr/local/bin/postgres 0x8508c4 <load_external_function+0x24> at /usr/local/bin/postgres 0x54e4e9 <fmgr_c_validator+0xb9> at /usr/local/bin/postgres 0x852e6a <OidFunctionCall1Coll+0x7a> at /usr/local/bin/postgres 0x54de57 <ProcedureCreate+0x10b7> at /usr/local/bin/postgres 0x5be4b1 <CreateFunction+0xad1> at /usr/local/bin/postgres 0x742176 <standard_ProcessUtility+0x10b6> at /usr/local/bin/postgres 0x741609 <standard_ProcessUtility+0x549> at /usr/local/bin/postgres 0x7410b8 <ProcessUtility+0x28> at /usr/local/bin/postgres 0x5ba3fd <ExecAlterExtensionContentsStmt+0x11cd> at /usr/local/bin/postgres 0x5b6389 <CreateExtension+0x989> at /usr/local/bin/postgres 0x5b5c02 <CreateExtension+0x202> at /usr/local/bin/postgres 0x742143 <standard_ProcessUtility+0x1083> at /usr/local/bin/postgres 0x741609 <standard_ProcessUtility+0x549> at /usr/local/bin/postgres 0x7410b8 <ProcessUtility+0x28> at /usr/local/bin/postgres 0x740d06 <PortalRunFetch+0x786> at /usr/local/bin/postgres 0x740407 <PortalRun+0x767> at /usr/local/bin/postgres 0x73fe2e <PortalRun+0x18e> at /usr/local/bin/postgres 0x73ee73 <PostgresMain+0x29d3> at /usr/local/bin/postgres 0x73d047 <PostgresMain+0xba7> at /usr/local/bin/postgres 0x6cb0c8 <PostmasterMarkPIDForWorkerNotify+0x6a8> at /usr/local/bin/postgres 0x6ca7ac <PostmasterMain+0x391c> at /usr/local/bin/postgres 0x6c7f20 <PostmasterMain+0x1090> at /usr/local/bin/postgres 0x64f138 <main+0x3b8> at /usr/local/bin/postgres
Created attachment 228842 [details] 0001-databases-postgresql-plv8js-disable-C-RTTI (In reply to Ryan D from comment #18) Ok, updated the patch to also enable V8 pointer compression. I start to understand why upstream defaults to a static build… Could you please try again with this patch?
(In reply to Felix Palmen from comment #19) This works. Really appreciate the assistance! root@vbsd80pg:/ # psql -U postgres -c 'CREATE EXTENSION plv8' CREATE EXTENSION
Created attachment 228843 [details] 0001-databases-postgresql-plv8js-disable-C-RTTI @Michael for your convenience, I rebased the patch with the runtime fixes onto current main and also included the removal of the pgsql version restriction again. Sorry for the chaos.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=ca9de5d4536e09be93db2e3dd610412bd781d689 commit ca9de5d4536e09be93db2e3dd610412bd781d689 Author: Felix Palmen <felix@palmen-it.de> AuthorDate: 2021-10-19 15:59:13 +0000 Commit: Michael Zhilin <mizhka@FreeBSD.org> CommitDate: 2021-11-01 06:14:41 +0000 databases/postgresql-plv8js: disable C++ RTTI Fixes /usr/local/lib/postgresql/plv8-3.0.0.so: Undefined symbol "_ZTIN2v811ArrayBuffer9AllocatorE" Also enable V8 pointer compression, fixes Embedder-vs-V8 build configuration mismatch. On embedder side pointer compression is DISABLED while on V8 side it's ENABLED. PR: 259262 Reported by: ryan@cybership.net Submitted by: felix@palmen-it.de Sponsored by: Postgres Professional databases/postgresql-plv8js/Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
Committed. Thanks!