Package Details: pcsx2-git 2.3.10.r0.g5441c7ed59-1

Git Clone URL: https://aur.archlinux.org/pcsx2-git.git (read-only, click to copy)
Package Base: pcsx2-git
Description: A Sony PlayStation 2 emulator
Upstream URL: https://github.com/PCSX2/pcsx2
Licenses: GPL-3.0+
Conflicts: pcsx2
Provides: pcsx2
Submitter: alucryd
Maintainer: weirdbeard (xiota)
Last Packager: weirdbeard
Votes: 130
Popularity: 0.33
First Submitted: 2014-03-26 14:17 (UTC)
Last Updated: 2024-11-08 23:36 (UTC)

Dependencies (32)

Required by (3)

Sources (8)

Pinned Comments

weirdbeard commented on 2024-08-17 03:40 (UTC)

https://github.com/PCSX2/pcsx2/pull/11632

This package now enables Cmake Package mode proper. PCSX2 will here on, be installed in the package standard folders /usr/bin, /usr/share, /usr/lib. Following the XDG standard pcsx2's config files remain in .config/PCSX2

In order to ensure a proper and clean upgrade. Uninstall this package COMPLETELY and clear cache before reinstalling.

Latest Comments

« First ‹ Previous 1 .. 9 10 11 12 13 14 15 16 17 18 19 .. 66 Next › Last »

drcrinkle commented on 2023-04-11 05:17 (UTC)

I have the same issue as @araruna, the problem does not go away with a clean build.

weirdbeard commented on 2023-03-30 18:49 (UTC)

Does it fix if you clear the cache and start from a clean build?

araruna commented on 2023-03-30 18:09 (UTC)

I'm getting an error while trying to update this package to the last version. (Messages are in pt-BR)

==> Validando source arquivos com b2sums...
    pcsx2 ... Ignorada
    pcsx2_patches ... Ignorada
    xz-pcsx2 ... Ignorada
    googletest ... Ignorada
    fmt ... Ignorada
    libchdr ... Ignorada
    rapidyaml ... Ignorada
    cmake ... Ignorada
    c4core ... Ignorada
    debugbreak ... Ignorada
    fast_float ... Ignorada
    glslang ... Ignorada
    vulkan-headers ... Ignorada
    libzip ... Ignorada
    zstd ... Ignorada
    rcheevos ... Ignorada
    pcsx2-qt.sh ... FALHOU
==> ERRO: Um ou mais arquivos não passaram na verificação de validade!
erro: falha ao baixar fontes para 'pcsx2-git-1.7.4275.r0.g66a13d4c3-1':

loathingkernel commented on 2023-03-24 14:50 (UTC)

Cheats are already separate as in, if you just build pcsx2 on its lonesome you won't have cheats.

I see that but that repo is unversioned which will cause issues with pulling the proper release in. But I guess it's minor and either solution is workable tbh.

Renaming sources will actually fix an issue with Vulkan-Headers and any like packages that when cloned do not share the naming scheme of PCSX2's expected submodule that's where overlapping can happen

That's what the source_name::internal_folder_name structure is for in the comment below. The source will be looked up by the first part and the internal submodule path by the second part. I know this is a becoming a whole lot right now, but I have had these issues before with my own packages and trying to satisfy conflicting requirements.

weirdbeard commented on 2023-03-24 14:40 (UTC) (edited on 2023-03-24 14:40 (UTC) by weirdbeard)

Cheats are already separate as in, if you just build pcsx2 on its lonesome you won't have cheats.

They keep them in a separate repo that gets its own pushes and pulls.

Having a package in itself respects that modularity because it becomes the packager/user's choice to install them.

Renaming sources will actually fix an issue with Vulkan-Headers and any like packages that when cloned do not share the naming scheme of PCSX2's expected submodule that's where overlapping can happen

loathingkernel commented on 2023-03-24 14:20 (UTC) (edited on 2023-03-24 14:21 (UTC) by loathingkernel)

@eclairevoyant I have a few questions on your points

remove cheats from install file (cheats should be a separate package)

Why should it be a separate package?

rename sources to make them easier to use in the submodule for-loop

well, the point is that those sources should also be shareable with other packages though SRCDEST, so using the original repository name should be the default if the source is the upstream and not a fork.

rename the install file to something unique to prevent overlapping with other packages

