# Maintainer: David Heinemeier Hansson <david@hey.com>

# Omarchy tracks OpenAI's own Debian repository rather than the AUR, which lags
# behind releases that ship several times a week. .omarchy/upstream.sh rewrites
# the version and checksums below from that repository's package index.

pkgname=openai-codex-desktop
pkgver=26.825.51511
pkgrel=1
pkgdesc="Official ChatGPT desktop app with Codex"
arch=('x86_64' 'aarch64')
url="https://chatgpt.com/codex/"
license=('custom')

depends=(
  'alsa-lib'
  'at-spi2-core'
  'bash'
  'cairo'
  'dbus'
  'expat'
  'gcc-libs'
  'gdk-pixbuf2'
  'glib2'
  'glibc'
  'gtk3'
  'libcups'
  'libdrm'
  'libglvnd'
  'libnotify'
  'libusb'
  'libx11'
  'libxcb'
  'libxcomposite'
  'libxdamage'
  'libxext'
  'libxfixes'
  'libxkbcommon'
  'libxrandr'
  'mesa'
  'nspr'
  'nss'
  'openssl'
  'pango'
  'systemd-libs'
  'xdg-utils'
  'xz'
)

optdepends=(
  'apparmor: load the bundled user-namespace profile on AppArmor systems'
  'git: version control integration'
)

makedepends=('libarchive')
provides=('chatgpt')
conflicts=('chatgpt')
options=('!debug' '!strip')

# Omarchy: the build image compresses with zstd at its default level, which
# leaves this 1.3 GB Electron tree at 447 MB. Maximum zstd takes it to 322 MB
# for ~4 extra minutes of build time -- worth it for a package this large that
# every user re-downloads on each of OpenAI's frequent releases.
COMPRESSZST=(zstd -c -z -q --ultra -22 --threads=0 -)

_deb_x86_64="chatgpt_${pkgver}_amd64.deb"
_deb_aarch64="chatgpt_${pkgver}_arm64.deb"
source=('chatgpt-launcher.sh')
_pool="https://persistent.oaistatic.com/codex-app-prod/linux/deb/pool/main/c/chatgpt"
source_x86_64=("${_deb_x86_64}::${_pool}/${_deb_x86_64}")
source_aarch64=("${_deb_aarch64}::${_pool}/${_deb_aarch64}")
noextract=("${_deb_x86_64}" "${_deb_aarch64}")
sha256sums=('b3a4503b5931f102444bc7015c3cf4e40266cf034e0d682bd2a407dc5b3ee58c')
sha256sums_x86_64=('3554b0022c6cfb513326f43fd11f718835a77086ac4d7ca2ff3ebbba2d4c7f45')
sha256sums_aarch64=('125e36522d43c75bd7958477846ba6b1cddf2eb19cefcb57dda80be1742f917f')

package() {
  cd "${srcdir}"

  local deb_var="_deb_${CARCH}"
  local deb="${!deb_var}"

  bsdtar -xOf "${deb}" data.tar.xz |
    bsdtar --no-same-owner -xf - -C "${pkgdir}"

  rm "${pkgdir}/usr/bin/chatgpt"
  install -Dm755 chatgpt-launcher.sh "${pkgdir}/usr/bin/chatgpt"
  ln -s chatgpt "${pkgdir}/usr/bin/codex-desktop"

  install -Dm644 "${pkgdir}/usr/share/doc/chatgpt/copyright" \
    "${pkgdir}/usr/share/licenses/${pkgname}/copyright"

  # Debian package-policy files are not used on Arch Linux.
  rm -rf "${pkgdir}/usr/share/doc" "${pkgdir}/usr/share/lintian"
}
