diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2024-11-22 22:34:36 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2024-11-23 18:43:12 +0100 |
commit | f2307c368c138f7c021e7a35d5a6eb81e9c686a7 (patch) | |
tree | 5fe78d028b85aaee50079161fdfae05f7f3cd70e /games-action | |
parent | games-action/prismlauncher: Drop 8.2-r1 and 8.3 (diff) | |
download | gentoo-f2307c368c138f7c021e7a35d5a6eb81e9c686a7.tar.gz gentoo-f2307c368c138f7c021e7a35d5a6eb81e9c686a7.tar.bz2 gentoo-f2307c368c138f7c021e7a35d5a6eb81e9c686a7.zip |
games-action/prismlauncher: Drop IUSE qt6
Style fixes, cleanup filler words, empty lines
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'games-action')
-rw-r--r-- | games-action/prismlauncher/prismlauncher-9.1-r1.ebuild | 117 | ||||
-rw-r--r-- | games-action/prismlauncher/prismlauncher-9999.ebuild | 95 |
2 files changed, 145 insertions, 67 deletions
diff --git a/games-action/prismlauncher/prismlauncher-9.1-r1.ebuild b/games-action/prismlauncher/prismlauncher-9.1-r1.ebuild new file mode 100644 index 000000000000..d3ea8f51ecdd --- /dev/null +++ b/games-action/prismlauncher/prismlauncher-9.1-r1.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +QTMIN=6.0.0 +inherit cmake java-pkg-2 optfeature toolchain-funcs xdg + +DESCRIPTION="Custom, open source Minecraft launcher" +HOMEPAGE="https://prismlauncher.org/ https://github.com/PrismLauncher/PrismLauncher" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/PrismLauncher/PrismLauncher" + EGIT_SUBMODULES=( + '*' '-libraries/cmark' '-libraries/extra-cmake-modules' '-libraries/filesystem' '-libraries/quazip' + '-libraries/tomlplusplus' '-libraries/zlib' + ) +else + MY_PN="PrismLauncher" + # use vendored tarball to avoid dealing with submodules directly + SRC_URI=" + https://github.com/PrismLauncher/PrismLauncher/releases/download/${PV}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz + " + S="${WORKDIR}/${MY_PN}-${PV}" + KEYWORDS="~amd64 ~arm64" +fi + +# GPL-3 for PolyMC (PrismLauncher is forked from it) and Prism itself +# Apache-2.0 for MultiMC (PolyMC is forked from it) +# LGPL-3+ for libnbtplusplus +# rest of its libs: https://github.com/PrismLauncher/PrismLauncher/tree/develop/libraries +LICENSE="Apache-2.0 BSD BSD-2 GPL-2+ GPL-3 ISC LGPL-2.1+ LGPL-3+" +SLOT="0" +IUSE="test" + +RESTRICT="!test? ( test )" + +# Required at both build time and runtime +COMMON_DEPEND=" + app-text/cmark:= + dev-cpp/tomlplusplus + >=dev-libs/quazip-1.3-r2:=[qt6(+)] + >=dev-qt/qtbase-${QTMIN}:6[concurrent,gui,network,widgets,xml(+)] + >=dev-qt/qt5compat-${QTMIN}:6 + >=dev-qt/qtnetworkauth-${QTMIN}:6 + sys-libs/zlib +" +# gulrak-filesystem dependency is only needed at build time, because we don't +# actually use it on Linux, only on legacy macOS. Still, we need it present at +# build time to appease CMake, and having it like this makes it easier to +# maintain than patching the CMakeLists file directly. +DEPEND="${COMMON_DEPEND} + dev-cpp/gulrak-filesystem + media-libs/libglvnd + >=virtual/jdk-1.8.0:* +" +# QtSvg imageplugin needed at runtime for svg icons, via QIcon. +# At runtime we don't depend on JDK, only JRE +# And we need more than just the GL headers +RDEPEND="${COMMON_DEPEND} + >=dev-qt/qtsvg-${QTMIN}:6 + >=virtual/jre-1.8.0:* + virtual/opengl +" +BDEPEND=" + app-text/scdoc + >=kde-frameworks/extra-cmake-modules-6.0.0:* + virtual/pkgconfig +" + +src_prepare() { + cmake_src_prepare + + local java="$(java-config -f)" + local java_version=${java//[^0-9]/} + if [[ ${java_version} -ge 20 ]]; then + elog "Java 20 and up has dropped binary compatibility with java 7." + elog "${PN} is being compiled with java ${java_version}." + elog "The sources will be patched to build binary compatible with" + elog "java 8 instead of java 7. This may cause issues with very old" + elog "Minecraft versions and/or older forge versions." + elog + elog "If you experience any problems, install an older java compiler" + elog "and select it with \"eselect java\", then recompile ${PN}." + eapply "${FILESDIR}/${PN}-9.1-openjdk21.patch" + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_INSTALL_PREFIX="/usr" + # Resulting binary is named prismlauncher + -DLauncher_APP_BINARY_NAME="${PN}" + -DLauncher_BUILD_PLATFORM="Gentoo" + -DLauncher_QT_VERSION_MAJOR=6 + + -DENABLE_LTO=$(tc-is-lto) + -DBUILD_TESTING=$(usex test) + ) + + cmake_src_configure +} + +src_compile() { + cmake_src_compile +} + +pkg_postinst() { + xdg_pkg_postinst + + # Original issue: https://github.com/PolyMC/PolyMC/issues/227 + optfeature "old Minecraft (<= 1.12.2) support" x11-apps/xrandr + + optfeature "built-in MangoHud support" games-util/mangohud + optfeature "built-in Feral Gamemode support" games-util/gamemode +} diff --git a/games-action/prismlauncher/prismlauncher-9999.ebuild b/games-action/prismlauncher/prismlauncher-9999.ebuild index a6d5a079ab1d..d3ea8f51ecdd 100644 --- a/games-action/prismlauncher/prismlauncher-9999.ebuild +++ b/games-action/prismlauncher/prismlauncher-9999.ebuild @@ -3,110 +3,71 @@ EAPI=8 +QTMIN=6.0.0 inherit cmake java-pkg-2 optfeature toolchain-funcs xdg -DESCRIPTION="A custom, open source Minecraft launcher" +DESCRIPTION="Custom, open source Minecraft launcher" HOMEPAGE="https://prismlauncher.org/ https://github.com/PrismLauncher/PrismLauncher" -if [[ ${PV} == 9999 ]]; then +if [[ ${PV} == *9999* ]]; then inherit git-r3 - - EGIT_REPO_URI=" - https://github.com/PrismLauncher/PrismLauncher - " - + EGIT_REPO_URI="https://github.com/PrismLauncher/PrismLauncher" EGIT_SUBMODULES=( '*' '-libraries/cmark' '-libraries/extra-cmake-modules' '-libraries/filesystem' '-libraries/quazip' '-libraries/tomlplusplus' '-libraries/zlib' ) else MY_PN="PrismLauncher" - - # Let's use the vendored tarball to avoid dealing with the submodules directly + # use vendored tarball to avoid dealing with submodules directly SRC_URI=" https://github.com/PrismLauncher/PrismLauncher/releases/download/${PV}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz " - - # The Prism's files are unpacked to ${WORKDIR}/PrismLauncher-${PV} S="${WORKDIR}/${MY_PN}-${PV}" - KEYWORDS="~amd64 ~arm64" fi # GPL-3 for PolyMC (PrismLauncher is forked from it) and Prism itself # Apache-2.0 for MultiMC (PolyMC is forked from it) # LGPL-3+ for libnbtplusplus -# See the rest of PrismLauncher's libraries at https://github.com/PrismLauncher/PrismLauncher/tree/develop/libraries +# rest of its libs: https://github.com/PrismLauncher/PrismLauncher/tree/develop/libraries LICENSE="Apache-2.0 BSD BSD-2 GPL-2+ GPL-3 ISC LGPL-2.1+ LGPL-3+" - SLOT="0" - -IUSE="qt6 test" +IUSE="test" RESTRICT="!test? ( test )" -MIN_QT_5_VERSION="5.12.0" -MIN_QT_6_VERSION="6.0.0" - -QT_DEPS=" - !qt6? ( - >=dev-qt/qtconcurrent-${MIN_QT_5_VERSION}:5 - >=dev-qt/qtcore-${MIN_QT_5_VERSION}:5 - >=dev-qt/qtgui-${MIN_QT_5_VERSION}:5 - >=dev-qt/qtnetwork-${MIN_QT_5_VERSION}:5 - >=dev-qt/qtnetworkauth-${MIN_QT_5_VERSION}:5 - >=dev-qt/qttest-${MIN_QT_5_VERSION}:5 - >=dev-qt/qtwidgets-${MIN_QT_5_VERSION}:5 - >=dev-qt/qtxml-${MIN_QT_5_VERSION}:5 - ) - - qt6? ( - >=dev-qt/qtbase-${MIN_QT_6_VERSION}:6[concurrent,gui,network,widgets,xml(+)] - >=dev-qt/qt5compat-${MIN_QT_6_VERSION}:6 - >=dev-qt/qtnetworkauth-${MIN_QT_6_VERSION}:6 - ) -" - -# Required at both build-time and run-time -COMMON_DEPENDS=" - ${QT_DEPS} - - !qt6? ( >=dev-libs/quazip-1.3:=[qt5(+)] ) - qt6? ( >=dev-libs/quazip-1.3:=[qt6(-)] ) - +# Required at both build time and runtime +COMMON_DEPEND=" app-text/cmark:= dev-cpp/tomlplusplus + >=dev-libs/quazip-1.3-r2:=[qt6(+)] + >=dev-qt/qtbase-${QTMIN}:6[concurrent,gui,network,widgets,xml(+)] + >=dev-qt/qt5compat-${QTMIN}:6 + >=dev-qt/qtnetworkauth-${QTMIN}:6 sys-libs/zlib " - -BDEPEND=" - app-text/scdoc - kde-frameworks/extra-cmake-modules:0 - virtual/pkgconfig -" - -# The gulrak-filesystem dependency is only needed at build time, because we don't actually use it on Linux, -# only on legacy macOS. Still, we need it present at build time to appease CMake, and having it like this -# makes it easier to maintain than patching the CMakeLists file directly. -DEPEND=" - ${COMMON_DEPENDS} +# gulrak-filesystem dependency is only needed at build time, because we don't +# actually use it on Linux, only on legacy macOS. Still, we need it present at +# build time to appease CMake, and having it like this makes it easier to +# maintain than patching the CMakeLists file directly. +DEPEND="${COMMON_DEPEND} dev-cpp/gulrak-filesystem media-libs/libglvnd >=virtual/jdk-1.8.0:* " - -# QtSvg imageplugin needed at runtime for svg icons. Its used via QIcon. -# At run-time we don't depend on JDK, only JRE +# QtSvg imageplugin needed at runtime for svg icons, via QIcon. +# At runtime we don't depend on JDK, only JRE # And we need more than just the GL headers -RDEPEND=" - ${COMMON_DEPENDS} - - !qt6? ( >=dev-qt/qtsvg-${MIN_QT_5_VERSION}:5 ) - qt6? ( >=dev-qt/qtsvg-${MIN_QT_6_VERSION}:6 ) - +RDEPEND="${COMMON_DEPEND} + >=dev-qt/qtsvg-${QTMIN}:6 >=virtual/jre-1.8.0:* virtual/opengl " +BDEPEND=" + app-text/scdoc + >=kde-frameworks/extra-cmake-modules-6.0.0:* + virtual/pkgconfig +" src_prepare() { cmake_src_prepare @@ -132,7 +93,7 @@ src_configure() { # Resulting binary is named prismlauncher -DLauncher_APP_BINARY_NAME="${PN}" -DLauncher_BUILD_PLATFORM="Gentoo" - -DLauncher_QT_VERSION_MAJOR=$(usex qt6 6 5) + -DLauncher_QT_VERSION_MAJOR=6 -DENABLE_LTO=$(tc-is-lto) -DBUILD_TESTING=$(usex test) |