I don't see how overlapping could happen, but this is a good suggestion in general and historically what is being done.

loathingkernel commented on 2023-03-24 14:06 (UTC) (edited on 2023-03-24 15:47 (UTC) by loathingkernel)

I have the complete PKGBUILD that I sent to @weirdbeard here https://github.com/loathingKernel/PKGBUILDs/tree/master/aur/pcsx2-git

In the same email I justified my reasoning around some choices, I will just copy the relevant parts here too

So I looked through the PKGBUILD and the build process itself. Since everything is included as a submodule, I have also reduced the dependencies. I am building everything is a clean chroot to verify the deps. I will comment and document some things below.

Dependencies: This is what namcap has to say about the original package

pcsx2-git W: Unused shared library '/usr/lib64/ld-linux-x86-64.so.2' by file ('opt/pcsx2/pcsx2-qt')
pcsx2-git E: Dependency qt6-wayland specified in both depends and optdepends
pcsx2-git W: Dependency systemd-libs detected and implicitly satisfied (libraries ['usr/lib/libudev.so.1'] needed in files ['opt/pcsx2/pcsx2-qt'])
pcsx2-git W: Dependency gcc-libs detected and implicitly satisfied (libraries ['usr/lib/libstdc++.so.6', 'usr/lib/libgcc_s.so.1'] needed in files ['opt/pcsx2/pcsx2-qt'])
pcsx2-git W: Dependency hicolor-icon-theme detected and implicitly satisfied (needed for hicolor theme hierarchy)
pcsx2-git W: Dependency libpng detected and implicitly satisfied (libraries ['usr/lib/libpng16.so.16'] needed in files ['opt/pcsx2/pcsx2-qt'])
pcsx2-git W: Dependency libxrandr detected and implicitly satisfied (libraries ['usr/lib/libXrandr.so.2'] needed in files ['opt/pcsx2/pcsx2-qt'])
pcsx2-git W: Dependency curl detected and implicitly satisfied (libraries ['usr/lib/libcurl.so.4'] needed in files ['opt/pcsx2/pcsx2-qt'])
pcsx2-git W: Dependency zlib detected and implicitly satisfied (libraries ['usr/lib/libz.so.1'] needed in files ['opt/pcsx2/pcsx2-qt'])
pcsx2-git W: Dependency xz detected and implicitly satisfied (libraries ['usr/lib/liblzma.so.5'] needed in files ['opt/pcsx2/pcsx2-qt'])
pcsx2-git W: Dependency glibc detected and implicitly satisfied (libraries ['usr/lib/libc.so.6', 'usr/lib/ld-linux-x86-64.so.2', 'usr/lib/libm.so.6'] needed in files ['opt/pcsx2/pcsx2-qt'])
pcsx2-git W: Dependency included, but may not needed ('libjpeg-turbo')
pcsx2-git W: Dependency included, but may not needed ('libzip')
pcsx2-git W: Dependency included, but may not needed ('xorg-xrandr')
pcsx2-git W: Dependency included, but may not needed ('libxrender')
pcsx2-git W: Dependency included, but may not needed ('linux-api-headers')
pcsx2-git W: Dependency included, but may not needed ('libpulse')
pcsx2-git W: Dependency included, but may not needed ('ffmpeg')
pcsx2-git W: Dependency included, but may not needed ('portaudio')
pcsx2-git W: Dependency included, but may not needed ('libsamplerate')
pcsx2-git W: Dependency included, but may not needed ('qt6-wayland')
pcsx2-git W: Dependency included, but may not needed ('qt6-tools')
pcsx2-git W: Dependency included, but may not needed ('qt6-svg')
pcsx2-git W: Dependency included, but may not needed ('wayland')
pcsx2-git W: Dependency included, but may not needed ('zstd')

capabilities are also now removed when the package is removed

Some notable things:

  • qt6-tools is a large package that it is not required at runtime and it was moved to makedepends.

  • qt6-wayland moved to makedepends and also optdepends

  • libgl replaced with libglvnd, xorg-xrandr with its libxrandr library, xorgproto is pulled in by qt6-base

  • Any packages mentioned below that are handled by submodules have been removed from the dependencies

  • libpulse has been replaced by alsa-lib for basic audio, and libpulse is moved to makedepends and optdepends

  • some implicit deps that are not part of the base meta-package or its deps were made explicit, The list is [hicolor-icon-theme, libxrandr, libpng]

  • I have left a few of the dependencies in there as comments for future reference since I am unsure, they don't seem to be used or are implicit. The list is [libjpeg-turbo, libxrenderer, linux-api-headers, portaudio, libsamplerate]

  • swig and python makedepends seem to be unused, vulkan-headers is a submodule

