Package Details: yuzu-mainline-git r13623.e0cf27650-1

Git Clone URL: https://aur.archlinux.org/yuzu-mainline-git.git (read-only, click to copy)
Package Base: yuzu-mainline-git
Description: An experimental open-source Nintendo Switch emulator/debugger
Upstream URL: https://github.com/yuzu-emu/yuzu-mainline
Keywords: emulator game qt switch
Licenses: GPL2
Conflicts: yuzu-canary-git, yuzu-git
Provides: yuzu, yuzu-cmd
Submitter: bscubed
Maintainer: bscubed
Last Packager: bscubed
Votes: 9
Popularity: 0.63
First Submitted: 2019-11-24 04:03
Last Updated: 2020-02-08 02:56

Pinned Comments

bscubed commented on 2019-11-24 17:42

If you're wondering what happened to yuzu-canary-git, read more here https://yuzu-emu.org/entry/yuzu-migration/ TL;DR: yuzu canary and yuzu nightly are being replaced by a single package, yuzu-mainline. This is the mainline build and contains untested, bleeding-edge features over yuzu stable.

bscubed commented on 2018-11-12 01:49

Some things to note: This is an unofficial package, thus is not officially supported by the Yuzu team. Please don't ask for help on their forums or discord if you run into issues with this build, as it might devote import development resources to a bug that might have to do with running Yuzu on an unofficial platform. If you encounter an issue, feel free to comment on this package and I'll try to point you in the right direction.

Also, this build is in active development. Builds might break every once in a while.

If you're looking for the QT version of this package, it has now been merged in this package. No need for two packages anymore, and no need to compile everything twice.

Thanks for using my package and have a nice day! :)

Latest Comments

1 2 3 4 Next › Last »

Terence commented on 2020-02-28 15:30

@bscubed I see, thanks for explaining, as long as you are aware it's usually the user responsibility to do that. Talking about improving user experience, can you give my draft PKGBUILD a try? This will prevent having to reclone each submodule when doing a clean build.

bscubed commented on 2020-02-08 02:15

@Terence Thank you for your suggestion, however, since I am the one who wrote the pkgver() function for my package, I know how it works and there are several key reasons I choose to bump the version anyways. The first is because many users install packages through AUR helpers and rely on these managers to notify them of updates. Bumping the version allows it to show up in the manager they use along with other updates keeping yuzu up to date with minimal user interaction. The second reason is because after I test my packages for errors (which I do at least weekly) the pkgver is updated, so why not update the package anyways? Updates are a sign a maintainer is active, and still cares about the project they committed to. And if I can make updates easier for the users of my package, I will.

Terence commented on 2020-01-30 22:29

@bscubed This is a VCS package which has a pkgver() function so you shouldn't update the PKGBUILD just to bump the version because it's the responsibility of the users to track updates.

Terence commented on 2019-12-31 01:54

Hey I made a draft to include the submodules within makepkg so they do not get downloaded each time src is cleared: (Also please unset the executable bit of the PKGBUILD)

# Maintainer: Brendan Szymanski <bscubed@pm.me>

