1PORTNAME= codex 2DISTVERSIONPREFIX= rust-v 3DISTVERSION= 0.131.0 4CATEGORIES= misc devel 5 6MAINTAINER= ports@MidnightBSD.org 7COMMENT= Lightweight coding agent that runs in your terminal 8WWW= https://openai.com/codex \ 9 https://github.com/openai/codex 10 11LICENSE= Apache-2.0 12LICENSE_FILE= ${WRKSRC}/LICENSE 13 14BUILD_DEPENDS= gn:devel/gn 15LIB_DEPENDS= libzstd.so:archivers/zstd \ 16 libasound.so:audio/alsa-lib \ 17 libdbus-1.so:devel/dbus \ 18 libonig.so:devel/oniguruma 19RUN_DEPENDS= bash:shells/bash \ 20 rg:textproc/ripgrep 21TEST_DEPENDS= bash:shells/bash 22 23USES= cargo llvm:min=19 ninja:build python:test shebangfix ssl 24 25BROKEN_i386= fails to build: rustc-LLVM ERROR: out of memory 26 27MAKE_JOBS_UNSAFE= yes 28WITHOUT_LTO= yes 29 30USE_GITHUB= yes 31GH_ACCOUNT= openai 32 33SHEBANG_FILES= codex-rs/skills/src/assets/samples/imagegen/scripts/image_gen.py \ 34 codex-rs/skills/src/assets/samples/imagegen/scripts/remove_chroma_key.py \ 35 codex-rs/skills/src/assets/samples/plugin-creator/scripts/create_basic_plugin.py \ 36 codex-rs/skills/src/assets/samples/skill-creator/scripts/generate_openai_yaml.py \ 37 codex-rs/skills/src/assets/samples/skill-creator/scripts/init_skill.py \ 38 codex-rs/skills/src/assets/samples/skill-creator/scripts/quick_validate.py \ 39 codex-rs/skills/src/assets/samples/skill-installer/scripts/github_utils.py \ 40 codex-rs/skills/src/assets/samples/skill-installer/scripts/install-skill-from-github.py \ 41 codex-rs/skills/src/assets/samples/skill-installer/scripts/list-skills.py \ 42 codex-rs/vendor/bubblewrap/demos/userns-block-fd.py \ 43 codex-rs/vendor/bubblewrap/tests/test-seccomp.py \ 44 codex-rs/vendor/bubblewrap/tests/use-as-subproject/assert-correct-rpath.py 45 46CARGO_CARGOTOML= ${BUILD_WRKSRC}/Cargo.toml 47CARGO_CARGOLOCK= ${BUILD_WRKSRC}/Cargo.lock 48CARGO_BUILD_ARGS= --bin ${PORTNAME} 49CARGO_INSTALL_PATH= codex-rs 50CODEX_TEST_ARGS= --workspace --exclude codex-v8-poc --no-fail-fast 51CARGO_ENV= OPENSSL_NO_VENDOR=1 \ 52 CARGO_PROFILE_RELEASE_CODEGEN_UNITS=16 \ 53 CARGO_PROFILE_RELEASE_LTO=false \ 54 V8_FROM_SOURCE=1 \ 55 GN=${LOCALBASE}/bin/gn \ 56 NINJA=${NINJA_CMD} \ 57 CLANG_BASE_PATH=/usr 58 59BINARY_ALIAS= python3=${PYTHON_CMD} 60 61BUILD_WRKSRC= ${WRKSRC}/codex-rs 62 63PLIST_FILES= bin/${PORTNAME} 64PORTDOCS= README.md config.md 65 66OPTIONS_DEFINE= COMPLETIONS DOCS 67OPTIONS_DEFAULT= COMPLETIONS 68 69COMPLETIONS_DESC= Build and/or install shell completions 70 71COMPLETIONS_PLIST_FILES=etc/bash_completion.d/${PORTNAME} \ 72 share/fish/completions/${PORTNAME}.fish \ 73 share/zsh/site-functions/_${PORTNAME} 74 75post-patch: 76 @${REINPLACE_CMD} -e 's|/bin/bash|${LOCALBASE}&|' \ 77 ${BUILD_WRKSRC}/cli/src/debug_sandbox/pid_tracker.rs \ 78 ${BUILD_WRKSRC}/core/src/command_canonicalization.rs \ 79 ${BUILD_WRKSRC}/core/src/command_canonicalization_tests.rs \ 80 ${BUILD_WRKSRC}/core/src/context/environment_context_tests.rs \ 81 ${BUILD_WRKSRC}/core/src/exec_policy.rs \ 82 ${BUILD_WRKSRC}/core/src/exec_policy_tests.rs \ 83 ${BUILD_WRKSRC}/core/src/exec_tests.rs \ 84 ${BUILD_WRKSRC}/core/src/shell.rs \ 85 ${BUILD_WRKSRC}/core/src/shell_snapshot_tests.rs \ 86 ${BUILD_WRKSRC}/core/src/shell_tests.rs \ 87 ${BUILD_WRKSRC}/core/src/tools/handlers/shell_tests.rs \ 88 ${BUILD_WRKSRC}/core/src/tools/handlers/unified_exec_tests.rs \ 89 ${BUILD_WRKSRC}/core/src/tools/runtimes/mod.rs \ 90 ${BUILD_WRKSRC}/core/src/tools/runtimes/mod_tests.rs \ 91 ${BUILD_WRKSRC}/core/tests/suite/exec.rs \ 92 ${BUILD_WRKSRC}/core/tests/suite/unified_exec.rs \ 93 ${BUILD_WRKSRC}/core/tests/suite/user_notification.rs \ 94 ${BUILD_WRKSRC}/exec-server/tests/file_system.rs \ 95 ${BUILD_WRKSRC}/shell-command/src/parse_command.rs \ 96 ${BUILD_WRKSRC}/shell-escalation/src/unix/escalate_server.rs \ 97 ${BUILD_WRKSRC}/tui/src/exec_command.rs 98 @${REINPLACE_CMD} -e 's|python3|${PYTHON_VERSION}|' \ 99 ${BUILD_WRKSRC}/app-server/tests/suite/v2/command_exec.rs \ 100 ${BUILD_WRKSRC}/app-server/tests/suite/v2/hooks_list.rs \ 101 ${BUILD_WRKSRC}/app-server/tests/suite/v2/thread_resume.rs \ 102 ${BUILD_WRKSRC}/app-server/tests/suite/v2/thread_shell_command.rs \ 103 ${BUILD_WRKSRC}/app-server/tests/suite/v2/turn_interrupt.rs \ 104 ${BUILD_WRKSRC}/app-server/tests/suite/v2/turn_start.rs \ 105 ${BUILD_WRKSRC}/app-server/tests/suite/v2/turn_start_zsh_fork.rs \ 106 ${BUILD_WRKSRC}/config/src/config_requirements.rs \ 107 ${BUILD_WRKSRC}/config/src/hooks_tests.rs \ 108 ${BUILD_WRKSRC}/core-skills/src/invocation_utils.rs \ 109 ${BUILD_WRKSRC}/core-skills/src/invocation_utils_tests.rs \ 110 ${BUILD_WRKSRC}/core/src/command_canonicalization_tests.rs \ 111 ${BUILD_WRKSRC}/core/src/config/config_loader_tests.rs \ 112 ${BUILD_WRKSRC}/core/src/exec_policy.rs \ 113 ${BUILD_WRKSRC}/core/src/exec_policy_tests.rs \ 114 ${BUILD_WRKSRC}/core/src/mcp_tool_call_tests.rs \ 115 ${BUILD_WRKSRC}/core/src/session/tests.rs \ 116 ${BUILD_WRKSRC}/core/tests/suite/approvals.rs \ 117 ${BUILD_WRKSRC}/core/tests/suite/compact.rs \ 118 ${BUILD_WRKSRC}/core/tests/suite/compact_remote_parity.rs \ 119 ${BUILD_WRKSRC}/core/tests/suite/exec.rs \ 120 ${BUILD_WRKSRC}/core/tests/suite/hooks.rs \ 121 ${BUILD_WRKSRC}/core/tests/suite/hooks_mcp.rs \ 122 ${BUILD_WRKSRC}/core/tests/suite/openai_file_mcp.rs \ 123 ${BUILD_WRKSRC}/core/tests/suite/tools.rs \ 124 ${BUILD_WRKSRC}/core/tests/suite/unified_exec.rs \ 125 ${BUILD_WRKSRC}/exec-server/tests/exec_process.rs \ 126 ${BUILD_WRKSRC}/exec/tests/suite/sandbox.rs \ 127 ${BUILD_WRKSRC}/execpolicy/tests/basic.rs \ 128 ${BUILD_WRKSRC}/external-agent-migration/src/lib.rs \ 129 ${BUILD_WRKSRC}/hooks/src/engine/mod_tests.rs \ 130 ${BUILD_WRKSRC}/hooks/src/events/compact.rs \ 131 ${BUILD_WRKSRC}/hooks/src/events/post_tool_use.rs \ 132 ${BUILD_WRKSRC}/linux-sandbox/tests/suite/landlock.rs \ 133 ${BUILD_WRKSRC}/linux-sandbox/tests/suite/managed_proxy.rs \ 134 ${BUILD_WRKSRC}/shell-command/src/bash.rs \ 135 ${BUILD_WRKSRC}/shell-command/src/command_safety/is_safe_command.rs \ 136 ${BUILD_WRKSRC}/tui/src/app/tests.rs \ 137 ${BUILD_WRKSRC}/tui/src/chatwidget/tests/app_server.rs \ 138 ${BUILD_WRKSRC}/tui/src/chatwidget/tests/approval_requests.rs \ 139 ${BUILD_WRKSRC}/tui/src/chatwidget/tests/exec_flow.rs \ 140 ${BUILD_WRKSRC}/tui/src/debug_config.rs \ 141 ${BUILD_WRKSRC}/tui/src/exec_command.rs \ 142 ${BUILD_WRKSRC}/tui/src/render/highlight.rs \ 143 ${BUILD_WRKSRC}/utils/pty/src/tests.rs 144 145post-build-COMPLETIONS-on: 146 @${MKDIR} ${WRKSRC}/completions 147.for sh in bash fish zsh 148 ${CARGO_TARGET_DIR}/*/*/${PORTNAME} completion ${sh} > \ 149 ${WRKSRC}/completions/${PORTNAME}.${sh} 150.endfor 151 152do-install: 153 ${INSTALL_PROGRAM} ${CARGO_TARGET_DIR}/*/*/${PORTNAME} \ 154 ${PREFIX}/bin 155 156do-install-COMPLETIONS-on: 157 @${MKDIR} ${FAKE_DESTDIR}${PREFIX}/etc/bash_completion.d \ 158 ${FAKE_DESTDIR}${PREFIX}/share/fish/completions \ 159 ${FAKE_DESTDIR}${PREFIX}/share/zsh/site-functions 160 ${INSTALL_DATA} ${WRKSRC}/completions/${PORTNAME}.bash \ 161 ${FAKE_DESTDIR}${PREFIX}/etc/bash_completion.d/${PORTNAME} 162 ${INSTALL_DATA} ${WRKSRC}/completions/${PORTNAME}.fish \ 163 ${FAKE_DESTDIR}${PREFIX}/share/fish/completions/${PORTNAME}.fish 164 ${INSTALL_DATA} ${WRKSRC}/completions/${PORTNAME}.zsh \ 165 ${FAKE_DESTDIR}${PREFIX}/share/zsh/site-functions/_${PORTNAME} 166 167do-install-DOCS-on: 168 @${MKDIR} ${FAKE_DESTDIR}${DOCSDIR} 169 ${INSTALL_MAN} ${PORTDOCS:S|^|${BUILD_WRKSRC}/|} ${FAKE_DESTDIR}${DOCSDIR} 170 171do-test: 172 @${CARGO_CARGO_RUN} test \ 173 --manifest-path ${CARGO_CARGOTOML} \ 174 --verbose \ 175 --verbose \ 176 --profile ci-test \ 177 ${CODEX_TEST_ARGS} 178 179.include <bsd.port.mk> 180