Patches: I have removed them. The reasoning is the added maintenance burden and that I have implemented a different solution for the directory structure.

I am installing the package under /opt/pcsx2 with resources and cheats*.zip inside resources, all under the same directory. This is mostly static data as far as I can tell and it doesn't need to modified. To run the program a very simple script is installed in /usr/bin with the same name as the executable.

PCSX2 cmake supports the following system libs with CMake unmodified:

    -DUSE_SYSTEM_FMT=OFF \
    -DUSE_SYSTEM_LIBZIP=OFF \
    -DUSE_SYSTEM_RYML=OFF \
    -DUSE_SYSTEM_SDL2=ON \
    -DUSE_SYSTEM_ZSTD=OFF \

I have set them all to OFF except for SDL2 since that is also what upstream does. I tried using system libs but rapidyaml blocked that

  • fmt: it can use the system provided one

  • libzip: it can use the system provided one

  • rapidyaml: I tried using the system provided one but that in turn required fast_float which exists in the AUR but it is hopelessly outdated. If that changes, the package could use the system one.

  • sdl2: it is better to use the one provided by the system, it also pulls some other required dependencies with it, which otherwise should be listed.

  • zstd: it can use the system provided one

Note: I still don't know if it would be beneficial to use system libs for the rest of them. I will take another look into it down the line.

I used the following structure to specify the relationship between the source name and the directory for the submodules

    _pcsx2_submodules=(
        xz-pcsx2::3rdparty/xz/xz
        googletest::3rdparty/gtest
        fmt::3rdparty/fmt/fmt
        wil::3rdparty/wil
        libchdr::3rdparty/libchdr/libchdr
        rapidyaml::3rdparty/rapidyaml/rapidyaml
        glslang::3rdparty/glslang/glslang
        Vulkan-Headers::3rdparty/vulkan-headers
        libzip::3rdparty/libzip/libzip
        zstd::3rdparty/zstd/zstd
        rcheevos::3rdparty/rcheevos/rcheevos
    )
    for submodule in ${_pcsx2_submodules[@]}; do
        git submodule init "${submodule#*::}"
        git submodule set-url "${submodule#*::}" "$srcdir"/"${submodule%::*}"
        git -c protocol.file.allow=always submodule update "${submodule#*::}"
    done

The part before the :: is the source name, and the part after the :: is the directory for the submodule inside the pcsx2 source

I would like to reduce the submodules down to anything that doesn't require patching the build system, what do you think?

weirdbeard commented on 2023-03-24 04:37 (UTC)

That's fine, it's not on me at this point xD

eclairevoyant commented on 2023-03-24 04:35 (UTC)

BTW I will probably not get around to packaging the cheats until the weekend, once I do I'll post the package name here and it could be added to the optdepends

eclairevoyant commented on 2023-03-23 23:27 (UTC) (edited on 2023-03-23 23:35 (UTC) by eclairevoyant)

As fun as this game of telephone has been, I'll just provide a patch: https://gist.github.com/eclairevoyant/76454650b6fcd68f329e0d7bc6b84473

This fixes the following issues:

  • upgrade sha256sums to b2sums

  • remove cheats from install file (cheats should be a separate package)

  • add some submodules that were present in .gitmodules but missing from the PKGBUILD

  • rename sources to make them easier to use in the submodule for-loop

  • actually use all the submodules that were downloaded

  • improve readability of prepare()

  • remove v from start of pkgver

  • allow file-protocol git sources only within the PKGBUILD

  • do not specify -j flag for ninja (ninja will automatically choose the best number of threads based on the system)

  • remove unneeded flags for some commands (e.g. cp -r doesn't make sense for a single file, so just use cp)

  • rename the install file to something unique to prevent overlapping with other packages

  • remove the / prefix in the install file (everything should be relative to the chroot of the root directory of the target filesystem)

  • add pcsx2 to the provides() array

Please apply the patch using git am pcsx2-fix.patch