summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 5cf07344a6a75bf52e581ef939b4f89f02e488be (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
# Maintainer: Will Handley <wh260@cam.ac.uk> (aur.archlinux.org/account/wjhandley)

_name=codex-proxy
pkgname=codex-proxy
pkgver=2.0.76
pkgrel=2
pkgdesc="Local headless proxy exposing ChatGPT Codex Responses API as OpenAI/Anthropic/Gemini-compatible endpoints"
arch=('x86_64')
url="https://github.com/icebear0828/codex-proxy"
license=('custom:non-commercial')
depends=('nodejs')
makedepends=('npm' 'rust')
backup=()
source=("$_name-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz"
        "codex-proxy.sh"
        "codex-proxy.service"
        "non-stream-backfill-missing-output.patch")
sha256sums=('e79a414e8142b0a8eef8a6d184196193b96f5a2618008a50aed88685c1923149'
            'SKIP'
            'SKIP'
            'SKIP')

prepare() {
    cd "$srcdir/$_name-$pkgver"
    patch -p1 < "$srcdir/non-stream-backfill-missing-output.patch"
}

build() {
    cd "$srcdir/$_name-$pkgver"
    npm ci --include=dev
    (cd web && npm ci --include=dev)
    # Build native addon. makepkg's CFLAGS/LDFLAGS/RUSTFLAGS interfere
    # with how ring links its C/asm objects into the cdylib. Clear them
    # for the napi build to match a plain user-shell build.
    (cd native && npm ci --include=dev && \
     env -u CFLAGS -u CXXFLAGS -u LDFLAGS -u RUSTFLAGS -u CPPFLAGS \
         npm run build)
    npm run build
    npm prune --omit=dev
    (cd web && npm prune --omit=dev)
}

package() {
    cd "$srcdir/$_name-$pkgver"

    install -dm755 "$pkgdir/usr/lib/codex-proxy"
    cp -r dist node_modules package.json package-lock.json config "$pkgdir/usr/lib/codex-proxy/"

    install -dm755 "$pkgdir/usr/lib/codex-proxy/native"
    cp native/*.node native/index.js native/index.d.ts native/package.json \
        "$pkgdir/usr/lib/codex-proxy/native/"

    if [ -d public ]; then
        cp -r public "$pkgdir/usr/lib/codex-proxy/public"
    fi

    install -Dm755 "$srcdir/codex-proxy.sh" "$pkgdir/usr/bin/codex-proxy"
    install -Dm644 "$srcdir/codex-proxy.service" \
        "$pkgdir/usr/lib/systemd/user/codex-proxy.service"
    install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" 2>/dev/null || true
}