Index | Thread | Search

From:
Volker Schlecht <openbsd-ports@schlecht.dev>
Subject:
Re: lang/deno: drop current_exe() workaround
To:
ports@openbsd.org, "Kirill A. Korinsky" <kirill@korins.ky>
Date:
Sun, 6 Sep 2026 17:32:27 +0200

Download raw body.

Thread
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<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));
> -
> 
>