_pkgname=yuzu
pkgname=$_pkgname-mainline-git
pkgver=r13317.d2e5e38e5
pkgrel=1
pkgdesc="An experimental open-source Nintendo Switch emulator/debugger"
arch=('i686' 'x86_64')
url="https://github.com/yuzu-emu/yuzu-mainline"
license=('GPL2')
provides=('yuzu' 'yuzu-cmd')
conflicts=('yuzu-git' 'yuzu-canary-git')
depends=('shared-mime-info' 'desktop-file-utils' 'sdl2' 'qt5-base' 'qt5-multimedia' 'qt5-tools' 'libxkbcommon-x11' 'libfdk-aac')
makedepends=('git' 'cmake' 'python2')
optdepends=('qt5-wayland: for Wayland support')
source=("$_pkgname::git+git+https://github.com/yuzu-emu/yuzu-mainline"
                "inih::git+https://github.com/svn2github/inih"
                "boost::git+https://github.com/yuzu-emu/ext-boost"
                "catch::git+https://github.com/philsquared/Catch"
                "cubeb::git+https://github.com/kinetiknz/cubeb"
                "dynarmic::git+https://github.com/MerryMage/dynarmic"
                "fmt::git+https://github.com/fmtlib/fmt"
                "lz4::git+https://github.com/lz4/lz4"
                "unicorn::git+https://github.com/yuzu-emu/unicorn"
                "mbedtls::git+https://github.com/DarkLordZach/mbedtls"
                "opus::git+https://github.com/xiph/opus"
                "soundtouch::git+https://github.com/citra-emu/ext-soundtouch"
                "libressl::git+https://github.com/citra-emu/ext-libressl-portable"
                "discord-rpc::git+https://github.com/discordapp/discord-rpc"
                "Vulkan-Headers::git+https://github.com/KhronosGroup/Vulkan-Headers"
                "zstd::git+https://github.com/facebook/zstd"
                "sirit::git+https://github.com/ReinUsesLisp/sirit"
                "libzip::git+https://github.com/nih-at/libzip"
                "zlib::git+https://github.com/madler/zlib"
                )
md5sums=('SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP'
         'SKIP')

pkgver() {
    cd "$srcdir/$_pkgname"
    echo "r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)"
}

prepare() {
    cd "$srcdir/$_pkgname"

    git submodule init
    for mod_url in ${source[@]:2}
    do
        mod_name=${mod_url%%:*}
        git config submodule.$mod_name.url $srcdir/$mod_name
    done

    git submodule update --init --recursive 

}

build() {
    # Trick the compiler into thinking we're building from a continuous
    # integration tool so the build number is correctly shown in the title
    cd "$srcdir/$_pkgname"
    export CI=true
    export TRAVIS=true
    export TRAVIS_REPO_SLUG=yuzu-emu/yuzu-mainline
    export TRAVIS_TAG=$(git describe --tags)

    # Hopefully temporary fix for a compilation error involving fmt
    CXXFLAGS+=" -DFMT_USE_USER_DEFINED_LITERALS=0"

    mkdir -p build && cd build
    cmake .. \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release \
      -DYUZU_USE_BUNDLED_UNICORN=ON \
      -DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON \
      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
      -DUSE_DISCORD_PRESENCE=ON \
    -DENABLE_VULKAN=ON
    make
}

check() {
    cd "$srcdir/$_pkgname/build"
    make test
}

package() {
    cd "$srcdir/$_pkgname/build"
    make DESTDIR="$pkgdir/" install

    # Temporary fix until yuzu fixes the zlib and libzip patch
    cd "$pkgdir/usr"
    rm -rf include lib lib64 share/man share/pkgconfig
}

gee commented on 2019-11-27 06:46

Actually it did not install because of yuzu-canary-git, so I guess replaces is not enough it needs to conflict with it too.

gee commented on 2019-11-27 05:23

Sorry for the wrong idea, I indeed had to manually switch packages. :/

bscubed commented on 2019-11-27 05:20

@gee A good idea! Unfortunately, the replaces keyword doesn't work for AUR packages. I think the only solution is to have users manually upgrade. If there's another workaround, I'd be happy to hear it. https://bbs.archlinux.org/viewtopic.php?id=213750

gee commented on 2019-11-25 02:54

I wonder if a provides/replaces in the PKGBUILD would be a good idea, as it is people not following yuzu will just stay on the old package for ever and might be confused why it is not available anymore.

bscubed commented on 2019-11-24 17:42

If you're wondering what happened to yuzu-canary-git, read more here https://yuzu-emu.org/entry/yuzu-migration/ TL;DR: yuzu canary and yuzu nightly are being replaced by a single package, yuzu-mainline. This is the mainline build and contains untested, bleeding-edge features over yuzu stable.

gee commented on 2019-11-24 04:39

That makes sense, thank you for the explanation!