summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: fc6d6640104c5ef2aa463dae84eaf4f80b4a200a (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
# Maintainer: ZhangHua <zhanghuadedn at gmail dot com>
# Maintainer: Icalinguaplusplus <https://github.com/Icalinguaplusplus>
# Contributor: Clansty <i at gao4 dot pw>

pkgname=("icalingua++-git" "icalingua++-electron-git")
pkgver=2.10.10.r2.ga97f5141
pkgrel=1
pkgdesc='A Linux client for QQ and more(fork to upgrading)'
license=('AGPL')
depends=('ffmpeg' 'libappindicator-gtk3' 'libvips')
makedepends=('git' 'node-gyp' 'nodejs-lts-hydrogen')
optdepends=('mongodb: Provides storage'
            'redis: Provides storage')
arch=('aarch64' 'x86_64' 'i686')
url="https://github.com/Icalingua-plus-plus/Icalingua-plus-plus"
provides=('electron-qq' 'icalingua')
conflicts=('electron-qq' 'icalingua')
replaces=('electron-qq')
source=("Icalingua::git+${url}#branch=develop")
sha256sums=('SKIP')
_electron=electron22

pkgver(){
    cd "${srcdir}/Icalingua"
    git describe --long --tags | sed 's/^v//;s/-/.r/;s/-/./g'
}

build(){
    cd "${srcdir}/Icalingua"
    export NODE_OPTIONS=--openssl-legacy-provider
    export PATH="$HOME/.local/bin:$PATH"
    mkdir -p "$HOME/.local/bin"
    corepack enable --install-directory "$HOME/.local/bin"
    pnpm install
    if [[ -f node_modules/ts-node/dist/bin.js ]]
    then
        chmod +x node_modules/ts-node/dist/bin.js
    fi
    cd icalingua
    pnpm run build:dir
}
package_icalingua++-git(){
    depends+=(
        # Electron depends
        "c-ares"  "gtk3"  "libevent"  "nss"  "wayland"  "fontconfig"
        "woff2"  "aom"  "brotli"  "libjpeg"  "icu"  "dav1d"  "flac"
        "snappy" "libxml2"  "ffmpeg"  "libwebp"  "minizip"  "opus"
        "harfbuzz"  "jsoncpp"  "libxslt"  "libpng"  "freetype2"
    )
    optdepends+=(
        # Electron optdepends
        "kde-cli-tools: file deletion support (kioclient5)"
        "pipewire: WebRTC desktop sharing under Wayland"
        "qt5-base: enable Qt5 with --enable-features=AllowQt"
        "trash-cli: file deletion support (trash-put)"
        "xdg-utils: open URLs with desktop’s default (xdg-email, xdg-open)"
    )
    case ${CARCH} in
        "x86_64")
            _arch="-";;
        "aarch64")
            _arch="-arm64-";;
        "i686")
            _arch="-ia32-";;
        "*")
            _arch="-${CARCH}-";;
    esac
    mkdir -p "${pkgdir}/opt/icalingua"
    mkdir -p "${pkgdir}/usr/bin"
    cd "${srcdir}/Icalingua/icalingua"
    cp -a build/linux${_arch}unpacked/* "${pkgdir}/opt/icalingua"
    cd "${srcdir}/Icalingua/pkgres"
    install -Dm644 512x512.png "${pkgdir}/usr/share/icons/hicolor/512x512/apps/icalingua.png"
    install -Dm644 icalingua.desktop "${pkgdir}/usr/share/applications/icalingua.desktop"
    ln -s "/opt/icalingua/icalingua" "${pkgdir}/usr/bin/icalingua"
}
package_icalingua++-electron-git(){
    conflicts+=("icalingua-electron")
    provides+=("icalingua-electron")
    depends+=("${_electron}")
    pkgdesc+=' with system electron'
    case ${CARCH} in
        "x86_64")
            _arch="-";;
        "aarch64")
            _arch="-arm64-";;
        "i686")
            _arch="-ia32-";;
        "*")
            _arch="-${CARCH}-";;
    esac
    mkdir -p "${pkgdir}/usr/share/icalingua"
    mkdir -p "${pkgdir}/usr/bin"
    cd "${srcdir}/Icalingua/icalingua/build/linux${_arch}unpacked"
    install -Dm644 "resources/app.asar" "${pkgdir}/usr/lib/icalingua/icalingua.asar"
    cd "${srcdir}/Icalingua/pkgres"
    install -Dm644 512x512.png "${pkgdir}/usr/share/icons/hicolor/512x512/apps/icalingua.png"
    install -Dm644 icalingua.desktop "${pkgdir}/usr/share/applications/icalingua.desktop"
    install -Dm755 icalingua "${pkgdir}/usr/bin/icalingua"
    sed -i "s/^electron[0-9]*/${_electron}/" "${pkgdir}/usr/bin/icalingua"
}