aboutsummarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 3532c791292a15059e8c5b5c299baa909a92fa46 (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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# Maintainer: AnimaZed Team <team@animazed.dev>
# Based on animazed-git AUR package

pkgname="animazed-bin"
pkgver="1.9.0"
pkgrel="1"
pkgdesc="High-performance multiplayer code editor (AnimaZed fork) - Binary version"
arch=('x86_64')
url="https://github.com/animaios/animazed"
license=('Apache-2.0' 'GPL-3.0-or-later')
depends=(
    'gcc-libs'
    'glibc'
    'libxcb'
    'libxkbcommon'
    'wayland'
    'libgl'
    'fontconfig'
    'freetype2'
    'alsa-lib'
    'glib2'
    'libva'
    'zstd'
    'sqlite'
    'pipewire'
    'xdg-desktop-portal'
)
optdepends=(
    'git: for git integration'
    'nodejs: for language servers'
    'python: for language servers'
    'rust: for rust-analyzer'
    'docker: for dev containers'
    'ssh: for remote development'
)
provides=('animazed' 'zed')
conflicts=('animazed' 'zed' 'zed-git' 'zed-preview' 'zed-nightly')
source=("https://github.com/animaios/animazed/releases/download/nightly/zed-linux-x86_64-nightly.zip")
sha256sums=('SKIP')

pkgver() {
    echo "${pkgver}"
}

prepare() {
    cd "${srcdir}"

    msg2 "Extracting release artifact..."
    bsdtar -xf zed-linux-x86_64-nightly.zip

    if [[ ! -f release/zed ]]; then
        error "Expected release/zed binary not found in artifact"
        ls -la release/ 2>/dev/null || true
        return 1
    fi
}

package() {
    cd "${srcdir}/release"

    # Install main binary
    install -Dm755 zed "${pkgdir}/usr/bin/animazed-editor"

    # Install remote server
    install -Dm755 remote_server "${pkgdir}/usr/libexec/animazed-remote-server"

    # Install CLI binary
    install -Dm755 cli "${pkgdir}/usr/bin/animazed"

    # Create symlinks for compatibility
    ln -sf animazed "${pkgdir}/usr/bin/zed"
    ln -sf animazed-editor "${pkgdir}/usr/bin/zed-editor"

    # Install desktop entry
    cat > "${pkgdir}/usr/share/applications/dev.zed.Zed.desktop" <<'EOF'
[Desktop Entry]
Name=AnimaZed
Comment=High-performance, multiplayer code editor
Exec=animazed %U
Icon=animazed
Terminal=false
Type=Application
Categories=Utility;TextEditor;IDE;
MimeType=text/plain;application/x-zed-zd;
StartupNotify=true
Actions=new-window;new-tab;
EOF

    # Install icons
    install -Dm644 "${srcdir}/../crates/zed/resources/app-icon.png" "${pkgdir}/usr/share/icons/hicolor/512x512/apps/animazed.png"
    ln -sf animazed.png "${pkgdir}/usr/share/icons/hicolor/512x512/apps/zed.png"

    # Install metainfo for software centers
    cat > "${pkgdir}/usr/share/metainfo/dev.zed.Zed.metainfo.xml" <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
  <id>dev.zed.Zed</id>
  <name>AnimaZed</name>
  <project_license>LicenseRef-AnimaZed</project_license>
  <description>
    <p>High-performance, multiplayer code editor built from the AnimaZed fork of Zed.</p>
  </description>
  <url type="homepage">https://github.com/animaios/animazed</url>
  <icon type="replace">/usr/share/icons/hicolor/512x512/apps/animazed.png</icon>
</component>
EOF

    # Install systemd user service for remote server
    cat > "${pkgdir}/usr/lib/systemd/user/animazed-remote-server.service" <<'EOF'
[Unit]
Description=AnimaZed Remote Server
After=network.target

[Service]
ExecStart=/usr/libexec/animazed-remote-server
Restart=always
RestartSec=3

[Install]
WantedBy=default.target
EOF

    # Install licenses
    install -Dm644 "${srcdir}/../LICENSE-APACHE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-APACHE"
    install -Dm644 "${srcdir}/../LICENSE-GPL" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-GPL"
}