Skip site navigation (1)Skip section navigation (2)


| raw e-mail | index | archive | help

diff --git a/misc/codex/Makefile b/misc/codex/Makefile
index 8a4d9d2cb14d..f458a1ae8428 100644
--- a/misc/codex/Makefile
+++ b/misc/codex/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	codex
 DISTVERSIONPREFIX=	rust-v
-DISTVERSION=	0.58.0
+DISTVERSION=	0.63.0
 CATEGORIES=	misc devel
 
 MAINTAINER=	tagattie@FreeBSD.org
@@ -11,7 +11,8 @@ WWW=		https://openai.com/codex \
 LICENSE=	APACHE20
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-LIB_DEPENDS=	libonig.so:devel/oniguruma
+LIB_DEPENDS=	libdbus-1.so:devel/dbus \
+		libonig.so:devel/oniguruma
 RUN_DEPENDS=	bash:shells/bash \
 		rg:textproc/ripgrep
 TEST_DEPENDS=	bash:shells/bash
@@ -25,7 +26,7 @@ CARGO_CARGOTOML=	${BUILD_WRKSRC}/Cargo.toml
 CARGO_CARGOLOCK=	${BUILD_WRKSRC}/Cargo.lock
 CARGO_BUILD_ARGS=	--bin ${PORTNAME}
 CARGO_INSTALL_PATH=	codex-rs
-CARGO_TEST_ARGS=	--all-features
+CARGO_TEST_ARGS=	--all-features --no-fail-fast
 CARGO_ENV=		OPENSSL_NO_VENDOR=1
 
 BUILD_WRKSRC=	${WRKSRC}/codex-rs
@@ -54,10 +55,7 @@ post-patch:
 		${BUILD_WRKSRC}/core/src/tools/handlers/shell.rs \
 		${BUILD_WRKSRC}/core/src/tools/handlers/unified_exec.rs \
 		${BUILD_WRKSRC}/core/src/tools/spec.rs \
-		${BUILD_WRKSRC}/core/src/unified_exec/mod.rs \
-		${BUILD_WRKSRC}/core/tests/suite/approvals.rs \
 		${BUILD_WRKSRC}/core/tests/suite/exec.rs \
-		${BUILD_WRKSRC}/core/tests/suite/shell_serialization.rs \
 		${BUILD_WRKSRC}/core/tests/suite/unified_exec.rs \
 		${BUILD_WRKSRC}/core/tests/suite/user_notification.rs \
 		${BUILD_WRKSRC}/tui/src/exec_command.rs
diff --git a/misc/codex/Makefile.crates b/misc/codex/Makefile.crates
index 7299c072b18c..99d087e3dd7a 100644
--- a/misc/codex/Makefile.crates
+++ b/misc/codex/Makefile.crates
@@ -68,6 +68,7 @@ CARGO_CRATES=	Inflector-0.11.4 \
 		cfg-if-1.0.1 \
 		cfg_aliases-0.1.1 \
 		cfg_aliases-0.2.1 \
+		chardetng-0.1.17 \
 		chrono-0.4.42 \
 		chunked_transfer-1.5.0 \
 		cipher-0.4.4 \
@@ -160,7 +161,6 @@ CARGO_CRATES=	Inflector-0.11.4 \
 		event-listener-strategy-0.5.4 \
 		eventsource-stream-0.2.3 \
 		eyre-0.6.12 \
-		fancy-regex-0.13.0 \
 		fastrand-2.3.0 \
 		fax-0.2.6 \
 		fax_derive-0.2.0 \
@@ -416,7 +416,6 @@ CARGO_CRATES=	Inflector-0.11.4 \
 		rmcp-0.8.5 \
 		rmcp-macros-0.8.5 \
 		rustc-demangle-0.1.25 \
-		rustc-hash-1.1.0 \
 		rustc-hash-2.1.1 \
 		rustc_version-0.4.1 \
 		rustix-0.38.44 \
