Package Details: pcsx2-git 1.7.5703.r0.g070068366f-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: GPL2, GPL3, LGPL3, LGPL2.1
Conflicts: pcsx2
Provides: pcsx2
Submitter: alucryd
Maintainer: rafaelff (weirdbeard)
Last Packager: weirdbeard
Votes: 128
Popularity: 1.15
First Submitted: 2014-03-26 14:17 (UTC)
Last Updated: 2024-04-13 15:10 (UTC)

Dependencies (31)

Required by (3)

Sources (11)

Pinned Comments

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 10 .. 56 Next › Last »

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

weirdbeard commented on 2023-03-23 17:09 (UTC)

And now yay is happy stage bow

weirdbeard commented on 2023-03-23 16:36 (UTC) (edited on 2023-03-23 16:55 (UTC) by weirdbeard)

No, I get it and I'll fix that next, I decided to flip back to VCS style because I want the submodule sources to cache so they don't update every time. Also, I know the upstream team isn't planning any major submodule changes in the future. It's just getting yay to be happy since it seems sensitive to having every source compared to makepkg

eclairevoyant commented on 2023-03-23 16:30 (UTC)

Thanks for taking a look, but changing global config is pretty much never appropriate for a PKGBUILD, instead you should use git -c protocol.file.allow=always submodule update

weirdbeard commented on 2023-03-23 15:47 (UTC)

Sorry for pushing SRCINFO, I just changed the submodules back to VCS style... For now at least

loathingkernel commented on 2023-03-23 14:46 (UTC) (edited on 2023-03-23 15:21 (UTC) by loathingkernel)

As an extension to what @eclairevoyant already said, the submodules should be specified in the sources array and cloned from local copies, also as per Archwiki suggestions. As it is you are forcing anyone building the package to re-download the full repositories of all the submodules each time they rebuild the package. Also, if a submodule repo is a fork of some other repo, the destination directory in the source array should be named in something that won't conflict with the upstream repo, since makepkg supports global source directories through SRCDEST.

Since this can be a chore for packages where upstream hates distro packaging and change submodules regularly without the ability to easily use system packages, you could at least instruct git submodule to do shallow clones, saving on both space and time.

As a last note, the errors in the PKGBUILD are too numerous to mention all of them. Please consult the relevant Archwiki articles, PKGBUILDs from the official repositories. The PKGBUILD is broken as it is.

Some other examples:

The cheats download at post_install (can't those be part of the sources?) as they as they won't be removed when the package is uninstalled, because they are not part of it. Also using sudo, is pointless as your permissions are already elevated when installing a package.

The version SHOULD NOT start with v, it has to be removed. Take a look at /usr/share/pacman/PKGBUILD-vcs.proton

the install script is historically named $pkgname.install

And since upstream is being difficult about downstream packaging, it might be worth exploring installing it in /var/games or /opt as whole and giving access to the users through the games group https://wiki.archlinux.org/title/users_and_groups#User_groups

eclairevoyant commented on 2023-02-18 05:58 (UTC) (edited on 2023-02-18 06:00 (UTC) by eclairevoyant)

You don't need to push updates here unless the build process or output package is actually changing (e.g. adding new patches, changing dependencies, etc.). VCS packages (which -git packages are) will automatically pull the current HEAD based on the sources array (unless you explicitly specify a commit). Users should rebuild regularly if they choose to use -git packages.

Also, this part makes no sense:

OPTIONS+=(
  epoch = 1
)

and this code also does nothing since the depends array is immediately overwritten on the following line:

depends=('rapidyaml>=0.4')

You can also condense these lines:

 mkdir -p ${pkgdir}/usr/share/icons/hicolor/64x64/apps
 cp ${srcdir}/pcsx2/pcsx2/Resources/AppIcon64.png ${pkgdir}/usr/share/icons/hicolor/64x64/apps/PCSX2.png

into just one line:

install -Dm644 pcsx2/pcsx2/Resources/AppIcon64.png "$pkgdir/usr/share/icons/hicolor/64x64/apps/PCSX2.png"

Finally, you should be quoting $srcdir and $pkgdir wherever they're used as per the Arch packaging guidelines. The other points mentioned are suggestions, but this is a clear requirement. You can even leave off $srcdir from the beginning of most of the commands, since you are guaranteed to be in $srcdir at the start of each function.

abouvier commented on 2023-02-09 14:35 (UTC)

You're not supposed to update the pkgver every time a commit is published upstream :p

SycoLTH commented on 2023-02-08 00:48 (UTC)

Hi, I'm trying this on a new arch installation, but I get

Using precompiled headers.
-- Found Python: /usr/bin/python3.10 (found version "3.10.9") found components: Interpreter 
-- Configuring done
CMake Error at pcsx2/CMakeLists.txt:1125 (target_link_libraries):
  The link interface of target "PCSX2_FLAGS" contains:

    PkgConfig::LIBUDEV

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.



-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: pcsx2-git

is there some dependency missing? Thanks