Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
lang/deno: drop current_exe() workaround
To:
Volker Schlecht <volker@openbsd.org>
Cc:
OpenBSD ports <ports@openbsd.org>
Date:
Sat, 05 Sep 2026 20:08:30 +0200

Download raw body.

Thread
Volker,

here a diff to drop workaround for current_exe()

It was tested and seems works.

Ok?

Index: Makefile
===================================================================
RCS file: /home/cvs/ports/lang/deno/Makefile,v
diff -u -p -r1.70 Makefile
--- Makefile	30 Aug 2026 13:13:41 -0000	1.70
+++ Makefile	5 Sep 2026 17:06:46 -0000
@@ -10,6 +10,7 @@ USE_WXNEEDED =		Yes
 COMMENT =		runtime for JavaScript and TypeScript
 
 V =			2.9.6
+REVISION =		0
 DIST_TUPLE =		github denoland deno v${V} .
 
 HOMEPAGE =		https://deno.com
@@ -94,10 +95,6 @@ SUBST_VARS +=		WRKBUILD WRKSRC
 post-patch:
 	mkdir -p ${V8_BPGO_DIR}/{x64.profile,arm64.profile}
 	${SUBST_CMD} ${V8_DISTDIR}/v8/tools/run.py
-	cd ${WRKSRC} && ${SUBST_CMD} \
-	    cli/task_runner.rs \
-	    cli/tools/jupyter/install.rs \
-	    ext/os/lib.rs
 	cp ${WRKSRC}/ext/napi/generated_symbol_exports_list_linux.def \
 	    ${WRKSRC}/ext/napi/generated_symbol_exports_list_openbsd.def
 	mkdir ${V8_DISTDIR}/third_party/icu/common
Index: patches/patch-cli_task_runner_rs
===================================================================
RCS file: patches/patch-cli_task_runner_rs
diff -N patches/patch-cli_task_runner_rs
--- patches/patch-cli_task_runner_rs	10 Jun 2026 21:37:13 -0000	1.14
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
-Index: cli/task_runner.rs
---- cli/task_runner.rs.orig
-+++ cli/task_runner.rs
-@@ -329,8 +329,7 @@ impl ShellCommand for NpmCommand {
-       return ExecutableCommand::new(
-         "deno".to_string(),
-         std::env::current_exe()
--          .and_then(|p| canonicalize_path(&p))
--          .unwrap(),
-+          .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")),
-     ))
-   }
- }
-@@ -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")),
-     )
-     .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")),
-     );
-     // set this environment variable so that the launched process knows the npm command name
-     context.state.apply_env_var(
Index: patches/patch-cli_tools_jupyter_install_rs
===================================================================
RCS file: patches/patch-cli_tools_jupyter_install_rs
diff -N patches/patch-cli_tools_jupyter_install_rs
--- patches/patch-cli_tools_jupyter_install_rs	10 Jun 2026 21:37:13 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
-Index: cli/tools/jupyter/install.rs
---- cli/tools/jupyter/install.rs.orig
-+++ cli/tools/jupyter/install.rs
-@@ -156,12 +156,11 @@ pub fn install(
-   }
- 
-   let display_name = maybe_display_name.unwrap_or("Deno");
--  let current_exe_path = kernel_exe_path()?.to_string_lossy().into_owned();
- 
-   // TODO(bartlomieju): add remaining fields as per
-   // https://jupyter-client.readthedocs.io/en/stable/kernels.html#kernel-specs
-   let json_data = json!({
--      "argv": [current_exe_path, "jupyter", "--kernel", "--conn", "{connection_file}"],
-+      "argv": ["${PREFIX}/bin/deno", "jupyter", "--kernel", "--conn", "{connection_file}"],
-       "display_name": display_name,
-       "language": "typescript",
-   });
Index: patches/patch-ext_os_lib_rs
===================================================================
RCS file: patches/patch-ext_os_lib_rs
diff -N patches/patch-ext_os_lib_rs
--- patches/patch-ext_os_lib_rs	30 Aug 2026 13:13:43 -0000	1.13
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-Index: ext/os/lib.rs
---- ext/os/lib.rs.orig
-+++ ext/os/lib.rs
-@@ -5,6 +5,7 @@ use std::collections::HashMap;
- use std::env;
- use std::ffi::OsString;
- use std::ops::ControlFlow;
-+use std::path::PathBuf;
- use std::sync::Arc;
- use std::sync::LazyLock;
- use std::sync::Mutex;
-@@ -152,7 +153,8 @@ pub enum OsError {
- #[op2]
- #[string]
- fn op_exec_path() -> Result<String, OsError> {
--  let current_exe = env::current_exe().unwrap();
-+  let current_exe =
-+    env::current_exe().unwrap_or_else(|_| PathBuf::from("${PREFIX}/bin/deno"));
-   // normalize path so it doesn't include '.' or '..' components
-   let path = normalize_path(Cow::Owned(current_exe));
- 


-- 
wbr, Kirill