summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: d6cbc0f4ab0f0bf7b5b1a1189174489b0248ac98 (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
# Maintainer: zotan <aur@zotan.email>

pkgname=iceshrimp.net-git
pkgver=v2024.1.alpha+54d3c4e
pkgrel=1
pkgdesc="The Iceshrimp .NET rewrite. Caution: This is alpha software, do not use with production database"
arch=(x86_64 aarch64)
url="https://iceshrimp.dev/iceshrimp/iceshrimp.net"
license=(EUPL)

makedepends=('dotnet-sdk>=8.0' 'aspnet-targeting-pack>=8.0' 'aspnet-targeting-pack<9.0')
depends=('aspnet-runtime>=8.0' 'aspnet-runtime<9.0')
optdepends=(
  "ffmpeg: for video transcoding"
)

conflicts=(iceshrimp.net)
provides=(iceshrimp.net)

backup=("etc/iceshrimp.net/configuration.ini")

install="iceshrimp.net.install"

source=(
  "iceshrimp.net::git+https://iceshrimp.dev/iceshrimp/iceshrimp.net.git#branch=dev"
  "iceshrimp.net.service"
  "iceshrimp.net.sysusers"
  "iceshrimp.net.tmpfiles"
  "iceshrimp.net.install"
  "iceshrimp.net.hook"
)

sha512sums=('SKIP'
            'babc4f6f37f32446c9ef24ce39dc1f935a412032dc1d8ac1f3fed4237ba883b4bc6688469962459ea09ee3a8858a8981efb8c20e339e609c2dd69deb9524bdf5'
            '9adf1781842ae7ff2779ca561f06ab2b6fb93e206698084283986627aba69b0fd4482ccbed3daebb2517e5966c326604e1cc57618589f331a966fee2db63815d'
            '0665aa7af2b2aa4405289ce9119439ddcc6b9e6c81dc8e3b9ed5d8ecdc4a39d49c950d41d3098ce99fe294ce51a2dee55ec7248c1756783b0e9aad0bde4654fa'
            '0a0467df278f3bd739114725b373f5ec6c7296f609f0a9bcb4f8142b44856fc63e32f76390adf757005035dc691a4c54a662cc8a287572b61e215c29e3d3cbf2'
            'fe5bc19c5f84e77954a023d054414f355b21918465f11ffcd09c139d1ce9de6258b12d4be5a0a6123844bc0f1458a9b45e49d2619440b3124f30d3dea3a7c6fb')

pkgver() {
  cd "${srcdir}/iceshrimp.net"
  #git describe --long --tags | sed -r 's/([^-]*-g)/r\1/;s/-/./g'
  echo -n "v2024.1.alpha+"
  git rev-parse --short HEAD
}

rid() {
  if [[ $CARCH == "x86_64" ]]; then
    echo -n "linux-x64"
  else
    echo -n "linux-arm64"
  fi
}

build() {
  cd "${srcdir}/iceshrimp.net/Iceshrimp.Backend"

  if [[ -n $DISABLE_VIPS ]]; then
    VIPS=false
  else
    VIPS=true
  fi

  if [[ -n $DISABLE_AOT ]] || ! dotnet workload list | grep -q '^wasm-tools\s'; then
    dotnet publish -c Release -r $(rid) -p:EnableLibVips=$VIPS
  else
    dotnet publish -c Release -r $(rid) -p:EnableAOT=true -p:EnableLibVips=$VIPS
  fi
}

package() {
  # Add runtime-only dependencies
  depends+=(postgresql)

  if [[ -n $DISABLE_VIPS ]]; then
    # Add runtime-only dependencies for libvips image processing
    depends+=(libvips openjpeg2)
  fi

  install -dm 755 "${pkgdir}/usr/share/iceshrimp.net"
  install -dm 755 "${pkgdir}/etc/iceshrimp.net"

  install -Dm 644 "${srcdir}/iceshrimp.net/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
  install -Dm 644 "${srcdir}/iceshrimp.net.service" "${pkgdir}/usr/lib/systemd/system/iceshrimp.net.service"
  install -Dm 644 "${srcdir}/iceshrimp.net.sysusers" "${pkgdir}/usr/lib/sysusers.d/iceshrimp.net.conf"
  install -Dm 644 "${srcdir}/iceshrimp.net.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/iceshrimp.net.conf"
  install -Dm 644 "${srcdir}/iceshrimp.net.hook" "${pkgdir}/usr/share/libalpm/hooks/iceshrimp.net.hook"
  install -Dm 640 "${srcdir}/iceshrimp.net/Iceshrimp.Backend/configuration.ini" "${pkgdir}/etc/iceshrimp.net/configuration.ini"

  cp -dpTr --no-preserve=ownership "${srcdir}/iceshrimp.net/Iceshrimp.Backend/bin/Release/net8.0/$(rid)/publish/" "${pkgdir}/usr/share/iceshrimp.net"
}