diff --git a/www/deno/Makefile b/www/deno/Makefile index 65a2a852238a..6c84c0438ecf 100644 --- a/www/deno/Makefile +++ b/www/deno/Makefile @@ -1,111 +1,109 @@ PORTNAME= deno DISTVERSIONPREFIX= v DISTVERSION= 2.9.1 +PORTREVISION= 1 CATEGORIES= www MAINTAINER= ports@FreeBSD.org COMMENT= Secure JavaScript and TypeScript runtime WWW= https://deno.com/runtime LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.md BROKEN_i386= cargo:warning=c/freebsd.c:31:10: error: conflicting types for 'get_cpu_speed' BUILD_DEPENDS= bindgen:devel/rust-bindgen-cli \ gn:devel/gn \ protoc:devel/protobuf LIB_DEPENDS= libdbus-1.so:devel/dbus \ - libffi.so:devel/libffi \ liblcms2.so:graphics/lcms2 \ - libonig.so:devel/oniguruma \ libzstd.so:archivers/zstd -USES= cargo cpe gmake gnome llvm:min=21,build ninja:build pkgconfig:build python:build - +USES= cargo cpe gmake llvm:min=21,build ninja:build pkgconfig python:build USE_GITHUB= yes GH_ACCOUNT= denoland GH_TUPLE= denoland:deno_lsp_benchdata:a787434:denolsp/tests/bench/testdata/lsp_benchdata \ denoland:node_test:195065d:nodetest/tests/node_compat/runner/suite \ denoland:std:9c5b710:denostd/tests/util/std \ web-platform-tests:wpt:d85e753e65ee8e9654e76a2b4d62b9b5a0ac51e7:webp/tests/wpt/suite +USE_LDCONFIG= yes -USE_GNOME= glib20 - +CARGO_INSTALL= no CARGO_ENV+= V8_FROM_SOURCE=1 \ GN=${PREFIX}/bin/gn \ NINJA=${NINJA_CMD} \ CLANG_BASE_PATH=/usr \ LCMS2_INCLUDE_DIR="${LOCALBASE}/include" \ LCMS2_LIB_DIR="${LOCALBASE}/lib" \ CARGO_PROFILE_RELEASE_LTO="false" \ GN_ARGS="clang_use_chrome_plugins=false \ - extra_cppflags=\"-idirafter ${LOCALBASE}/include -idirafter ${X11BASE}/include\" \ - extra_ldflags=\"-L${LOCALBASE}/lib -L${X11BASE}/lib\" \ + extra_cppflags=\"-idirafter ${LOCALBASE}/include\" \ + extra_ldflags=\"-L${LOCALBASE}/lib\" \ fatal_linker_warnings=false \ is_clang=true \ use_custom_libcxx=true \ use_custom_libunwind=true \ use_libcxx_modules=false \ use_udev=true \ use_sysroot=false \ use_glib=false \ v8_enable_cet_ibt=true" +WITHOUT_LTO= yes + +BINARY_ALIAS= python3=${PYTHON_CMD} + PLIST_FILES= bin/${PORTNAME} \ bin/denort \ lib/libdenort.so -BINARY_ALIAS= python3=${PYTHON_CMD} - DENO_CORE_ICUDATA_V= 0.77.0 V8_CARGO_V= 149.4.0 V8_DISTDIR= ${CARGO_VENDOR_DIR}/v8-${V8_CARGO_V} V8_BPGO_DIR= ${V8_DISTDIR}/v8/tools/builtins-pgo -CARGO_INSTALL= no - -WITHOUT_LTO= yes - post-patch: - ${REINPLACE_CMD} "s|%%PREFIX%%|${PREFIX}|" \ - ${WRKSRC}/ext/os/lib.rs - ${REINPLACE_CMD} "s|${PREFIX}|${PREFIX}|" \ + ${REINPLACE_CMD} "s|%%PREFIX%%|${PREFIX}|g" \ ${WRKSRC}/cli/task_runner.rs \ + ${WRKSRC}/ext/os/lib.rs + ${REINPLACE_CMD} "s|%%LOCALBASE%%|${LOCALBASE}|g" \ ${WRKSRC}/tests/unit_node/process_test.ts - ${REINPLACE_CMD} -e "s|%%LLVM_PREFIX%%|${LLVM_PREFIX}|g" \ + ${REINPLACE_CMD} "s|%%LLVM_PREFIX%%|${LLVM_PREFIX}|g" \ ${WRKSRC}/cargo-crates/v8-${V8_CARGO_V}/build/toolchain/gcc_toolchain.gni ${REINPLACE_CMD} "s|linux|freebsd|g" \ ${WRKSRC}/tests/ffi/testdata/ffi_callback_errors.ts \ ${WRKSRC}/tests/ffi/testdata/test.js \ ${WRKSRC}/tests/ffi/testdata/bench.js \ ${WRKSRC}/tests/ffi/testdata/event_loop_integration.ts \ ${WRKSRC}/tests/ffi/testdata/thread_safe_test_worker.js \ ${WRKSRC}/tests/ffi/testdata/thread_safe_test.js \ ${WRKSRC}/tests/integration/cache_tests.rs \ ${WRKSRC}/tests/napi/common.js \ ${WRKSRC}/tests/unit/build_test.ts \ ${WRKSRC}/tests/unit/dir_test.ts \ ${WRKSRC}/tests/specs/mod.rs ${MKDIR} ${V8_BPGO_DIR}/arm64.profile ${V8_BPGO_DIR}/x64.profile ${CP} ${WRKSRC}/ext/napi/generated_symbol_exports_list_linux.def \ ${WRKSRC}/ext/napi/generated_symbol_exports_list_freebsd.def ${MKDIR} ${V8_DISTDIR}/third_party/icu/common ${CP} ${CARGO_VENDOR_DIR}/deno_core_icudata-${DENO_CORE_ICUDATA_V}/src/icudtl.dat \ ${V8_DISTDIR}/third_party/icu/common/ +do-install: + ${INSTALL_PROGRAM} \ + ${CARGO_TARGET_DIR}/*/deno \ + ${CARGO_TARGET_DIR}/*/denort ${STAGEDIR}${PREFIX}/bin + ${INSTALL_LIB} ${CARGO_TARGET_DIR}/*/libdenort.so ${STAGEDIR}${PREFIX}/lib + # do not pass RUST_BACKTRACE=1 to cargo test as some tests fails if it's there do-test: - cd ${WRKSRC} ; \ - ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${CARGO_ENV:S/RUST_BACKTRACE=1//g} ${CARGO} test -vv ${CARGO_BUILD_ARGS} - -do-install: - ${INSTALL_PROGRAM} ${CARGO_TARGET_DIR}/*/deno ${STAGEDIR}${LOCALBASE}/bin - ${INSTALL_PROGRAM} ${CARGO_TARGET_DIR}/*/denort ${STAGEDIR}${LOCALBASE}/bin - ${INSTALL_LIB} ${CARGO_TARGET_DIR}/*/libdenort.so ${STAGEDIR}${LOCALBASE}/lib + (cd ${WRKSRC} && \ + ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${CARGO_ENV:S/RUST_BACKTRACE=1//g} \ + ${CARGO} test -vv ${CARGO_BUILD_ARGS}) .include diff --git a/www/deno/files/patch-cli_task__runner.rs b/www/deno/files/patch-cli_task__runner.rs index 7d5bc4f87b8e..8c78027366fc 100644 --- a/www/deno/files/patch-cli_task__runner.rs +++ b/www/deno/files/patch-cli_task__runner.rs @@ -1,45 +1,45 @@ Index: cli/task_runner.rs --- cli/task_runner.rs.orig 2026-07-01 13:28:43 UTC +++ cli/task_runner.rs @@ -328,9 +328,8 @@ impl ShellCommand for NpmCommand { ); return ExecutableCommand::new( "deno".to_string(), - std::env::current_exe() - .and_then(|p| canonicalize_path(&p)) - .unwrap(), + std::env::current_exe() -+ .unwrap_or_else(|_| PathBuf::from("${PREFIX}/bin/deno")), ++ .unwrap_or_else(|_| PathBuf::from("%%PREFIX%%/bin/deno")), ) .execute(ShellCommandContext { args, @@ -360,8 +359,7 @@ impl Default for DenoCommand { Self(ExecutableCommand::new( "deno".to_string(), std::env::current_exe() - .and_then(|p| canonicalize_path(&p)) - .unwrap(), -+ .unwrap_or_else(|_| PathBuf::from("${PREFIX}/bin/deno")), ++ .unwrap_or_else(|_| PathBuf::from("%%PREFIX%%/bin/deno")), )) } } @@ -413,8 +411,7 @@ impl ShellCommand for NodeCommand { ExecutableCommand::new( "deno".to_string(), std::env::current_exe() - .and_then(|p| canonicalize_path(&p)) - .unwrap(), -+ .unwrap_or_else(|_| PathBuf::from("${PREFIX}/bin/deno")), ++ .unwrap_or_else(|_| PathBuf::from("%%PREFIX%%/bin/deno")), ) .execute(ShellCommandContext { args, @@ -513,8 +510,7 @@ impl ShellCommand for NodeModulesFileRunCommand { let executable_command = deno_task_shell::ExecutableCommand::new( "deno".to_string(), std::env::current_exe() - .and_then(|p| canonicalize_path(&p)) - .unwrap(), -+ .unwrap_or_else(|_| PathBuf::from("${PREFIX}/bin/deno")), ++ .unwrap_or_else(|_| PathBuf::from("%%PREFIX%%/bin/deno")), ); // set this environment variable so that the launched process knows the npm command name context.state.apply_env_var( diff --git a/www/deno/files/patch-tests_unit__node_process__test.ts b/www/deno/files/patch-tests_unit__node_process__test.ts index c7646970148d..f3f625afdf32 100644 --- a/www/deno/files/patch-tests_unit__node_process__test.ts +++ b/www/deno/files/patch-tests_unit__node_process__test.ts @@ -1,11 +1,11 @@ --- tests/unit_node/process_test.ts.orig 2026-07-01 13:28:43 UTC +++ tests/unit_node/process_test.ts @@ -695,7 +695,7 @@ Deno.test({ listener.close(); }); - const shell = "/bin/bash"; -+ const shell = "${PREFIX}/bin/bash"; ++ const shell = "%%LOCALBASE%%/bin/bash"; const cmd = `"${Deno.execPath()}" run ${scriptPath} < /dev/tcp/127.0.0.1/9000`; const args = ["-c", cmd];