summaryrefslogtreecommitdiffstats
path: root/src/utau/openutau/APKBUILD
blob: 4d14547035786752783139d5579582cdd59afb22 (plain) (blame)
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
# Maintainer: memdmp <memdmp@estrogen.zone>
_reponame="OpenUtau"
_repoowner="stakira"
_repourl="https://github.com/$_repoowner/$_reponame"
_reporef="c3ff44b01f5dcd0ef1bbdb5aa11ef1319cab3a03" # Must be a TAG OR BRANCH! Anything else may break shit.
_reporefdate="20250610" # YYYYMMDD of the ref
_buildtarget="Release" # or `Debug` for testing

pkgname="openutau"
pkgver=0.1.529 # for refs that aren't tags, use the previous release before it!
pkgrel=0
pkgdesc="Open singing synthesis platform / Open source UTAU successor"
url="https://www.openutau.com/"
arch="x86_64"
license="MIT"

# ld-linux-x86-64.so.2 is provided by gcompat
# so:libfontconfig.so.1 is provided by fontconfig
depends="dotnet8-runtime so:ld-linux-x86-64.so.2 so:libfontconfig.so.1"

# Docs say to use .NET 6, but thats testing repos only
# Bazel 8 and 9 remove required features for worldline for some reason.
makedepends="dotnet8-sdk musl-dev zsh bazel7@testing linux-headers"

install=""
subpackages=""

options="net !check" # network needed for dotnet restore, no check due to laziness for now

# for when we're building off of a commit
if [[ "$pkgver" != "$_reporef" ]] && [[ "$pkgver" != "v$_reporef" ]]; then pkgver="${pkgver}_git${_reporefdate}"; fi

source="${_reponame}-${_reporef}.tar.gz::${_repourl}/archive/${_reporef}.tar.gz
        build-worldline
        openutau.desktop
        openutau.svg"
builddir="${srcdir}/${_reponame}-${_reporef}"

build() {
  cd "$builddir"
  rm -rf runtimes/linux-*

  # Build worldline
  # TODO: consider packaging worldline seperately at some point
  builddir="$builddir" CARCH="$CARCH" "${srcdir}/build-worldline"

  # Build openutau itself
  export DOTNET_CLI_TELEMETRY_OPTOUT=1
  # TODO: figure out how to move dotnet shit into a snapshot()
  dotnet restore --locked-mode --use-current-runtime --disable-build-servers --locked-mode OpenUtau
  dotnet publish OpenUtau --use-current-runtime --no-restore --no-self-contained --disable-build-servers "-p:PublishSingleFile=true;StaticExecutable=true" -c "$_buildtarget" -o "$builddir/OpenUtau/bin/${_buildtarget}"
}

package() {
  _outdir="$builddir/OpenUtau/bin/${_buildtarget}"
  
  # Install the main binary
  install -Dm755 "$_outdir/OpenUtau" "$pkgdir/usr/lib/openutau/OpenUtau"
  mkdir -p "$pkgdir/usr/bin"
  ln -s "../lib/openutau/OpenUtau" "$pkgdir/usr/bin/openutau"

  # Install dependencies
  # TODO: somehow split these into different packages
  install -Dm755 "$_outdir/libHarfBuzzSharp.so" "$pkgdir/usr/lib/openutau/libHarfBuzzSharp.so"
  install -Dm755 "$_outdir/libSkiaSharp.so" "$pkgdir/usr/lib/openutau/libSkiaSharp.so"

  # Install desktop icons
	install -Dm755 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
	install -Dm644 "${srcdir}/${pkgname}.svg" "$pkgdir/usr/share/icons/hicolor/scalable/apps/${pkgname}.svg"
}

sha512sums="
d9fd1b694a7c204800a566e12c3b5ac755072236c6f86b59ee00c6762854e9b0982ae66a3d7bab0772ca811eeb2aee39df28404ca6c195f4e881a8be61f5db03  OpenUtau-c3ff44b01f5dcd0ef1bbdb5aa11ef1319cab3a03.tar.gz
49a405f189156c3873b49f3f3b9b5f95a1e432bcebd140d4a2a10d48eba1a7ed7bb8b0c9365f23f18a1f6adb067eb4027550bb44e1c4816d1b6ff4df2b520a89  build-worldline
ecd2480ef21ac77678f727f848120590e052c48b9027da98eabcbf3a6dcc4cc250b8528e9d4e82ba7ea787b8978f5d2ea14d20065dace516c93d25022570ff11  openutau.desktop
3c8118d019c02b3f5b49c5f714229f9687169b3a1943adf48bf3980b5fc3304852bfc568aa7166eae5ea91e6bd7ff3903927e6ad94c2e7dc8fd9d56bd02f82ee  openutau.svg
"