diff --git a/Mk/Uses/elfctl.mk b/Mk/Uses/elfctl.mk index 442f13db596f..370eb7f6340f 100644 --- a/Mk/Uses/elfctl.mk +++ b/Mk/Uses/elfctl.mk @@ -7,10 +7,15 @@ # Variables # # ELF_FEATURES= featurelist:path/to/file1 \ -# featurelist:path/to/file1 \ - featurelist:path/to/file2 +# featurelist:path/to/file2 \ +# featurelist:path/to/file3 +# +# ELF_FEATURES_STAGE= featurelist:path/to/file1 \ +# featurelist:path/to/file2 \ +# featurelist:path/to/file3 # # The file paths listed in ELF_FEATURES are relative to ${BUILD_WRKSRC}. +# The file paths listed in ELF_FEATURES_STAGE are relative to ${STAGEDIR}. # .if !defined(_INCLUDE_USES_ELFCTL_MK) @@ -24,4 +29,12 @@ elfctl-post-build: . endfor . endif +. if ! empty(ELF_FEATURES_STAGE) +_USES_stage+= 720:elfctl-post-stage +elfctl-post-stage: +. for feat in ${ELF_FEATURES_STAGE} + ${ELFCTL} -i -e ${feat:C/:.*//} ${STAGEDIR}/${feat:C/.*://} +. endfor +. endif + .endif diff --git a/www/node16/Makefile b/www/node16/Makefile index 5263bfbe0375..53033a090175 100644 --- a/www/node16/Makefile +++ b/www/node16/Makefile @@ -28,7 +28,7 @@ LIB_DEPENDS+= libbrotlidec.so:archivers/brotli \ libnghttp2.so:www/libnghttp2 \ libuv.so:devel/libuv -USES= compiler:c++11-lib gmake localbase pkgconfig python:build \ +USES= compiler:c++11-lib elfctl gmake localbase pkgconfig python:build \ shebangfix BROKEN_SSL= libressl libressl-devel @@ -58,6 +58,9 @@ MAKE_ARGS+= CC.host="${CCACHE_BIN} ${CC}" \ LINK.host=${CXX} \ LDFLAGS.host="${LDFLAGS}" +ELF_FEATURES= +wxneeded:out/Release/node +ELF_FEATURES_STAGE= +wxneeded:usr/local/bin/node + CONFLICTS_INSTALL= node[0-9][0-9] REINPLACE_ARGS= -i '' diff --git a/www/node18/Makefile b/www/node18/Makefile index 3a00471937e8..fe7ab78e87bf 100644 --- a/www/node18/Makefile +++ b/www/node18/Makefile @@ -1,7 +1,6 @@ PORTNAME= node PORTVERSION= ${NODEJS_PORTVERSION} DISTVERSIONPREFIX= v -PORTREVISION= 2 CATEGORIES= www MASTER_SITES= https://nodejs.org/dist/v${PORTVERSION}/ PKGNAMESUFFIX= 18 @@ -28,7 +27,7 @@ LIB_DEPENDS= libbrotlidec.so:archivers/brotli \ libnghttp2.so:www/libnghttp2 \ libuv.so:devel/libuv -USES= compiler:c++11-lib gmake localbase pkgconfig python:build shebangfix tar:xz +USES= compiler:c++11-lib elfctl gmake localbase pkgconfig python:build shebangfix tar:xz CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \ --shared-brotli \ @@ -46,6 +45,9 @@ MAKE_ENV= CC.host="${CCACHE_BIN} ${CC}" \ LINK.host="${CXX}" REINPLACE_ARGS= -i '' +ELF_FEATURES= +wxneeded:out/Release/node +ELF_FEATURES_STAGE= +wxneeded:usr/local/bin/node + CONFLICTS_INSTALL= node[0-9][0-9] SHEBANG_FILES= deps/v8/third_party/inspector_protocol/*.py \ diff --git a/www/node20/Makefile b/www/node20/Makefile index 0e89523b6df5..5b6f19df091a 100644 --- a/www/node20/Makefile +++ b/www/node20/Makefile @@ -28,7 +28,7 @@ LIB_DEPENDS= libbrotlidec.so:archivers/brotli \ libnghttp2.so:www/libnghttp2 \ libuv.so:devel/libuv -USES= compiler:c++11-lib gmake localbase pkgconfig python:build shebangfix tar:xz +USES= compiler:c++11-lib elfctl gmake localbase pkgconfig python:build shebangfix tar:xz CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \ --shared-brotli \ @@ -46,6 +46,9 @@ MAKE_ENV= CC.host="${CCACHE_BIN} ${CC}" \ LINK.host="${CXX}" REINPLACE_ARGS= -i '' +ELF_FEATURES= +wxneeded:out/Release/node +ELF_FEATURES_STAGE= +wxneeded:usr/local/bin/node + CONFLICTS_INSTALL= node[0-9][0-9] SHEBANG_FILES= deps/v8/third_party/inspector_protocol/*.py \ diff --git a/www/node21/Makefile b/www/node21/Makefile index f32e768629f3..71f048cc01c7 100644 --- a/www/node21/Makefile +++ b/www/node21/Makefile @@ -28,7 +28,7 @@ LIB_DEPENDS= libbrotlidec.so:archivers/brotli \ libnghttp2.so:www/libnghttp2 \ libuv.so:devel/libuv -USES= compiler:c++11-lib gmake localbase pkgconfig python:build shebangfix tar:xz +USES= compiler:c++11-lib elfctl gmake localbase pkgconfig python:build shebangfix tar:xz CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \ --shared-brotli \ @@ -46,6 +46,9 @@ MAKE_ENV= CC.host="${CCACHE_BIN} ${CC}" \ LINK.host="${CXX}" REINPLACE_ARGS= -i '' +ELF_FEATURES= +wxneeded:out/Release/node +ELF_FEATURES_STAGE= +wxneeded:usr/local/bin/node + CONFLICTS_INSTALL= node[0-9][0-9] SHEBANG_FILES= deps/v8/third_party/inspector_protocol/*.py \