@@ -517,6 +516,9 @@ CARGO_CRATES=	Inflector-0.11.4 \
 		termcolor-1.4.1 \
 		terminal_size-0.4.2 \
 		termtree-0.5.1 \
+		test-case-3.3.1 \
+		test-case-core-3.3.1 \
+		test-case-macros-3.3.1 \
 		test-log-0.2.18 \
 		test-log-macros-0.2.18 \
 		textwrap-0.11.0 \
@@ -527,7 +529,6 @@ CARGO_CRATES=	Inflector-0.11.4 \
 		thiserror-impl-2.0.17 \
 		thread_local-1.1.9 \
 		tiff-0.10.3 \
-		tiktoken-rs-0.7.0 \
 		time-0.3.44 \
 		time-core-0.1.6 \
 		time-macros-0.2.24 \
diff --git a/misc/codex/distinfo b/misc/codex/distinfo
index ac16a17d780a..409ec075b4a9 100644
--- a/misc/codex/distinfo
+++ b/misc/codex/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1763082346
+TIMESTAMP = 1764057844
 SHA256 (rust/crates/Inflector-0.11.4.crate) = fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3
 SIZE (rust/crates/Inflector-0.11.4.crate) = 17438
 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
@@ -139,6 +139,8 @@ SHA256 (rust/crates/cfg_aliases-0.1.1.crate) = fd16c4719339c4530435d38e511904438
 SIZE (rust/crates/cfg_aliases-0.1.1.crate) = 6009
 SHA256 (rust/crates/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724
 SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355
+SHA256 (rust/crates/chardetng-0.1.17.crate) = 14b8f0b65b7b08ae3c8187e8d77174de20cb6777864c6b832d8ad365999cf1ea
+SIZE (rust/crates/chardetng-0.1.17.crate) = 56362
 SHA256 (rust/crates/chrono-0.4.42.crate) = 145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2
 SIZE (rust/crates/chrono-0.4.42.crate) = 238174
 SHA256 (rust/crates/chunked_transfer-1.5.0.crate) = 6e4de3bc4ea267985becf712dc6d9eed8b04c953b3fcfb339ebc87acd9804901
@@ -323,8 +325,6 @@ SHA256 (rust/crates/eventsource-stream-0.2.3.crate) = 74fef4569247a5f429d9156b9d
 SIZE (rust/crates/eventsource-stream-0.2.3.crate) = 15033
 SHA256 (rust/crates/eyre-0.6.12.crate) = 7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec
 SIZE (rust/crates/eyre-0.6.12.crate) = 45330
-SHA256 (rust/crates/fancy-regex-0.13.0.crate) = 531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2
-SIZE (rust/crates/fancy-regex-0.13.0.crate) = 85930
 SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be
 SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
 SHA256 (rust/crates/fax-0.2.6.crate) = f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab
@@ -835,8 +835,6 @@ SHA256 (rust/crates/rmcp-macros-0.8.5.crate) = 01263441d3f8635c628e33856c468b96e
 SIZE (rust/crates/rmcp-macros-0.8.5.crate) = 13454
 SHA256 (rust/crates/rustc-demangle-0.1.25.crate) = 989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f
 SIZE (rust/crates/rustc-demangle-0.1.25.crate) = 29590
-SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
-SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
 SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d
 SIZE (rust/crates/rustc-hash-2.1.1.crate) = 14154
 SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92
@@ -1037,6 +1035,12 @@ SHA256 (rust/crates/terminal_size-0.4.2.crate) = 45c6481c4829e4cc63825e62c49186a
 SIZE (rust/crates/terminal_size-0.4.2.crate) = 9976
 SHA256 (rust/crates/termtree-0.5.1.crate) = 8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683
 SIZE (rust/crates/termtree-0.5.1.crate) = 8498
+SHA256 (rust/crates/test-case-3.3.1.crate) = eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8
+SIZE (rust/crates/test-case-3.3.1.crate) = 8797
+SHA256 (rust/crates/test-case-core-3.3.1.crate) = adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f
+SIZE (rust/crates/test-case-core-3.3.1.crate) = 14327
+SHA256 (rust/crates/test-case-macros-3.3.1.crate) = 5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb
+SIZE (rust/crates/test-case-macros-3.3.1.crate) = 4961
 SHA256 (rust/crates/test-log-0.2.18.crate) = 1e33b98a582ea0be1168eba097538ee8dd4bbe0f2b01b22ac92ea30054e5be7b
 SIZE (rust/crates/test-log-0.2.18.crate) = 16138
 SHA256 (rust/crates/test-log-macros-0.2.18.crate) = 451b374529930d7601b1eef8d32bc79ae870b6079b069401709c2a8bf9e75f36
@@ -1057,8 +1061,6 @@ SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb78
 SIZE (rust/crates/thread_local-1.1.9.crate) = 19315
 SHA256 (rust/crates/tiff-0.10.3.crate) = af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f
 SIZE (rust/crates/tiff-0.10.3.crate) = 1444592
-SHA256 (rust/crates/tiktoken-rs-0.7.0.crate) = 25563eeba904d770acf527e8b370fe9a5547bacd20ff84a0b6c3bc41288e5625
-SIZE (rust/crates/tiktoken-rs-0.7.0.crate) = 3792064
 SHA256 (rust/crates/time-0.3.44.crate) = 91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d
 SIZE (rust/crates/time-0.3.44.crate) = 143200
 SHA256 (rust/crates/time-core-0.1.6.crate) = 40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b
@@ -1415,5 +1417,5 @@ SHA256 (nornagon-ratatui-9b2ad1298408c45918ee9f8241a6f95498cdbed2_GH0.tar.gz) =
 SIZE (nornagon-ratatui-9b2ad1298408c45918ee9f8241a6f95498cdbed2_GH0.tar.gz) = 566574
 SHA256 (nornagon-crossterm-87db8bfa6dc99427fd3b071681b07fc31c6ce995_GH0.tar.gz) = b49ac342e6b5d9c015f5384690c2a61d6f31c0c3c34aaf1cc22be4956122294c
 SIZE (nornagon-crossterm-87db8bfa6dc99427fd3b071681b07fc31c6ce995_GH0.tar.gz) = 129254
-SHA256 (openai-codex-rust-v0.58.0_GH0.tar.gz) = 903f0cec30f81234f09796e83260b560436c2341085dc417640e3fd96af9bfb2
-SIZE (openai-codex-rust-v0.58.0_GH0.tar.gz) = 27952941
+SHA256 (openai-codex-rust-v0.63.0_GH0.tar.gz) = 895787648e47829a6797c2ba94c38658d7babad96c3fc111c63cba5c7d34bab8
+SIZE (openai-codex-rust-v0.63.0_GH0.tar.gz) = 27829732
diff --git a/misc/codex/files/patch-codex-rs_core_Cargo.toml b/misc/codex/files/patch-codex-rs_core_Cargo.toml
deleted file mode 100644
index 2cf9853774d1..000000000000
--- a/misc/codex/files/patch-codex-rs_core_Cargo.toml
+++ /dev/null
@@ -1,13 +0,0 @@
---- codex-rs/core/Cargo.toml.orig	2025-11-13 17:39:01 UTC
-+++ codex-rs/core/Cargo.toml
-@@ -43,8 +43,9 @@ keyring = { workspace = true, features = [
- keyring = { workspace = true, features = [
-     "apple-native",
-     "crypto-rust",
--    "linux-native-async-persistent",
-+    "linux-native",
-     "windows-native",
-+    "async-secret-service",
- ] }
- libc = { workspace = true }
- mcp-types = { workspace = true }
diff --git a/misc/codex/files/patch-codex-rs_core_tests_suite_shell__serialization.rs b/misc/codex/files/patch-codex-rs_core_tests_suite_shell__serialization.rs
deleted file mode 100644
index 9ec48d377f72..000000000000
--- a/misc/codex/files/patch-codex-rs_core_tests_suite_shell__serialization.rs
+++ /dev/null
@@ -1,12 +0,0 @@
---- codex-rs/core/tests/suite/shell_serialization.rs.orig	2025-11-04 20:00:53 UTC
-+++ codex-rs/core/tests/suite/shell_serialization.rs
-@@ -398,6 +398,9 @@ async fn shell_output_for_freeform_tool_records_durati
-     #[cfg(target_os = "linux")]
-     let sleep_cmd = vec!["/bin/bash", "-c", "sleep 1"];
- 
-+    #[cfg(target_os = "freebsd")]
-+    let sleep_cmd = vec!["/bin/bash", "-c", "sleep 1"];
-+
-     #[cfg(target_os = "macos")]
-     let sleep_cmd = vec!["/bin/bash", "-c", "sleep 1"];
- 
diff --git a/misc/codex/files/patch-codex-rs_exec_tests_suite_mod.rs b/misc/codex/files/patch-codex-rs_exec_tests_suite_mod.rs
index dc82a744793b..156e4a3c7ad8 100644
--- a/misc/codex/files/patch-codex-rs_exec_tests_suite_mod.rs
+++ b/misc/codex/files/patch-codex-rs_exec_tests_suite_mod.rs
@@ -1,6 +1,6 @@
---- codex-rs/exec/tests/suite/mod.rs.orig	2025-10-25 21:16:34 UTC
+--- codex-rs/exec/tests/suite/mod.rs.orig	2025-11-21 18:00:38 UTC
 +++ codex-rs/exec/tests/suite/mod.rs
-@@ -4,5 +4,6 @@ mod resume;
+@@ -5,5 +5,6 @@ mod resume;
  mod originator;
  mod output_schema;
  mod resume;
diff --git a/misc/codex/files/patch-codex-rs_keyring-store_Cargo.toml b/misc/codex/files/patch-codex-rs_keyring-store_Cargo.toml
deleted file mode 100644
index 73145a2243ad..000000000000
--- a/misc/codex/files/patch-codex-rs_keyring-store_Cargo.toml
+++ /dev/null
@@ -1,12 +0,0 @@
---- codex-rs/keyring-store/Cargo.toml.orig	2025-10-31 00:56:28 UTC
-+++ codex-rs/keyring-store/Cargo.toml
-@@ -10,7 +10,8 @@ keyring = { workspace = true, features = [
- keyring = { workspace = true, features = [
-     "apple-native",
-     "crypto-rust",
--    "linux-native-async-persistent",
-+    "linux-native",
-     "windows-native",
-+    "async-secret-service",
- ] }
- tracing = { workspace = true }
diff --git a/misc/codex/files/patch-codex-rs_process-hardening_Cargo.toml b/misc/codex/files/patch-codex-rs_process-hardening_Cargo.toml
deleted file mode 100644
index d10fb15bb2a6..000000000000
--- a/misc/codex/files/patch-codex-rs_process-hardening_Cargo.toml
+++ /dev/null
@@ -1,9 +0,0 @@
---- codex-rs/process-hardening/Cargo.toml.orig	2025-10-06 07:49:12 UTC
-+++ codex-rs/process-hardening/Cargo.toml
-@@ -19,3 +19,6 @@ libc = { workspace = true }
- 
- [target.'cfg(target_os = "macos")'.dependencies]
- libc = { workspace = true }
-+
-+[target.'cfg(target_os = "freebsd")'.dependencies]
-+libc = { workspace = true }
diff --git a/misc/codex/files/patch-codex-rs_process-hardening_src_lib.rs b/misc/codex/files/patch-codex-rs_process-hardening_src_lib.rs
deleted file mode 100644
index 6805a52575ea..000000000000
--- a/misc/codex/files/patch-codex-rs_process-hardening_src_lib.rs
+++ /dev/null
@@ -1,70 +0,0 @@
---- codex-rs/process-hardening/src/lib.rs.orig	2025-10-03 16:43:33 UTC
-+++ codex-rs/process-hardening/src/lib.rs
-@@ -10,6 +10,9 @@ pub fn pre_main_hardening() {
-     #[cfg(target_os = "macos")]
-     pre_main_hardening_macos();
- 
-+    #[cfg(target_os = "freebsd")]
-+    pre_main_hardening_freebsd();
-+
-     #[cfg(windows)]
-     pre_main_hardening_windows();
- }
-@@ -20,9 +23,12 @@ const PTRACE_DENY_ATTACH_FAILED_EXIT_CODE: i32 = 6;
- #[cfg(target_os = "macos")]
- const PTRACE_DENY_ATTACH_FAILED_EXIT_CODE: i32 = 6;
- 
--#[cfg(any(target_os = "linux", target_os = "android", target_os = "macos"))]
-+#[cfg(any(target_os = "linux", target_os = "android", target_os = "macos", target_os = "freebsd"))]
- const SET_RLIMIT_CORE_FAILED_EXIT_CODE: i32 = 7;
- 
-+#[cfg(target_os = "freebsd")]
-+const PROCCTL_PROC_TRACE_CTL_FAILED_EXIT_CODE: i32 = 8;
-+
- #[cfg(any(target_os = "linux", target_os = "android"))]
- pub(crate) fn pre_main_hardening_linux() {
-     // Disable ptrace attach / mark process non-dumpable.
-@@ -85,6 +91,43 @@ pub(crate) fn pre_main_hardening_macos() {
-         .collect();
- 
-     for key in dyld_keys {
-+        unsafe {
-+            std::env::remove_var(key);
-+        }
-+    }
-+}
-+
-+#[cfg(target_os = "freebsd")]
-+pub(crate) fn pre_main_hardening_freebsd() {
-+    // Prevent debuggers from attaching to this process
-+    let mut arg = libc::PROC_TRACE_CTL_DISABLE_EXEC;
-+    let ret_code = unsafe {
-+        libc::procctl(libc::P_PID, 0, libc::PROC_TRACE_CTL, &mut arg as *mut _ as *mut libc::c_void)
-+    };
-+    if ret_code == -1 {
-+        eprintln!(
-+            "ERROR: procctl(PROC_TRACE_CTL) failed: {}",
-+            std::io::Error::last_os_error()
-+        );
-+        std::process::exit(PROCCTL_PROC_TRACE_CTL_FAILED_EXIT_CODE);
-+    }
-+
-+    // Set the core file size limit to 0 to prevent core dumps.
-+    set_core_file_size_limit_to_zero();
-+
-+    // Remove all LD_ environment variables, which can be used to subvert
-+    // library loading.
-+    let ld_keys: Vec<String> = std::env::vars()
-+        .filter_map(|(key, _)| {
-+            if key.starts_with("LD_") {
-+                Some(key)
-+            } else {
-+                None
-+            }
-+        })
-+        .collect();
-+
-+    for key in ld_keys {
-         unsafe {
-             std::env::remove_var(key);
-         }
diff --git a/misc/codex/files/patch-codex-rs_rmcp-client_Cargo.toml b/misc/codex/files/patch-codex-rs_rmcp-client_Cargo.toml
deleted file mode 100644
index 4008647d9da1..000000000000
--- a/misc/codex/files/patch-codex-rs_rmcp-client_Cargo.toml
+++ /dev/null
@@ -1,13 +0,0 @@
---- codex-rs/rmcp-client/Cargo.toml.orig	2025-10-31 00:56:28 UTC
-+++ codex-rs/rmcp-client/Cargo.toml
-@@ -19,8 +19,9 @@ keyring = { workspace = true, features = [
- keyring = { workspace = true, features = [
-     "apple-native",
-     "crypto-rust",
--    "linux-native-async-persistent",
-+    "linux-native",
-     "windows-native",
-+    "async-secret-service",
- ] }
- mcp-types = { path = "../mcp-types" }
- oauth2 = "5"