diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2023-08-15 16:10:10 -0400 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2023-08-15 16:20:30 -0400 |
commit | 842402ffd6f107b9ad0784431b3d3d2b4fa7ed8d (patch) | |
tree | edfd3735df125e51fefd9a56803d9f0854a1643a /app-emulation | |
parent | app-emulation/vkd3d-proton: drop 2.8 (diff) | |
download | gentoo-842402ffd6f107b9ad0784431b3d3d2b4fa7ed8d.tar.gz gentoo-842402ffd6f107b9ad0784431b3d3d2b4fa7ed8d.tar.bz2 gentoo-842402ffd6f107b9ad0784431b3d3d2b4fa7ed8d.zip |
app-emulation/dxvk: fix setup script with wine[wow64]
Currently it will try to install both 32bit and 64bit dlls
in system32. Very few likely use wow64 so far, but this could
come biting later without a revbump.
Ideally do not want to use these scripts anymore and write
something new that could be packaged separately and shared
between dxvk, vkd3d-proton, and potential new packages.
Albeit haven't explored the cleanest way to do this yet,
so just do a dirty sanity check + fallback for now (wish
could just use these directly from system paths, but wine
really does not seem to offer a way to do this).
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'app-emulation')
-rw-r--r-- | app-emulation/dxvk/dxvk-1.10.3-r1.ebuild (renamed from app-emulation/dxvk/dxvk-1.10.3.ebuild) | 1 | ||||
-rw-r--r-- | app-emulation/dxvk/dxvk-2.2-r1.ebuild (renamed from app-emulation/dxvk/dxvk-2.2.ebuild) | 8 | ||||
-rw-r--r-- | app-emulation/dxvk/dxvk-9999.ebuild | 8 | ||||
-rw-r--r-- | app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch | 14 |
4 files changed, 27 insertions, 4 deletions
diff --git a/app-emulation/dxvk/dxvk-1.10.3.ebuild b/app-emulation/dxvk/dxvk-1.10.3-r1.ebuild index 378c0c51c184..3a56e2fdd338 100644 --- a/app-emulation/dxvk/dxvk-1.10.3.ebuild +++ b/app-emulation/dxvk/dxvk-1.10.3-r1.ebuild @@ -35,6 +35,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${PN}-1.10.3-gcc13.patch + "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch ) pkg_pretend() { diff --git a/app-emulation/dxvk/dxvk-2.2.ebuild b/app-emulation/dxvk/dxvk-2.2-r1.ebuild index cc5675a641c1..21905a3981fb 100644 --- a/app-emulation/dxvk/dxvk-2.2.ebuild +++ b/app-emulation/dxvk/dxvk-2.2-r1.ebuild @@ -49,6 +49,10 @@ BDEPEND=" dev-util/glslang !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" +PATCHES=( + "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch +) + pkg_pretend() { [[ ${MERGE_TYPE} == binary ]] && return @@ -77,11 +81,11 @@ src_prepare() { mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die fi + cp -p -- "${DISTDIR}"/setup_dxvk.sh . || die default - sed "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" \ - "${DISTDIR}"/setup_dxvk.sh > setup_dxvk.sh || die + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die } src_configure() { diff --git a/app-emulation/dxvk/dxvk-9999.ebuild b/app-emulation/dxvk/dxvk-9999.ebuild index 062d70604759..b4b07947ffeb 100644 --- a/app-emulation/dxvk/dxvk-9999.ebuild +++ b/app-emulation/dxvk/dxvk-9999.ebuild @@ -49,6 +49,10 @@ BDEPEND=" dev-util/glslang !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" +PATCHES=( + "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch +) + pkg_pretend() { [[ ${MERGE_TYPE} == binary ]] && return @@ -77,11 +81,11 @@ src_prepare() { mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die fi + cp -p -- "${DISTDIR}"/setup_dxvk.sh . || die default - sed "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" \ - "${DISTDIR}"/setup_dxvk.sh > setup_dxvk.sh || die + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die } src_configure() { diff --git a/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch b/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch new file mode 100644 index 000000000000..707eba19b24b --- /dev/null +++ b/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch @@ -0,0 +1,14 @@ +Dirty workaround to try syswow64 if paths are the same. This can happen +with USE=wow64 on wine where wine64 is a symlink to wine. + +TODO: dxvk's and vkd3d-proton's setup script should be rewritten and packaged +separately (shared) as upstream hardly support these (dxvk dropped altogether). +--- a/setup_dxvk.sh ++++ b/setup_dxvk.sh +@@ -89,2 +89,6 @@ + win32_sys_path="${win32_sys_path/$'\r'/}" ++ if [ "$win32_sys_path" = "$win64_sys_path" ]; then ++ win32_sys_path=$($wine winepath -u 'C:\windows\syswow64' 2> /dev/null) ++ win32_sys_path="${win32_sys_path/$'\r'/}" ++ fi + fi |