summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Bermond2017-02-19 23:08:35 -0300
committerDaniel Bermond2017-02-19 23:08:35 -0300
commit4c3046c0ac229f2a2db3976387b60907b153d6fb (patch)
tree6beaf74b783c6d212276b7dadab14273dec01e08
downloadaur-4c3046c0ac229f2a2db3976387b60907b153d6fb.tar.gz
Initial commit
-rw-r--r--.SRCINFO30
-rw-r--r--PKGBUILD202
2 files changed, 232 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..cb27517a8ef1
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,30 @@
+# Generated by mksrcinfo v8
+# Mon Feb 20 02:08:19 UTC 2017
+pkgbase = mupen64plus-extraplugins-git
+ pkgdesc = Additional plugins for Mupen64Plus (Git version)
+ pkgver = 2.0.0.r19.gafe1433.20170202.062245
+ pkgrel = 1
+ url = http://www.mupen64plus.org/
+ arch = i686
+ arch = x86_64
+ license = GPL
+ license = CC0-1.0
+ makedepends = git
+ depends = mupen64plus
+ depends = sdl2
+ depends = glew
+ provides = mupen64plus-extraplugins
+ conflicts = mupen64plus-extraplugins
+ source = git+https://github.com/mupen64plus/mupen64plus-rsp-z64.git
+ source = git+https://github.com/mupen64plus/mupen64plus-rsp-cxd4.git
+ source = git+https://github.com/mupen64plus/mupen64plus-video-arachnoid.git
+ source = git+https://github.com/mupen64plus/mupen64plus-video-z64.git
+ source = git+https://github.com/mupen64plus/mupen64plus-video-glide64.git
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+
+pkgname = mupen64plus-extraplugins-git
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..641cd641d58d
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,202 @@
+# Maintainer: Daniel Bermond < yahoo-com: danielbermond >
+
+# NOTE (1):
+# This package has many git sources, being mupen64plus-rsp-z64 the main one and
+# thus responsible for the first (and traditional) part of $pkgver. Due to this,
+# $pkgver has an additional field in the format 'YYYMMDD.HHMMSS' which is the
+# the date (in UTC time) of the last git commit from all git sources. This
+# additional field allows to reflect an update in a non-main git source when the
+# main git source remains without any updates.
+
+# NOTE (2):
+# A file named 'versions' in $srcdir is used to store the last builded versions
+# and the date of the last upstream git commit for each one of the git sources.
+
+# NOTE (3):
+# When updating this package with makepkg (by retaining the sources on disk),
+# only the needed sources will be rebuilded (only the ones that got new
+# upstream git commits). To determine which git sources should be rebuilded,
+# it's made comparisons between the time of the last upstream git commit that
+# is stored in the 'versions' file with the updated time of the last upstream
+# git commit that is retrieved at makepkg runtime. Using makepkg -f/--force
+# option will force the rebuild of all git sources.
+
+pkgname=mupen64plus-extraplugins-git
+pkgver=2.0.0.r19.gafe1433.20170202.062245
+pkgrel=1
+pkgdesc='Additional plugins for Mupen64Plus (Git version)'
+arch=('i686' 'x86_64')
+url='http://www.mupen64plus.org/'
+license=('GPL' 'CC0-1.0')
+depends=('mupen64plus' 'sdl2' 'glew')
+makedepends=('git')
+provides=('mupen64plus-extraplugins')
+conflicts=('mupen64plus-extraplugins')
+source=("git+https://github.com/mupen64plus/mupen64plus-rsp-z64.git"
+ "git+https://github.com/mupen64plus/mupen64plus-rsp-cxd4.git"
+ "git+https://github.com/mupen64plus/mupen64plus-video-arachnoid.git"
+ "git+https://github.com/mupen64plus/mupen64plus-video-z64.git"
+ "git+https://github.com/mupen64plus/mupen64plus-video-glide64.git"
+)
+sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP')
+
+_m64p_components="rsp-z64 rsp-cxd4 video-arachnoid video-z64 video-glide64"
+_component_type="plugin"
+
+# get component version from git repository
+# arguments: none
+_get_version() {
+ # git, tags available
+ git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
+}
+
+# get the date of last git commit in format 'YYYMMDD.HHMMSS' (UTC time)
+# arguments: none
+_get_commit_date() {
+ TZ=UTC date -d "$(git log -1 --date=short --pretty=format:%ci)" "+%Y%m%d.%H%M%S"
+}
+
+prepare() {
+ # create file to hold component versions ("${srcdir}/versions")
+ if ! [ -f "${srcdir}/versions" ]
+ then
+ printf "%s\n\n" "# Extraplugins for Mupen64Plus - versions" >"${srcdir}/versions"
+ cd "${srcdir}/mupen64plus-rsp-z64"
+ printf "%s\n" "_prev_ver_rspz64=" >>"${srcdir}/versions"
+ printf "%s\n\n" "_prev_date_rspz64=" >>"${srcdir}/versions"
+ cd "${srcdir}/mupen64plus-rsp-cxd4"
+ printf "%s\n" "_prev_ver_rspcxd4=" >>"${srcdir}/versions"
+ printf "%s\n\n" "_prev_date_rspcxd4=" >>"${srcdir}/versions"
+ cd "${srcdir}/mupen64plus-video-arachnoid"
+ printf "%s\n" "_prev_ver_videoarachnoid=" >>"${srcdir}/versions"
+ printf "%s\n\n" "_prev_date_videoarachnoid=" >>"${srcdir}/versions"
+ cd "${srcdir}/mupen64plus-video-z64"
+ printf "%s\n" "_prev_ver_videoz64=" >>"${srcdir}/versions"
+ printf "%s\n\n" "_prev_date_videoz64=" >>"${srcdir}/versions"
+ cd "${srcdir}/mupen64plus-video-glide64"
+ printf "%s\n" "_prev_ver_videoglide64=" >>"${srcdir}/versions"
+ printf "%s\n\n" "_prev_date_videoglide64=" >>"${srcdir}/versions"
+ fi
+
+ # load versions that are stored in file "${srcdir}/versions" (previous versions and dates)
+ source "${srcdir}/versions"
+
+ # get current version and date of last git commit for each component (current versions and dates)
+ cd "${srcdir}/mupen64plus-rsp-z64"
+ _curr_ver_rspz64="$(_get_version)"
+ _curr_date_rspz64="$(_get_commit_date)"
+ cd "${srcdir}/mupen64plus-rsp-cxd4"
+ _curr_ver_rspcxd4="$(printf "r%s.g%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)")"
+ _curr_date_rspcxd4="$(_get_commit_date)"
+ cd "${srcdir}/mupen64plus-video-arachnoid"
+ _curr_ver_videoarachnoid="$(_get_version)"
+ _curr_date_videoarachnoid="$(_get_commit_date)"
+ cd "${srcdir}/mupen64plus-video-z64"
+ _curr_ver_videoz64="$(_get_version)"
+ _curr_date_videoz64="$(_get_commit_date)"
+ cd "${srcdir}/mupen64plus-video-glide64"
+ _curr_ver_videoglide64="$(_get_version)"
+ _curr_date_videoglide64="$(_get_commit_date)"
+
+ # get the most recent git commit date from updated git repositories
+ _curr_latest_commit="$(printf "%s\n" "$_curr_date_rspz64" \
+ "$_curr_date_rspcxd4" \
+ "$_curr_date_videoarachnoid" \
+ "$_curr_date_videoz64" \
+ "$_curr_date_videoglide64" | sort -r | head -n1)"
+
+ # patch min/max macros
+ cd "$srcdir/mupen64plus-video-glide64/src"
+ sed -i *.cpp *.h \
+ -e 's|min[[:blank:]]*(|glide_min(|g' \
+ -e 's|max[[:blank:]]*(|glide_max(|g'
+}
+
+pkgver() {
+ # git, tags available
+ cd "${srcdir}/mupen64plus-rsp-z64"
+ printf "%s.${_curr_latest_commit}\n" "$(git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g')"
+}
+
+build() {
+ if [ "$FORCE" = "1" ] # FORCE=1 is makepkg -f/--force option
+ then
+ msg "Forcing the build of all components..."
+ else
+ msg "Building only components that were updated..."
+ fi
+
+ # loop through each component and build them if necessary
+ for _component in ${_m64p_components}
+ do
+ _update_component="false"
+
+ # make initial steps before building
+ case "$_component" in
+ rsp-z64)
+ _component_name="rspz64"
+ _previous_version="$_prev_ver_rspz64"
+ _current_version="$_curr_ver_rspz64"
+ _current_date="$_curr_date_rspz64"
+ ;;
+ rsp-cxd4)
+ _component_name="rspcxd4"
+ _previous_version="$_prev_ver_rspcxd4"
+ _current_version="$_curr_ver_rspcxd4"
+ _current_date="$_curr_date_rspcxd4"
+ ;;
+ video-arachnoid)
+ _component_name="videoarachnoid"
+ _previous_version="$_prev_ver_videoarachnoid"
+ _current_version="$_curr_ver_videoarachnoid"
+ _current_date="$_curr_date_videoarachnoid"
+ ;;
+ video-z64)
+ _component_name="videoz64"
+ _previous_version="$_prev_ver_videoz64"
+ _current_version="$_curr_ver_videoz64"
+ _current_date="$_curr_date_videoz64"
+ ;;
+ video-glide64)
+ _component_name="videoglide64"
+ _previous_version="$_prev_ver_videoglide64"
+ _current_version="$_curr_ver_videoglide64"
+ _current_date="$_curr_date_videoglide64"
+ ;;
+ *)
+ printf "%s\n" "error: invalid component (this should not happen!)"
+ exit 1
+ ;;
+ esac
+
+ # build component if necessary
+ if [ "$(vercmp "$_current_version" "$_previous_version")" -gt "0" ] ||
+ [ "$FORCE" = "1" ] # FORCE=1 is makepkg -f/--force option
+ then
+ if [ "$_previous_version" = "" ]
+ then
+ _previous_version="none builded" # don't show a blank version
+ fi
+ msg2 "Building ${_component} ${_component_type}..."
+ msg2 " previous version: ${_previous_version}"
+ msg2 " current version: ${_current_version}"
+ make -C mupen64plus-${_component}/projects/unix clean $@
+ make -C mupen64plus-${_component}/projects/unix all $@
+ else
+ msg2 "Component ${_component} ${_component_type} is already up-to-date..."
+ printf "%s\n" " current version: ${_current_version}"
+ fi
+
+ # update "$srcdir"/versions" file with current versions and latest git commit dates
+ sed -i "s/^\(_prev_ver_${_component_name}=\).*$/\1$(printf "%s" "$_current_version" | sed 's/\./\\\./g')/" "$srcdir/versions"
+ sed -i "s/^\(_prev_date_${_component_name}=\).*$/\1$(printf "%s" "$_current_date" | sed 's/\./\\\./g')/" "$srcdir/versions"
+ done
+}
+
+package() {
+ for _component in ${_m64p_components}
+ do
+ printf "%s\n" "************************************ Installing ${_component} ${_component_type}"
+ make -C mupen64plus-${_component}/projects/unix PREFIX=/usr DESTDIR="$pkgdir" LDCONFIG='true' install $@
+ done
+}