From 7bcb3e2713be520b8dfc49d005a3fadeb16d903c Mon Sep 17 00:00:00 2001 From: memdmp Date: Sat, 14 Jun 2025 04:00:02 +0200 Subject: utau/openutau: The initial working openutau package --- src/utau/.rootbld-repositories | 1 + src/utau/openutau/APKBUILD | 68 +++++++++++++++++++++++++++++--------- src/utau/openutau/build-worldline | 14 ++++++++ src/utau/openutau/openutau.desktop | 9 +++++ src/utau/openutau/openutau.svg | 1 + 5 files changed, 77 insertions(+), 16 deletions(-) create mode 100755 src/utau/openutau/build-worldline create mode 100644 src/utau/openutau/openutau.desktop create mode 100644 src/utau/openutau/openutau.svg diff --git a/src/utau/.rootbld-repositories b/src/utau/.rootbld-repositories index 64d7ad2..9724fa0 100644 --- a/src/utau/.rootbld-repositories +++ b/src/utau/.rootbld-repositories @@ -1,2 +1,3 @@ $mirror/$version/main $mirror/$version/community +@testing $mirror/edge/testing diff --git a/src/utau/openutau/APKBUILD b/src/utau/openutau/APKBUILD index a814654..e6ad5c7 100644 --- a/src/utau/openutau/APKBUILD +++ b/src/utau/openutau/APKBUILD @@ -2,38 +2,74 @@ _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 +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="noarch" +arch="x86_64" license="MIT" -depends="" + +# 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 -makedepends="dotnet9-sdk" +# Bazel 8 and 9 remove required features for worldline for some reason. +makedepends="dotnet8-sdk musl-dev zsh bazel7@testing linux-headers" + install="" subpackages="" -source="$_reponame-build-$pkgver.tar.gz::$_repourl/archive/refs/tags/build/$pkgver.tar.gz" -builddir="$srcdir/$_reponame-build-$pkgver" -options="net !check" + +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" - # TODO: figure out how to move into a snapshot() - dotnet restore OpenUtau - dotnet build OpenUtau - return 0 + rm -rf runtimes/linux-* + + # Build worldline + 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() { - mkdir -p "$pkgdir" - ls "$builddir/OpenUtau/bin/"* - # TODO: do things here - return 0 + _outdir="$builddir/OpenUtau/bin/${_buildtarget}" + + # Install the main binary + install -Dm755 "$_outdir/OpenUtau" "$pkgdir/usr/lib/openutau/OpenUtau" + 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 "${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop" + install -Dm644 "${pkgname}.svg" "$pkgdir/usr/share/icons/hicolor/scalable/apps/${pkgname}.svg" } sha512sums=" -29711ebcc3f3f81484714b8e3a830cf4e8f17b990de59c6734b19d30c18b75aa79fd68688827adfc6c82e05903bc7ac1552bd5b62527b3deaace33541c52ad9e OpenUtau-build-0.1.529.tar.gz +d9fd1b694a7c204800a566e12c3b5ac755072236c6f86b59ee00c6762854e9b0982ae66a3d7bab0772ca811eeb2aee39df28404ca6c195f4e881a8be61f5db03 OpenUtau-c3ff44b01f5dcd0ef1bbdb5aa11ef1319cab3a03.tar.gz +49a405f189156c3873b49f3f3b9b5f95a1e432bcebd140d4a2a10d48eba1a7ed7bb8b0c9365f23f18a1f6adb067eb4027550bb44e1c4816d1b6ff4df2b520a89 build-worldline +ecd2480ef21ac77678f727f848120590e052c48b9027da98eabcbf3a6dcc4cc250b8528e9d4e82ba7ea787b8978f5d2ea14d20065dace516c93d25022570ff11 openutau.desktop +3c8118d019c02b3f5b49c5f714229f9687169b3a1943adf48bf3980b5fc3304852bfc568aa7166eae5ea91e6bd7ff3903927e6ad94c2e7dc8fd9d56bd02f82ee openutau.svg " diff --git a/src/utau/openutau/build-worldline b/src/utau/openutau/build-worldline new file mode 100755 index 0000000..1da3da7 --- /dev/null +++ b/src/utau/openutau/build-worldline @@ -0,0 +1,14 @@ +#!/usr/bin/env zsh +set -e +cd cpp +_bazel_opts=() +case "$CARCH" in + aarch64*|arm*) _runtime_dir="$builddir/runtimes/linux-x64";_bazel_opts+=("--cpu=k8") ;; + x86|x86_64) _runtime_dir="$builddir/runtimes/linux-arm64";_bazel_opts+=("--config=ubuntu-aarch64") ;; + *) echo "Unable to determine a supported architecture from (CARCH=$CARCH)" ; return 1 ;; +esac +mkdir -p "$_runtime_dir" +bazel build //worldline:worldline -c opt "${_bazel_opts[@]}" +chmod +w bazel-bin/worldline/libworldline.so +cp bazel-bin/worldline/libworldline.so "$_runtime_dir"/native +cd .. diff --git a/src/utau/openutau/openutau.desktop b/src/utau/openutau/openutau.desktop new file mode 100644 index 0000000..2f3b8f4 --- /dev/null +++ b/src/utau/openutau/openutau.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=OpenUtau +Terminal=false +Type=Application +Comment=Open source UTAU successor +GenericName=Utau +Exec=/usr/bin/openutau +Icon=openutau +Categories=Music;AudioVideo; diff --git a/src/utau/openutau/openutau.svg b/src/utau/openutau/openutau.svg new file mode 100644 index 0000000..29e8739 --- /dev/null +++ b/src/utau/openutau/openutau.svg @@ -0,0 +1 @@ +Artboard 1 \ No newline at end of file -- cgit v1.2.3