Package Details: nodejs-shared 21.7.1-4

Git Clone URL: https://aur.archlinux.org/nodejs-shared.git (read-only, click to copy)
Package Base: nodejs-shared
Description: Evented I/O for V8 javascript
Upstream URL: https://nodejs.org/
Licenses: MIT
Conflicts: libnode, nodejs
Provides: libnode, nodejs
Submitter: petronny
Maintainer: petronny
Last Packager: petronny
Votes: 0
Popularity: 0.000000
First Submitted: 2024-03-30 18:19 (UTC)
Last Updated: 2024-04-01 07:45 (UTC)

Required by (1701)

Sources (1)

Latest Comments

petronny commented on 2024-04-01 08:04 (UTC)

@pekkarr Updated.

As for why the official nodejs builds from a specific commit ...

Thank you for your explanation. I see the point.

pekkarr commented on 2024-03-31 17:06 (UTC)

@petronny Thanks, I'll make r-v8 depend on libnode instead of v8-r. This might take a day or two.

There is still one issue with the packaging. The r-v8 PKGBUILD has to hardcode the include path into the V8_PKG_CFLAGS variable. In order to make it work with both libnode and nodejs-shared, the headers must be available in the same location. Easiest way to achieve this would be to create a symlink /usr/include/libnode pointing to node in the nodejs-shared package.

ln -s node "$pkgdir/usr/include/libnode"

With this added to nodejs-shared, the headers are always available in /usr/include/libnode which makes r-v8 work with both packages.

As for why the official nodejs builds from a specific commit, that's a legacy practice since before pacman 6.1.0 makepkg couldn't calculate a checksum for a git checkout, which made building from a git tag potentially unreproducible because upstream could just move the tag to a different commit and makepkg wasn't able to notice it. Building from a specific commit avoided that issue since commit IDs are stable. With pacman 6.1.0 this is no longer necessary, as the checksum of the git checkout at the tag can be recorded.

petronny commented on 2024-03-31 14:40 (UTC)

@pekkarr I'll keep nodejs-shared for a while, 6 months if possible. If nobody uses it then I'll remove it.

/usr/include should not be deleted in libnode, but moved instead to have a different name than in nodejs.

Headers are now installed to /usr/include/libnode in libnode.

Could you also remove the $_commit variable and use the version tag instead? Also please use a .tar.gz archive instead of .zip.

Done. No idea why the PKGBUILD of nodejs in [extra] is still using this variable.

pekkarr commented on 2024-03-31 13:10 (UTC) (edited on 2024-03-31 13:17 (UTC) by pekkarr)

@petronny As discussed in r-v8 comments, I think it would be better to only have the libnode package without nodejs-shared, since the latter is essentially a duplicate of the official nodejs. So this package should be resubmitted as libnode with package_nodejs-shared removed, and then a merge request should be submitted for merging nodejs-shared into libnode.

/usr/include should not be deleted in libnode, but moved instead to have a different name than in nodejs, for example with

mv "$pkgdir"/usr/include/{,lib}node

Could you also remove the $_commit variable and use the version tag instead? Also please use a .tar.gz archive instead of .zip.

petronny commented on 2024-03-31 02:56 (UTC) (edited on 2024-03-31 10:48 (UTC) by petronny)

@FabioLolix This package re-enable the —shared option so it will provide libnode.so.

See https://gitlab.archlinux.org/archlinux/packaging/packages/nodejs/-/issues/1 .

@MarsSeed Please stop abusing the deletion requests. Wait a few days before issuing requests. It's quite annoying.

FabioLolix commented on 2024-03-30 22:19 (UTC)

Hello, what is the difference with repo's nodejs?