summaryrefslogtreecommitdiff
blob: 23effcddc10f7a875d7fb554f6037003634be922 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Copyright 2023-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

PYTHON_COMPAT=( python3_{10..12} )
inherit python-any-r1

if [[ ${PV} == 9999 ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://github.com/PCSX2/pcsx2_patches.git"
else
	HASH_PCSX2_PATCHES=42d7ee72b66955e3bbd2caaeaa855f605b463722
	SRC_URI="
		https://github.com/PCSX2/pcsx2_patches/archive/${HASH_PCSX2_PATCHES}.tar.gz
			-> ${P}.tar.gz
	"
	S=${WORKDIR}/${PN}-${HASH_PCSX2_PATCHES}
	KEYWORDS="amd64"
fi

DESCRIPTION="Collection of game patches for use with PCSX2 (e.g. widescreen hacks)"
HOMEPAGE="https://github.com/PCSX2/pcsx2_patches/"

# these are normally distributed by upstream with PCSX2 which is GPL-3+
LICENSE="GPL-3+"
SLOT="0"

BDEPEND="${PYTHON_DEPS}"

src_compile() {
	# upstream uses a constantly replaced "latest" patches.zip (currently no
	# real releases), and github's .zip archives cannot be used either due to
	# having the patches/ subdirectory -- so we use a snapshot and repack
	# (could use app-arch/zip, but python is more likely to skip a dependency)
	ebegin "Creating patches.zip"
	"${PYTHON}" - <<-EOF
		import pathlib
		from zipfile import ZipFile, ZIP_DEFLATED

		patches = pathlib.Path("patches/")

		with ZipFile("patches.zip", "w", ZIP_DEFLATED, compresslevel=9) as archive:
		    for file in patches.iterdir():
		        archive.write(file, arcname=file.name)
	EOF
	eend ${?} || die
}

src_install() {
	insinto /usr/lib/pcsx2/resources
	doins patches.zip

	einstalldocs
}