Username: Password: Remember me
Search - Advanced
Package Details

unciv 3.11.13-1
Open-source Android/Desktop remake of Civ V

Category: games

Submitter: sampla
Maintainer: None
Votes: 3

License: MPL-2.0

Last Updated: 2020/11/18 - 19:01:42 +0000
First Submitted: 2019/11/27 - 03:38:13 +0000

Tarball :: PKGBUILD



Comment by: sampla on Thu, 20 Aug 2020 20:03:55 +0000

I've noticed a few oddly named Unciv releases like "3.9.20-scenarioTest2"
and "3.10.2-diplomaticRelationshipDisabling". I'm assuming that anything
besides "patch1", etc after the main version number means it's a test
release for an unstable feature or debugging. Thus I am ignoring these
releases. It should be an easy PKGBUILD change if you want to try them.

Comment by: sampla on Thu, 25 Jun 2020 04:52:03 +0000

When I think about it, this package should be called "unciv-bin"
because it's downloading a precompiled binary from the upstream
releases. I'm thinking about resubmitting this package with the
new name and turning the current one into a transitional dummy
package that just depends on the new one. Then I could disown
this package and make it available for anyone who wants to make a
proper "download and compile source" package.

Comment by: sampla on Tue, 02 Jun 2020 21:58:54 +0000

For those who are curious, the "pkgrel" version (e.g., the last "3" in "3.9.0-3") is set to 1 + $PATCH. This scheme will break the package ever needs redoing within a given upstream Unciv release. But it's the cleanest way I could think of to incorporate that information.

Comment by: sampla on Sat, 30 May 2020 04:49:47 +0000

I've decided to keep maintaining this package after all, but
would gladly disown it if a more dedicated maintainer wants to
take over. I also posted the PKGBUILD update script to [1].

[1]: … 0f654fd53d

Comment by: sampla on Sat, 09 May 2020 05:38:44 +0000

(License note: The script I pasted into my previous comment is my own work and I hereby license it under the WTFPL version 2.)

Comment by: sampla on Sat, 09 May 2020 05:33:12 +0000

I'm moving on from maintaining this package for personal reasons.

For anyone who wishes to adopt this package, here's the script I've been using for automating updates (i.e., change PKGBUILD to point to new version, download it, update sha256sums array, and make unciv-$pkgver-$pkgrel.src.tar.gz for upload). It should be ran from the parent directory of an "unciv" directory that contains the PKGBUILD. I'm sorry for the messy code.


echo "Flags: ($*)"
# Check that everything's okay to run this
if ! cd "$(dirname "$(readlink -f "$0")")/unciv"; then
    echo "Could not 'cd' to script's directory."
    exit 1
echo "cd'd"
if [ "$#" = "2" ]; then
    set "$1"
    echo "PATCH=$PATCH"
if [ "$#" != "1" ]; then
    echo "$0 newversion [patch]"
    echo "Updates the PKGBUILD to the new version, removes old downloads, and builds."
    echo "With '-' as the new version, rebuild for the old version."
    exit 1
echo "enough args"
echo "NEW=$NEW"
OLD="$(grep -E "pkgver=[0-9.]+" PKGBUILD | cut -c8-)"
echo "OLD=$OLD"
OLD_PATCH="$(grep -E "_patch=[0-9.]*" PKGBUILD | cut -c8-)"
if [ "$OLD_FULL" = "$NEW_FULL" ]; then
    echo "Already at version $OLD. Use '-' to keep the same version."
    exit 1
echo "tested OLD vs NEW"
if [ "$NEW_FULL" = "-" ]; then

# Save old files, and recover new ones if previously saved.
echo "Shuffling current files as applicable..."
for f in "${FILES[@]}"; do
    if [ -e "$f" ]; then
        mv "$f" "$f.$OLD_FULL"
    if [ -e "$f.$NEW_FULL" ]; then
        mv "$f.$NEW_FULL" "$f"

# Switch PKGBUILD to new version
echo "Updating version in PKGBUILD..."
sed -r "s/^pkgver=$OLD$/pkgver=$NEW/g" -i ./PKGBUILD
sed -r "s/[0-9a-f]{64}/SKIP/g" -i ./PKGBUILD
if [ -n "$PATCH" ]; then
    echo "Setting patch version $PATCH."
    sed -r "s/^#?_patch=[0-9]*/_patch=$PATCH/g" -i ./PKGBUILD
    echo "Setting nil patch version."
    sed -r "s/^#?_patch=[0-9]*/#_patch=/g" -i ./PKGBUILD
sed -r "s/^pkgrel=[0-9.]+$/pkgrel=$PKGREL/g" -i ./PKGBUILD

# Download and update checksums for new version
echo "Getting sources..."
makepkg --nobuild
echo "Updating checksums..."
makepkg --geninteg | grep -Eo '[0-9a-f]{64}' |
    while read -r; do
        # Per, this GNU sed
        # command matches the find pattern ('SKIP') from line 0 or
        # later, uses it in an "s/find/replace/" expression (while
        # reusing the find pattern with "//"), and replaces it with
        # the replace pattern ('$REPLY').
        sed -r "0,/'SKIP'/ s//'$REPLY'/" -i ./PKGBUILD

# Make source tarball to upload to the CCR
echo "Making source tarball"
makepkg --source

echo "Done! ^.^"

Comment by: sampla on Sat, 07 Mar 2020 23:39:11 +0000

Note: The "Sources" list on this page is inaccurate because I use a "_patch" variable and "${_patch:+-patch$_patch}" Bash syntax in the PKGBUILD to match upstream "-patch1" versions.

I also made a script for automating PKGBUILD updates, but I want to fix some things before posting it (or see if there's a better way than a ton of sed commands to update PKGBUILD versions).…

Comment by: sampla on Sun, 23 Feb 2020 02:03:17 +0000

This package has frequent upstream updates and is relatively low priority for me (updates are unlikely to have particular security implications, and I mostly play Unciv more on my phone). So I triage and this package is often a couple days/weeks out of date. If anyone wants to keep it more up-to-date, then I'll disown it so you can take over. Otherwise, enjoy the game!