launchql/libpg-query-node

Make a node 18 pre-compiled binary available

Closed this issue · 10 comments

Hello,

As node 18 is now in LTS since october, do you know if there is plan to make this binary precompiled for by any chance ?

Using alpine as base image make it difficult to built this on my own.

#8 42.64 npm ERR! node-pre-gyp WARN Hit error response status 404 Not Found on https://supabase-public-artifacts-bucket.s3.amazonaws.com/libpg-query-node/queryparser-v13.3.0-node-v108-linux-x64.tar.gz

Thanks

Hey just to clarify, the build is working, but it takes longer?

As far as pre-compiles @darora can potentially let us know about pushing to the supabase bucket.

Yes the build is working fine.
But as i am using the image node:18-alpine for my web container, node-gyp requires to add g++ make python3 bash git in my multi-stage docker builder image.

Hello, @darora any chance to get this :) ?

Node.js 20 is now LTS since 24 Oct 2023, so I guess also doing Node.js v20 as well would be good

cc @darora

On Fedora Silverblue 39 in a Node.js 20 toolbox, building libpg-query-node (transitive dependency of @supabase/postgres-meta) from source during npm install fails, complaining about conflicting strchrnul return types const char * and char * in postgres source and system header:

npm ERR! node-pre-gyp WARN Hit error response status 404 Not Found on https://supabase-public-artifacts-bucket.s3.amazonaws.com/libpg-query-node/queryparser-v13.3.1-node-v115-linux-x64.tar.gz 
...
npm ERR! src/postgres/src_port_snprintf.c:374:1: помилка: конфліктуючі типи для «strchrnul»; маємо «const char *(const char *, int)»
npm ERR!   374 | strchrnul(const char *s, int c)
npm ERR!       | ^~~~~~~~~
npm ERR! У файлі, включеному з ./src/postgres/include/c.h:61,
npm ERR!                  з src/postgres/src_port_snprintf.c:62:
npm ERR! /usr/include/string.h:286:14: примітка: попереднє оголошення «strchrnul» з типом «char *(const char *, int)»
npm ERR!   286 | extern char *strchrnul (const char *__s, int __c)
npm ERR!       |              ^~~~~~~~~
npm ERR! make[1]: *** [Makefile:171: src/postgres/src_port_snprintf.o] Помилка 1
npm ERR! make: *** [queryparser.target.mk:13: libpg_query/include/pg_query.h] Помилка 1
npm ERR! gyp ERR! build error 
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules_20/npm/node_modules/node-gyp/lib/build.js:203:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:514:28)
npm ERR! gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:294:12)
npm ERR! gyp ERR! System Linux 6.5.6-300.fc39.x86_64
...
npm ERR! gyp ERR! node -v v20.8.1
npm ERR! gyp ERR! node-gyp -v v9.4.0

A new pre-compiled binary wouldn't solve the build issue but could help work around it.

Bumping this issue as well. We're excited about a massive memory leak in Jest that is fixed by upgrading to Node 20

jestjs/jest#11956 (comment)

But we can't compile this from source on Node 20 and would appreciate a precompiled binary ❤️ @darora

If there's anything I can do to help get the precompiled binary uploaded let me know.

I was able to get the Linux version building on a Digital Ocean Droplet after making some changes

I can also separately compile a Mac ARM version on this machine, but not on the Droplet. If someone gave me the creds I could upload this version into supabase.

I'll take a look at having the node20 binaries published over the next week or so. Node18 binaries have been available since Jan 2023.

@darora 🙏🏼 thank you!

Have published binaries for Node20 for linux/amd64, linux/arm64, darwin/arm64.