summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 6fc1f8301b4282349f9f706820f16fc86591aa20 (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
# Maintainer: sukanka <su975853527 at gmail dot com>

pkgname=clash-meta
pkgver=1.18.2
pkgrel=7
pkgdesc="Another Clash Kernel by MetaCubeX"
arch=(x86_64)
url="https://github.com/MetaCubeX/mihomo"
license=(GPL-3.0-or-later)
depends=(clash-geoip glibc)
makedepends=(go)
backup=('etc/clash-meta/config.yaml')
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
sha256sums=('49855c53e5717932b9cb933e7f42f58155b52a42bf7db7f35f1fb1d4baa7ee00')

prepare() {
    mv "mihomo-$pkgver"       "$pkgname"
    cd "$pkgname"
    mv .github/mihomo.service "$pkgname.service"
}

build() {
    export CGO_CPPFLAGS="${CPPFLAGS}"
    export CGO_CFLAGS="${CFLAGS}"
    export CGO_CXXFLAGS="${CXXFLAGS}"
    export CGO_LDFLAGS="${LDFLAGS}"
    export CGO_ENABLED=1
    cd "$pkgname"
    BUILDTIME=$(date -u --rfc-3339=seconds)
    LDFLAGS="-linkmode external -extldflags \"${LDFLAGS}\""
    OTHER_FLAGS="-X \"github.com/metacubex/mihomo/constant.Version=${pkgver}\" \
                 -X \"github.com/metacubex/mihomo/constant.BuildTime=${BUILDTIME}\""
    GOOS=linux go build \
        -trimpath \
        -buildmode=pie \
        -mod=readonly \
        -modcacherw \
        -ldflags "$LDFLAGS $OTHER_FLAGS" \
        -tags with_gvisor \
        -o "$pkgname-$pkgver"

    echo "u $pkgname - \"Clash-Meta Service\" - -"      >  "$pkgname.sysusers"
    echo "d /etc/$pkgname     0755 $pkgname $pkgname -" >  "$pkgname.tmpfiles"
    echo "d /var/log/$pkgname 0700 $pkgname $pkgname -" >> "$pkgname.tmpfiles"
    sed -i -e '/Description/s/mihomo/Clash-Meta/' \
           -e "s/mihomo/$pkgname/g"               \
           -e "/^Type=simple/a User=$pkgname"     \
           -e "/^Type=simple/a Group=$pkgname"    "$pkgname.service"
}

check() {
    cd "$pkgname"
    go test ./...
}

package() {
    cd "$pkgname"
    install -Dm755 "$pkgname-$pkgver"      "$pkgdir/usr/bin/clash-meta"
    install -Dm644 "$pkgname.sysusers"     "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
    install -Dm644 "$pkgname.tmpfiles"     "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
    install -Dm644 docs/config.yaml        "$pkgdir/etc/clash-meta/config.yaml"
    install -Dm644 "$pkgname.service"      "$pkgdir/usr/lib/systemd/system/$pkgname.service"
    ln -s          /etc/clash/Country.mmdb "$pkgdir/etc/$pkgname/Country.mmdb"
}