mirror of
https://github.com/Cheviiot/Nivora.git
synced 2026-08-03 15:51:12 +00:00
Maintain a validated cross-distribution package catalog. Automate upstream updates, isolated builds, diagnostics, and direct publication. Build the official GitHub Desktop sources for Linux with working OAuth.
177 lines
8.7 KiB
Plaintext
177 lines
8.7 KiB
Plaintext
name='codex'
|
|
version=26.721.31836
|
|
release=1
|
|
summary='Unofficial Linux repack of the Codex desktop app'
|
|
summary_ru='Неофициальная Linux-перепаковка десктопного приложения Codex'
|
|
group='Development/Tools'
|
|
desc='codex-app-linux repacks the Codex desktop application into Linux Electron artifacts and bundles a Linux codex CLI binary for local workflows.'
|
|
desc_ru='codex-app-linux перепаковывает десктопное приложение Codex в Linux-артефакты Electron и включает Linux-бинарник codex CLI для локальных сценариев.'
|
|
homepage='https://github.com/Boria138/codex-app-linux'
|
|
maintainer='Boria138 <https://github.com/Boria138>'
|
|
|
|
architectures=('amd64')
|
|
|
|
license=('Custom')
|
|
nonfree=1
|
|
nonfree_msg='codex-app устанавливает неофициальную Linux-перепаковку проприетарного настольного приложения. Использование приложения и сетевых функций регулируется условиями исходного сервиса.'
|
|
nonfree_url='https://github.com/Boria138/codex-app-linux'
|
|
|
|
provides=()
|
|
replaces=('codex')
|
|
conflicts=()
|
|
|
|
auto_reqprov_method="dirty"
|
|
auto_req=0
|
|
auto_prov=0
|
|
|
|
deps=()
|
|
deps_debian=('ca-certificates' 'libc6' 'libasound2' 'libatk-bridge2.0-0' 'libatk1.0-0' 'libatspi2.0-0' 'libcairo2' 'libcups2' 'libcurl3-gnutls | libcurl4' 'libdbus-1-3' 'libexpat1' 'libgbm1' 'libglib2.0-0' 'libgtk-3-0' 'libnspr4' 'libnss3' 'libpango-1.0-0' 'libsecret-1-0' 'libudev1' 'libx11-6' 'libxcb1' 'libxcomposite1' 'libxdamage1' 'libxext6' 'libxfixes3' 'libxkbcommon0' 'libxkbfile1' 'libxrandr2' 'libxss1' 'libxtst6' 'xdg-desktop-portal' 'xdg-utils')
|
|
deps_ubuntu=("${deps_debian[@]}")
|
|
deps_fedora=('ca-certificates' 'glibc' 'alsa-lib' 'atk' 'at-spi2-atk' 'at-spi2-core' 'cairo' 'cups-libs' 'libcurl' 'dbus-libs' 'expat' 'mesa-libgbm' 'glib2' 'gtk3' 'nspr' 'nss' 'pango' 'libsecret' 'systemd-libs' 'libX11' 'libxcb' 'libXcomposite' 'libXdamage' 'libXext' 'libXfixes' 'libxkbcommon' 'libxkbfile' 'libXrandr' 'libXScrnSaver' 'libXtst' 'xdg-desktop-portal' 'xdg-utils')
|
|
deps_arch=('ca-certificates' 'glibc' 'alsa-lib' 'atk' 'at-spi2-atk' 'at-spi2-core' 'cairo' 'cups' 'curl' 'dbus' 'expat' 'libgbm' 'glib2' 'gtk3' 'nspr' 'nss' 'pango' 'libsecret' 'systemd-libs' 'libx11' 'libxcb' 'libxcomposite' 'libxdamage' 'libxext' 'libxfixes' 'libxkbcommon' 'libxkbfile' 'libxrandr' 'libxss' 'libxtst' 'xdg-desktop-portal' 'xdg-utils')
|
|
deps_opensuse=('ca-certificates' 'glibc' 'alsa' 'libatk-1_0-0' 'libatk-bridge-2_0-0' 'libatspi0' 'libcairo2' 'cups-libs' 'libcurl4' 'libdbus-1-3' 'libexpat1' 'libgbm1' 'glib2' 'gtk3' 'mozilla-nspr' 'mozilla-nss' 'pango' 'libsecret-1-0' 'libudev1' 'libX11-6' 'libxcb1' 'libXcomposite1' 'libXdamage1' 'libXext6' 'libXfixes3' 'libxkbcommon0' 'libxkbfile1' 'libXrandr2' 'libXss1' 'libXtst6' 'xdg-desktop-portal' 'xdg-utils')
|
|
deps_altlinux=('ca-certificates' 'glibc' 'libalsa' 'at-spi2-atk' 'libat-spi2-core' 'libatk' 'libcairo' 'libcups' 'libcurl' 'libdbus' 'libexpat' 'libgbm' 'glib2' 'libgtk+3' 'libnspr' 'libnss' 'libpango' 'libsecret' 'libudev0' 'libX11' 'libxcb' 'libXcomposite' 'libXdamage' 'libXext' 'libXfixes' 'libxkbcommon' 'libxkbfile' 'libXrandr' 'libXScrnSaver' 'libXtst' 'xdg-desktop-portal' 'xdg-utils')
|
|
|
|
build_deps=('binutils')
|
|
build_deps_debian=('binutils' 'build-essential' 'cargo' 'libwayland-dev' 'nodejs' 'pkg-config' 'python3' 'rustc')
|
|
build_deps_ubuntu=("${build_deps_debian[@]}")
|
|
build_deps_fedora=('binutils' 'cargo' 'gcc' 'gcc-c++' 'make' 'nodejs' 'pkgconf-pkg-config' 'python3' 'rust' 'wayland-devel')
|
|
build_deps_arch=('base-devel' 'binutils' 'cargo' 'nodejs' 'pkgconf' 'python' 'rust' 'wayland')
|
|
build_deps_opensuse=('binutils' 'cargo' 'gcc' 'gcc-c++' 'make' 'nodejs' 'pkg-config' 'python3' 'rust' 'wayland-devel')
|
|
build_deps_altlinux=('binutils' 'gcc-c++' 'libwayland-client-devel' 'make' 'node' 'pkg-config' 'python3' 'rust' 'rust-cargo')
|
|
|
|
sources=(
|
|
"https://github.com/Boria138/codex-app-linux/releases/download/${version}/codex-app-${version}-x86_64.tar.gz?~archive=false&~name=codex-app.tar.gz"
|
|
'https://github.com/ilysenko/codex-desktop-linux/archive/15f3bd4fabc44bc0afba85b16d0121f0b4abd052.tar.gz?~archive=false&~name=codex-linux-port.tar.gz'
|
|
'https://github.com/agent-sh/computer-use-linux/archive/refs/tags/v0.4.1.tar.gz?~archive=false&~name=computer-use-linux.tar.gz'
|
|
'local:///asar_tree.py'
|
|
'local:///patch-computer-use.js'
|
|
"local:///codex-app.png"
|
|
'local:///LICENSE'
|
|
)
|
|
|
|
checksums=(
|
|
'sha256:f48c0ae3fca556d66525b863dd009a0bd0702115517f83c39f8a44cf4d128eb3'
|
|
'sha256:8cde2dac642947cdfab23d302056ef81b574cc7f5684f25f7116f80411ec551c'
|
|
'sha256:fab36489be4f1e92591d2ebcd28a96a95f788b5d1ba87824985623ab7df5e3f4'
|
|
'sha256:9259dc4b9ae217855d55414b2266db08d9b40c5b0cdbca20a183234ff55ba006'
|
|
'sha256:91b3cc2a6b660e3962f24976a29a261dae9a38f879758e6e6463e1295477e172'
|
|
'sha256:5c4fe03d5777a9684e37ec9a2331302abf525f53db83762e6adaafd2fc5eb510'
|
|
'sha256:755f407295f07facd26c968b73a204db5a6f25deac890d230062b09c33eb395e'
|
|
)
|
|
|
|
scripts=(
|
|
['postinstall']='postinstall.sh'
|
|
['postremove']='postremove.sh'
|
|
)
|
|
|
|
package() {
|
|
cd "${srcdir}"
|
|
|
|
tar -xzf codex-app.tar.gz
|
|
tar -xzf codex-linux-port.tar.gz
|
|
tar -xzf computer-use-linux.tar.gz
|
|
src="$(find "${srcdir}" -maxdepth 1 -type d -name "codex-app-${version}-x64" | head -1)"
|
|
linux_port_src="$(find "${srcdir}" -maxdepth 1 -type d -name 'codex-desktop-linux-*' | head -1)"
|
|
computer_use_src="$(find "${srcdir}" -maxdepth 1 -type d -name 'computer-use-linux-*' | head -1)"
|
|
|
|
cargo build \
|
|
--manifest-path "${computer_use_src}/Cargo.toml" \
|
|
--target-dir "${srcdir}/computer-use-target" \
|
|
--release \
|
|
--locked
|
|
|
|
install -dm755 "${pkgdir}/opt/codex-app"
|
|
cp -a "${src}/." "${pkgdir}/opt/codex-app/"
|
|
|
|
codex_asar="${pkgdir}/opt/codex-app/resources/codex.asar"
|
|
extracted_asar="${srcdir}/codex-asar"
|
|
python3 "${srcdir}/asar_tree.py" extract "${codex_asar}" "${extracted_asar}"
|
|
node "${srcdir}/patch-computer-use.js" "${linux_port_src}" "${extracted_asar}"
|
|
python3 "${srcdir}/asar_tree.py" rebuild "${codex_asar}" "${extracted_asar}"
|
|
|
|
bundled_root="${pkgdir}/opt/codex-app/resources/plugins/openai-bundled"
|
|
plugin_dir="${bundled_root}/plugins/computer-use"
|
|
install -dm755 "${plugin_dir}"
|
|
cp -a \
|
|
"${linux_port_src}/plugins/openai-bundled/plugins/computer-use/." \
|
|
"${plugin_dir}/"
|
|
find "${plugin_dir}" -name '.gitkeep' -delete
|
|
install -Dm755 \
|
|
"${srcdir}/computer-use-target/release/computer-use-linux" \
|
|
"${plugin_dir}/bin/codex-computer-use-linux"
|
|
install -Dm755 \
|
|
"${srcdir}/computer-use-target/release/computer-use-linux-cosmic" \
|
|
"${plugin_dir}/bin/codex-computer-use-cosmic"
|
|
install -Dm755 \
|
|
"${srcdir}/computer-use-target/release/computer-use-linux-cosmic" \
|
|
"${plugin_dir}/bin/computer-use-linux-cosmic"
|
|
install -Dm644 codex-app.png "${plugin_dir}/assets/app-icon.png"
|
|
|
|
install -Dm644 /dev/stdin \
|
|
"${bundled_root}/.agents/plugins/marketplace.json" <<'EOF'
|
|
{
|
|
"plugins": [
|
|
{
|
|
"name": "computer-use",
|
|
"source": {
|
|
"source": "local",
|
|
"path": "./plugins/computer-use"
|
|
},
|
|
"policy": {
|
|
"installation": "AVAILABLE",
|
|
"authentication": "ON_INSTALL"
|
|
},
|
|
"category": "Productivity"
|
|
}
|
|
]
|
|
}
|
|
EOF
|
|
|
|
chmod 755 "${pkgdir}/opt/codex-app/codex-app"
|
|
chmod 755 "${pkgdir}/opt/codex-app/resources/codex"
|
|
if [[ -f "${pkgdir}/opt/codex-app/chrome-sandbox" ]]; then
|
|
chmod 0755 "${pkgdir}/opt/codex-app/chrome-sandbox"
|
|
fi
|
|
|
|
install -dm755 "${pkgdir}/usr/bin"
|
|
ln -sfn /opt/codex-app/codex-app "${pkgdir}/usr/bin/codex-app"
|
|
ln -sfn \
|
|
/opt/codex-app/resources/plugins/openai-bundled/plugins/computer-use/bin/codex-computer-use-linux \
|
|
"${pkgdir}/usr/bin/codex-computer-use-linux"
|
|
|
|
install -Dm644 codex-app.png \
|
|
"${pkgdir}/usr/share/icons/hicolor/512x512/apps/codex-app.png"
|
|
|
|
install -Dm644 "${src}/LICENSE.electron.txt" \
|
|
"${pkgdir}/usr/share/licenses/codex/LICENSE.electron.txt"
|
|
install -Dm644 "${src}/LICENSES.chromium.html" \
|
|
"${pkgdir}/usr/share/licenses/codex/LICENSES.chromium.html"
|
|
install -Dm644 "${linux_port_src}/LICENSE" \
|
|
"${pkgdir}/usr/share/licenses/codex/LICENSE.codex-desktop-linux"
|
|
install -Dm644 "${computer_use_src}/LICENSE" \
|
|
"${pkgdir}/usr/share/licenses/codex/LICENSE.computer-use-linux"
|
|
install-license "${srcdir}/LICENSE" "codex/LICENSE.nivora"
|
|
|
|
install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/codex-app.desktop" <<'EOF'
|
|
[Desktop Entry]
|
|
Name=Codex
|
|
Comment=Desktop coding agent client
|
|
Comment[ru]=Десктопный клиент coding agent
|
|
Exec=/usr/bin/codex-app %U
|
|
Terminal=false
|
|
Type=Application
|
|
Icon=codex-app
|
|
Categories=Development;IDE;
|
|
StartupWMClass=codex-app
|
|
EOF
|
|
}
|
|
|
|
files() {
|
|
files-find "/opt/codex-app/**/*"
|
|
files-find-binary
|
|
files-find-desktop
|
|
files-find-license
|
|
files-find "/usr/share/icons/hicolor/*/apps/codex-app.png"
|
|
}
|