aboutsummarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 03c8f5ee7582a68a406504a541eef89aff82ade6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
pkgname=codex-app-electron-port-bin
pkgver=2026.03.03
pkgrel=1
pkgdesc="Unofficial Electron-port repackaging of Codex desktop app from macOS DMG"
arch=('x86_64')
url="https://github.com/Tomakin/codex-app-electron-port-bin"
license=('custom')
options=('!strip')
depends=('electron' 'bash')
makedepends=('p7zip' 'asar')
optdepends=(
  'nodejs: runtime dependency for Codex CLI and native rebuild helper'
  'pnpm: needed for native module rebuild helper'
  'base-devel: needed for native module rebuild helper'
  'python: needed for native module rebuild helper'
  'sudo: allows native rebuild helper to update files under /opt'
  'paru: optional helper for package auto-update command'
  'yay: optional helper for package auto-update command'
)
install="${pkgname}.install"
source=(
  "Codex.dmg::https://persistent.oaistatic.com/codex-app-prod/Codex.dmg"
  "${pkgname}.sh"
  "${pkgname}-rebuild-native.sh"
  "${pkgname}-autoupdate.sh"
  "${pkgname}.desktop"
  "${pkgname}.install"
  "${pkgname}.LICENSE"
)
noextract=('Codex.dmg')
# Intentionally SKIP for Codex.dmg to track the latest DMG at the fixed upstream URL.
sha256sums=(
  'SKIP'
  '08175f104f47c50df15504b7d3ed0bbf7c4f80c9451ebcdd2454c5fd1e4c4fe1'
  '4f8046f265b15c285c1a9b0b58aea18d4c25c4dc3581908334c6dadd462f3a19'
  '19f503eb576b9f74f85c5d14891c903718d82ea547958e789d79bb455a1440d3'
  'd127bf3d7be45efc29269658dacc76ec95367c3e9f5b6058a65e3377af5dad8a'
  'b5839b253081393a8c10946e6486d1a153402c131c4659a3515eb6499b16e6ba'
  '3d03f0c1bcf7a4567574f1e890ad757e94c0fbcfdad12a3bdfc2b4a20789bf57'
)

_appdir="/opt/${pkgname}"

prepare() {
  cd "${srcdir}"

  rm -rf dmg_extracted app_asar

  msg2 "Extracting DMG"
  7z x "${srcdir}/Codex.dmg" "-odmg_extracted" >/dev/null

  local asar_path="${srcdir}/dmg_extracted/Codex Installer/Codex.app/Contents/Resources/app.asar"
  if [[ ! -f "${asar_path}" ]]; then
    echo "app.asar not found at expected path: ${asar_path}" >&2
    return 1
  fi

  msg2 "Extracting app.asar"
  asar extract "${asar_path}" "${srcdir}/app_asar"
}

package() {
  cd "${srcdir}"

  install -dm755 "${pkgdir}${_appdir}"
  cp -a app_asar "${pkgdir}${_appdir}/"

  install -Dm755 "${srcdir}/${pkgname}.sh" \
    "${pkgdir}/usr/bin/${pkgname}"
  install -Dm755 "${srcdir}/${pkgname}-rebuild-native.sh" \
    "${pkgdir}/usr/bin/${pkgname}-rebuild-native"
  install -Dm755 "${srcdir}/${pkgname}-autoupdate.sh" \
    "${pkgdir}/usr/bin/${pkgname}-autoupdate"
  install -Dm644 "${srcdir}/${pkgname}.desktop" \
    "${pkgdir}/usr/share/applications/${pkgname}.desktop"
  install -Dm644 "${srcdir}/${pkgname}.LICENSE" \
    "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}