lang/deno: Update to 2.4.1

With this release, deno introduced a "tunneling" feature for "deno deploy",
which would have pulled in a dependency on dbus, a system keyring
implementation and openssl.

Rather than try and get that to build, this disables "deno deploy" on
OpenBSD for now, avoiding those dependencies.
This commit is contained in:
volker
2025-07-14 19:28:01 +00:00
parent 25292da071
commit 456f1bfd04
10 changed files with 155 additions and 21 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ DPB_PROPERTIES = parallel
USE_WXNEEDED = Yes
VERSION = 2.4.0
VERSION = 2.4.1
HOMEPAGE = https://deno.com/runtime
DISTNAME = deno-${VERSION}
+2 -2
View File
@@ -146,7 +146,7 @@ MODCARGO_CRATES += data-url 0.3.1 # MIT OR Apache-2.0
MODCARGO_CRATES += debug-ignore 1.0.5 # MIT OR Apache-2.0
MODCARGO_CRATES += debugid 0.8.0 # Apache-2.0
MODCARGO_CRATES += deno-tower-lsp-macros 0.11.3 # MIT OR Apache-2.0
MODCARGO_CRATES += deno_ast 0.48.0 # MIT
MODCARGO_CRATES += deno_ast 0.48.1 # MIT
MODCARGO_CRATES += deno_cache_dir 0.23.0 # MIT
MODCARGO_CRATES += deno_core 0.352.0 # MIT
MODCARGO_CRATES += deno_core_icudata 0.74.0 # MIT
@@ -585,7 +585,7 @@ MODCARGO_CRATES += scopeguard 1.2.0 # MIT OR Apache-2.0
MODCARGO_CRATES += scrypt 0.11.0 # MIT OR Apache-2.0
MODCARGO_CRATES += sec1 0.7.3 # Apache-2.0 OR MIT
MODCARGO_CRATES += security-framework 2.10.0 # MIT OR Apache-2.0
MODCARGO_CRATES += security-framework-sys 2.10.0 # MIT OR Apache-2.0
MODCARGO_CRATES += security-framework-sys 2.14.0 # MIT OR Apache-2.0
MODCARGO_CRATES += semver 0.9.0 # MIT/Apache-2.0
MODCARGO_CRATES += semver 1.0.25 # MIT OR Apache-2.0
MODCARGO_CRATES += semver-parser 0.7.0 # MIT/Apache-2.0
+6 -6
View File
@@ -146,7 +146,7 @@ SHA256 (cargo/data-url-0.3.1.tar.gz) = XCl6HHS3GuKd8Aw+It2VNIIdYOua9aAZKCP6Ks6nD
SHA256 (cargo/debug-ignore-1.0.5.tar.gz) = /+ftHZP0VTAD4gtimr6QheHoGxQpUg+Jf4+IYLxt/CE=
SHA256 (cargo/debugid-0.8.0.tar.gz) = vvVS5vWI5EYJj2ukDYmsFGyMe2Sq3oPAUe4Au10rwY0=
SHA256 (cargo/deno-tower-lsp-macros-0.11.3.tar.gz) = +SIbmfHMfDlWhrny1WUsWFVmapKCyNWmj6vUsdSZT6k=
SHA256 (cargo/deno_ast-0.48.0.tar.gz) = D4g72Ork38gBnZJew90EtjS2r5NGpRaKzCWdVfX1Ah0=
SHA256 (cargo/deno_ast-0.48.1.tar.gz) = DO0J/biITilxbMBpHoUQ+cZVdiu7naMRHazAou9uiWA=
SHA256 (cargo/deno_cache_dir-0.23.0.tar.gz) = eCXaBVHmcKJwo6ILkvigv/631hIPqGtk5dqpabjdGhA=
SHA256 (cargo/deno_core-0.352.0.tar.gz) = 95xJZ1pDVgaPTfrmUT9+AJfh7oVIwJimj1u/mpMzDFE=
SHA256 (cargo/deno_core_icudata-0.74.0.tar.gz) = /k3MthR7s/O6DHpI6ZO/65mdLC5HqBut7oDis3DI1pU=
@@ -585,7 +585,7 @@ SHA256 (cargo/scopeguard-1.2.0.tar.gz) = lBQ/N3JRCfksJi7Sz15ZvOdJjAG8wVAte5r+Q5p
SHA256 (cargo/scrypt-0.11.0.tar.gz) = BRajhYZsCTaPC1vNHK/zNmqs55D81G4rsDJpe7Fy/R8=
SHA256 (cargo/sec1-0.7.3.tar.gz) = 0+l6Vl92IzpgA/n1xUvh2cW9+j7M+xiUafEexJAcR9w=
SHA256 (cargo/security-framework-2.10.0.tar.gz) = dwRS43ytk+ClDVq8OZDSvDUcNtAyj4bO/sLy+yBurvY=
SHA256 (cargo/security-framework-sys-2.10.0.tar.gz) = QfPMRjwO+X4Rw0YanTeHQS0w6OfrkHx5GAxKV798BO8=
SHA256 (cargo/security-framework-sys-2.14.0.tar.gz) = SdsjHVahkEkctK7alSfxrUU0WvULCFFiKnrbjAOwHDI=
SHA256 (cargo/semver-0.9.0.tar.gz) = HX657ywYZhkCzEflNfm8UbeKzSVNpx03XC9nINmkBAM=
SHA256 (cargo/semver-1.0.25.tar.gz) = 953+LShbBIiBbzDnAKdDjFpz2Ba1t9OscvvEiw0YXgM=
SHA256 (cargo/semver-parser-0.7.0.tar.gz) = OIod8lPsoIVQvvbHI5LP58MJFL9B31Jptoy9b/j1cKM=
@@ -857,7 +857,7 @@ SHA256 (cargo/zstd-safe-7.2.4.tar.gz) = j0nE1fCrtgKpP7hzavKk9N2VEuNvf1cNZuZf+Gft
SHA256 (cargo/zstd-sys-2.0.15+zstd.1.5.7.tar.gz) = 64EYPd2X0MdM7fHVDYXI0Iwbi2juhjve6ecG7tuhojc=
SHA256 (cargo/zune-core-0.4.12.tar.gz) = P0I6LBcCmWSHDPqrsfE9+rfQkqYqKaiSZPTTaZDKQUo=
SHA256 (cargo/zune-jpeg-0.4.13.tar.gz) = FgmUGGALTY8ChiL3P/bj3qq9/zMPuaKhMd6nge6LB2g=
SHA256 (deno-2.4.0.tar.gz) = UxA5t7JzGPQm28DGuJKNll3DmhHWSUxjQu3NBaK/tPc=
SHA256 (deno-2.4.1.tar.gz) = q9N4Iw2BnuutsBzTzHfyn7jb4BNvZohmgWo6BeT5Qwg=
SIZE (cargo/Inflector-0.11.4.tar.gz) = 17438
SIZE (cargo/addr2line-0.24.2.tar.gz) = 39015
SIZE (cargo/adler-1.0.2.tar.gz) = 12778
@@ -1006,7 +1006,7 @@ SIZE (cargo/data-url-0.3.1.tar.gz) = 21109
SIZE (cargo/debug-ignore-1.0.5.tar.gz) = 12016
SIZE (cargo/debugid-0.8.0.tar.gz) = 12757
SIZE (cargo/deno-tower-lsp-macros-0.11.3.tar.gz) = 3540
SIZE (cargo/deno_ast-0.48.0.tar.gz) = 100165
SIZE (cargo/deno_ast-0.48.1.tar.gz) = 94209
SIZE (cargo/deno_cache_dir-0.23.0.tar.gz) = 46696
SIZE (cargo/deno_core-0.352.0.tar.gz) = 303319
SIZE (cargo/deno_core_icudata-0.74.0.tar.gz) = 4581089
@@ -1445,7 +1445,7 @@ SIZE (cargo/scopeguard-1.2.0.tar.gz) = 11619
SIZE (cargo/scrypt-0.11.0.tar.gz) = 13440
SIZE (cargo/sec1-0.7.3.tar.gz) = 17979
SIZE (cargo/security-framework-2.10.0.tar.gz) = 79723
SIZE (cargo/security-framework-sys-2.10.0.tar.gz) = 18676
SIZE (cargo/security-framework-sys-2.14.0.tar.gz) = 20537
SIZE (cargo/semver-0.9.0.tar.gz) = 17344
SIZE (cargo/semver-1.0.25.tar.gz) = 31291
SIZE (cargo/semver-parser-0.7.0.tar.gz) = 10268
@@ -1717,4 +1717,4 @@ SIZE (cargo/zstd-safe-7.2.4.tar.gz) = 29350
SIZE (cargo/zstd-sys-2.0.15+zstd.1.5.7.tar.gz) = 774847
SIZE (cargo/zune-core-0.4.12.tar.gz) = 17355
SIZE (cargo/zune-jpeg-0.4.13.tar.gz) = 62999
SIZE (deno-2.4.0.tar.gz) = 35325819
SIZE (deno-2.4.1.tar.gz) = 35343638
+8
View File
@@ -22,3 +22,11 @@ Index: cli/Cargo.toml
[build-dependencies]
deno_runtime = { workspace = true, features = ["include_js_files_for_snapshotting", "only_snapshotted_js_sources"] }
@@ -135,7 +135,6 @@ indexmap.workspace = true
jsonc-parser = { workspace = true, features = ["cst", "serde"] }
jupyter-protocol = "0.8.0"
jupyter_runtime = { package = "runtimelib", version = "=0.28.0", default-features = false, features = ["tokio-runtime", "aws-lc-rs"] }
-keyring = { version = "4.0.0-rc.1", features = ["vendored"] }
lazy-regex.workspace = true
libc.workspace = true
libz-sys.workspace = true
+39 -1
View File
@@ -4,7 +4,21 @@ In addition, disable the generation of a stacktrace URL
Index: cli/main.rs
--- cli/main.rs.orig
+++ cli/main.rs
@@ -462,7 +462,7 @@ pub fn main() {
@@ -135,9 +135,10 @@ async fn run_subcommand(
);
tools::bundle::bundle(flags, bundle_flags).await
}),
- DenoSubcommand::Deploy => spawn_subcommand(async {
- tools::deploy::deploy(Arc::unwrap_or_clone(flags)).await
- }),
+ DenoSubcommand::Deploy => exit_with_message(
+ "Deno Deploy is currently not supported on OpenBSD.",
+ 1,
+ ),
DenoSubcommand::Doc(doc_flags) => {
spawn_subcommand(async { tools::doc::doc(flags, doc_flags).await })
}
@@ -524,7 +525,7 @@ pub fn main() {
#[cfg(feature = "dhat-heap")]
let profiler = dhat::Profiler::new_heap();
@@ -13,3 +27,27 @@ Index: cli/main.rs
util::unix::raise_fd_limit();
util::windows::ensure_stdio_open();
@@ -624,6 +625,7 @@ async fn resolve_flags_and_init(
// Tunnel is initialized before OTEL since
// OTEL data is submitted via the tunnel.
+ #[cfg(not(target_os="openbsd"))]
if let Some(host) = flags
.connected
.clone()
@@ -834,6 +836,7 @@ fn wait_for_start(
})
}
+#[cfg(not(target_os="openbsd"))]
async fn auth_tunnel() -> Result<String, deno_core::anyhow::Error> {
let mut child = tokio::process::Command::new(env::current_exe()?)
.args(["deploy", "tunnel-login"])
@@ -848,6 +851,7 @@ async fn auth_tunnel() -> Result<String, deno_core::an
}
#[allow(clippy::print_stderr)]
+#[cfg(not(target_os="openbsd"))]
async fn initialize_tunnel(
host: &str,
flags: &Flags,
+49
View File
@@ -0,0 +1,49 @@
Index: cli/ops/deploy.rs
--- cli/ops/deploy.rs.orig
+++ cli/ops/deploy.rs
@@ -2,45 +2,3 @@
use deno_core::op2;
use deno_error::JsErrorBox;
-
-use crate::tools::deploy::get_token_entry;
-
-deno_core::extension!(
- deno_deploy,
- ops = [
- op_deploy_token_get,
- op_deploy_token_set,
- op_deploy_token_delete,
- ],
-);
-
-#[op2]
-#[string]
-pub fn op_deploy_token_get() -> Result<Option<String>, JsErrorBox> {
- match get_token_entry()
- .map_err(|e| JsErrorBox::type_error(e.to_string()))?
- .get_password()
- {
- Ok(password) => Ok(Some(password)),
- Err(keyring::Error::NoEntry) => Ok(None),
- Err(e) => Err(JsErrorBox::type_error(e.to_string())),
- }
-}
-
-#[op2(fast)]
-#[string]
-pub fn op_deploy_token_set(#[string] s: &str) -> Result<(), JsErrorBox> {
- get_token_entry()
- .map_err(|e| JsErrorBox::type_error(e.to_string()))?
- .set_password(s)
- .map_err(|e| JsErrorBox::type_error(e.to_string()))
-}
-
-#[op2(fast)]
-#[string]
-pub fn op_deploy_token_delete() -> Result<(), JsErrorBox> {
- get_token_entry()
- .map_err(|e| JsErrorBox::type_error(e.to_string()))?
- .delete_credential()
- .map_err(|e| JsErrorBox::type_error(e.to_string()))
-}
+2 -2
View File
@@ -34,7 +34,7 @@ Index: cli/task_runner.rs
}
}
@@ -393,7 +398,8 @@ impl ShellCommand for NpmPackageBinCommand {
@@ -399,7 +404,8 @@ impl ShellCommand for NpmPackageBinCommand {
args.extend(context.args);
let executable_command = deno_task_shell::ExecutableCommand::new(
"deno".to_string(),
@@ -44,7 +44,7 @@ Index: cli/task_runner.rs
);
executable_command.execute(ShellCommandContext { args, ..context })
}
@@ -420,7 +426,8 @@ impl ShellCommand for NodeModulesFileRunCommand {
@@ -426,7 +432,8 @@ impl ShellCommand for NodeModulesFileRunCommand {
args.extend(context.args);
let executable_command = deno_task_shell::ExecutableCommand::new(
"deno".to_string(),
@@ -0,0 +1,29 @@
Index: cli/tools/deploy.rs
--- cli/tools/deploy.rs.orig
+++ cli/tools/deploy.rs
@@ -63,23 +63,10 @@ pub async fn deploy(mut flags: Flags) -> Result<i32, A
.map_err(ResolveUrlOrPathError::UrlParse)?
};
- let mut worker = worker_factory
- .create_custom_worker(
- WorkerExecutionMode::Deploy,
- specifier,
- vec![],
- PermissionsContainer::allow_all(
- factory.permission_desc_parser()?.clone(),
- ),
- vec![ops::deploy::deno_deploy::init()],
- Default::default(),
- None,
- )
- .await?;
-
- Ok(worker.run().await?)
+ Ok(0)
}
+#[cfg(not(target_os="openbsd"))]
pub fn get_token_entry() -> Result<keyring::Entry, keyring::Error> {
keyring::Entry::new("Deno Deploy Token", "Deno Deploy")
}
+5 -9
View File
@@ -1,25 +1,21 @@
Index: ext/os/lib.rs
--- ext/os/lib.rs.orig
+++ ext/os/lib.rs
@@ -3,10 +3,10 @@
@@ -3,6 +3,7 @@
use std::collections::HashMap;
use std::collections::HashSet;
use std::env;
+use std::path::PathBuf;
use std::sync::Arc;
use std::sync::atomic::AtomicI32;
use std::sync::atomic::Ordering;
use std::sync::Arc;
-
use deno_core::op2;
use deno_core::v8;
use deno_core::OpState;
@@ -116,7 +116,8 @@ pub enum OsError {
@@ -116,7 +117,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"));
+ 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(current_exe);
@@ -0,0 +1,14 @@
Index: runtime/js/99_main.js
--- runtime/js/99_main.js.orig
+++ runtime/js/99_main.js
@@ -717,10 +717,6 @@ const NOT_IMPORTED_OPS = [
"op_set_exit_code",
"op_napi_open",
- // deno deploy subcommand
- "op_deploy_token_get",
- "op_deploy_token_set",
- "op_deploy_token_delete",
];
function removeImportedOps() {