From: Volker Schlecht Subject: Re: lang/deno: drop current_exe() workaround To: ports@openbsd.org, "Kirill A. Korinsky" Date: Sun, 6 Sep 2026 17:32:27 +0200 Since you beat me to it, ok volker@ :-) On 9/5/26 8:08 PM, Kirill A. Korinsky wrote: > 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 { > -- 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)); > - > >