diff --git a/.SRCINFO b/.SRCINFO index f1c10fc24615..6ddd9dde275b 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -14,10 +14,12 @@ pkgbase = ryujinx source = ryujinx-1.2.76.tar.gz::https://github.com/GreemDev/Ryujinx/archive/refs/tags/1.2.76.tar.gz source = PKGBUILD.canary source = PKGBUILD.common + source = PKGBUILD.git source = PKGBUILD.release sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP + sha256sums = SKIP pkgname = ryujinx diff --git a/PKGBUILD b/PKGBUILD index 167bae9aef60..c93830e2d5aa 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -5,11 +5,14 @@ if [[ (-z "$_srcinfo" && -z "$_pkgver") ]]; then : ${_autoupdate:=true} fi -: ${_install_path:=usr/lib} +: ${_build_git:=false} : ${_canary:=false} + +: ${_install_path:=usr/lib} : ${startdir:=.} _pkgname="ryujinx" +pkgname="$_pkgname" pkgver=1.2.76 pkgrel=2 pkgdesc="Experimental Nintendo Switch Emulator written in C#" @@ -17,25 +20,29 @@ url="https://github.com/GreemDev/Ryujinx" license=('MIT') arch=('x86_64') -if [[ "${_canary::1}" == "t" ]]; then +source "$startdir"/PKGBUILD.common + +if [[ "${_build_git::1}" == "t" ]]; then + source "$startdir"/PKGBUILD.git +elif [[ "${_canary::1}" == "t" ]]; then _autoupdate=true source "$startdir"/PKGBUILD.canary else source "$startdir"/PKGBUILD.release fi -source "$startdir"/PKGBUILD.common - _update_version _source_ryujinx source+=( PKGBUILD.canary PKGBUILD.common + PKGBUILD.git PKGBUILD.release ) sha256sums+=( 'SKIP' 'SKIP' 'SKIP' + 'SKIP' ) diff --git a/PKGBUILD.canary b/PKGBUILD.canary index ac3e1cfee3a1..1edf09c1997a 100644 --- a/PKGBUILD.canary +++ b/PKGBUILD.canary @@ -1,9 +1,7 @@ -pkgname="$_pkgname-canary" - _source_ryujinx() { - _pkgsrc="${_pkgname^}-Canary-$_pkgver" + _pkgsrc="${_pkgname^}-Canary-${_pkgver%.Canary}" _pkgext="tar.gz" - source=("${_pkgsrc,,}.$_pkgext"::"$url/archive/refs/tags/${_tag:-$_pkgver}.$_pkgext") + source=("${_pkgsrc,,}.$_pkgext"::"$url/archive/refs/tags/$_tag.$_pkgext") sha256sums=('SKIP') } @@ -22,7 +20,7 @@ _update_version() { | sed -E 's&^.*/tag/(Canary-[0-9\.]+)".*$&\1&' \ | sort -rV | head -1 ) - _pkgver_new="${_tag#Canary-}" + _pkgver_new="${_tag#Canary-}.Canary" if [ "$_pkgver" != "${_pkgver_new:?}" ]; then _pkgver="${_pkgver_new:?}" diff --git a/PKGBUILD.git b/PKGBUILD.git new file mode 100644 index 000000000000..411ed9dd94d3 --- /dev/null +++ b/PKGBUILD.git @@ -0,0 +1,24 @@ +makedepends+=('git') + +_source_ryujinx() { + provides=("$_pkgname") + conflicts=("$_pkgname") + + _pkgsrc="$_pkgname" + source=("$_pkgsrc"::"git+$url.git") + sha256sums=('SKIP') +} + +pkgver() { + cd "$_pkgsrc" + local _tag _version _revision _hash + _tag=$(git tag -l '[0-9]*' | grep -Ev '[a-z][a-z]' | sort -rV | head -1) + _version="${_tag:?}" + _revision=$(git rev-list --count --cherry-pick "$_tag"...HEAD) + _hash=$(git rev-parse --short=7 HEAD) + printf '%s.r%s.g%s' "${_version:?}" "${_revision:?}" "${_hash:?}" +} + +_update_version() { + : +} diff --git a/PKGBUILD.release b/PKGBUILD.release index c97057c0efa8..f495aa42427d 100644 --- a/PKGBUILD.release +++ b/PKGBUILD.release @@ -1,5 +1,3 @@ -pkgname="$_pkgname" - _source_ryujinx() { _pkgsrc="${_pkgname^}-$_pkgver" _pkgext="tar.gz"