commit: 8b1d7e88695d7dffd9276d3eda0f26909d40e196 Author: Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr> AuthorDate: Thu Jul 31 05:41:24 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Jul 31 06:59:27 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b1d7e88
games-arcade/performous: add 1.3.1_p20250723 use a snapshot to fix few issues update SRC_URI's songs (redirect) add xdg to update cache deps : add gtest for testsuite add [blas] for aubio (target patched to cblas instead of openblas) add [cxx] for portaudio ad dev-cpp/nlohmann_json for json support add dev-libs/spdlog add dev-libs/libfmt (used for log with spdlog) add virtual/pkgconfig for detection remove locale per lang update compile definitions to avoid 3rd party and bundle CED (not in tree) patches : use cblas instead of openblas for aubio. It seems to work fine as it. avoid gzip for manpages Closes: https://bugs.gentoo.org/942642 Closes: https://bugs.gentoo.org/956689 Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr> Part-of: https://github.com/gentoo/gentoo/pull/43255 Closes: https://github.com/gentoo/gentoo/pull/43255 Signed-off-by: Sam James <sam <AT> gentoo.org> games-arcade/performous/Manifest | 2 + .../performous/files/performous-1.3.1-cblas.patch | 22 ++++ .../files/performous-1.3.1-uncompressed_docs.patch | 53 ++++++++++ .../performous/performous-1.3.1_p20250723.ebuild | 117 +++++++++++++++++++++ 4 files changed, 194 insertions(+) diff --git a/games-arcade/performous/Manifest b/games-arcade/performous/Manifest index 63c87da2cfed..3af963c9fbc5 100644 --- a/games-arcade/performous/Manifest +++ b/games-arcade/performous/Manifest @@ -1,4 +1,6 @@ DIST performous-1.2.0.tar.gz 7240476 BLAKE2B c5c27fc02fe0a17261ad6549492ccc88c7ad213df08f6ec68d86bad9116a2f83eae8ab4b85fc19f63d260b28864fad84c19d55befa81dde7aabedb1c50fef89f SHA512 a8fbbe3768f46915eacb65adcc1592295e4c6a84775ca55def01ebcff2218b1860daee0d4d5fcccc407d8df71da1ac25da667b47dd4a17239041a3d5fbfa1c56 +DIST performous-1.3.1_p20250723.tar.gz 51778245 BLAKE2B 9051311ec79d5c18b1d648696dcf6058c3071c4396d1ee7fccce46d03a46430ed142b57486c1625da0be4d72d2dc998ed8802b0b0b39faf480ad8ebc1e895fa4 SHA512 290a8cb713247ff9055cc3f7042504f15c8c204d5cdf8a3f470867fa6b930ad82dc777f19084a4aad8055e5eb6d3af9922462d88ce776983998d539c20f8d7cf +DIST performous-ced-28f46c18c60b851773b0ff61f3ce416fb09adcf3.tar.gz 221317 BLAKE2B 979063d1d6a355194d800f09211a0951be154f2b72960cd5fe450e6d82f6474fb29ecde0ad76df25a4075225b0ccf28e3735ca4f6c506873fbc4180f814a3cb3 SHA512 abec9d1d61a1ed2b779cf37317e8e4ff9095927480f69e165e74558e2b48d46e722d7b1d7ecc2ada515a843862faea6a849306ac12341fef639e2111feeaa489 DIST performous-ced-9ca1351fe0b1e85992a407b0fc54a63e9b3adc6e.tar.gz 221300 BLAKE2B 1aa7027c8543725c812e6a066a2a707fa19a79ae2f36c49bc8eaf0d3d6549ae11b365a76b47c1fc851a3c0d1bbafc3ff739fa32c1599a1f1853033de78b27d0c SHA512 6721ae5936a58b8298d175f3875675bfb8249208642eaf2766dc6a62c7db96454d4f95d8c39de0ca862aa3edc741de535af69242f0d2d0b8f7527408ab673089 DIST ultrastar-songs-jc-1.zip 242698201 BLAKE2B 39c37160c1ce305252c7b94910aae4ed930d6762716b985f35d64b502bcb8c0310ff830384a652bb1b8a72dea5dd08eebbfd89ae047861bd88e2fc983a863d84 SHA512 2f1b8416990c39617269cd6bb7271abdd4ebae65a9bac3dbb3f37cca26876bb7c79460a37597943a10a2d8bfcb5d2d9e2bf24084fe517a418e69f5c6111f6aea DIST ultrastar-songs-libre-3.zip 5289866 BLAKE2B 2c3fc640ad808b12987e9b50510df644ab8dd1ae41a4b9e5056950c7aa1823678a4b568a60a260b93a4bdf06f199fac1b99bd22e4e39301bf34f337c08d68b69 SHA512 820e3637a7b778c92ed1a8b925802134fa2146879b3e03e88cd412de5414635c90fe256dfaf984cfa3e8b07b7da8531dc3061b7c4e1bb4422127b469b2345e66 diff --git a/games-arcade/performous/files/performous-1.3.1-cblas.patch b/games-arcade/performous/files/performous-1.3.1-cblas.patch new file mode 100644 index 000000000000..23f2b0c2a1a2 --- /dev/null +++ b/games-arcade/performous/files/performous-1.3.1-cblas.patch @@ -0,0 +1,22 @@ +Use cblas implementation instead of restricting openblas +--- a/cmake/Modules/FindAubio.cmake ++++ b/cmake/Modules/FindAubio.cmake +@@ -4,17 +4,9 @@ include(LibFetchMacros) + set(Aubio_GIT_VERSION "master") + + #set(BLA_VENDOR OpenBLAS) +-set(BLA_PKGCONFIG_BLAS openblas) ++set(BLA_PKGCONFIG_BLAS cblas) + find_package(BLAS REQUIRED) + +-# also Accelerate.framework for mac +- +-if (NOT APPLE AND NOT BLAS_LIBRARIES MATCHES "openblas") +- message(FATAL_ERROR "BLAS vendor is not OpenBLAS. Found: ${BLAS_LIBRARIES}") +-elseif (APPLE AND NOT BLAS_LIBRARIES MATCHES "Accelerate.framework") +- message(FATAL_ERROR "BLAS vendor is not Accelerate.framework. Found: ${BLAS_LIBRARIES}") +-endif() +- + if(SELF_BUILT_AUBIO STREQUAL "ALWAYS") + message(STATUS "aubio forced to build from source") + libfetch_git_pkg(Aubio diff --git a/games-arcade/performous/files/performous-1.3.1-uncompressed_docs.patch b/games-arcade/performous/files/performous-1.3.1-uncompressed_docs.patch new file mode 100644 index 000000000000..89b66e2b1617 --- /dev/null +++ b/games-arcade/performous/files/performous-1.3.1-uncompressed_docs.patch @@ -0,0 +1,53 @@ +don't compress manpages +fix mandir for man.6 +--- a/docs/man/CMakeLists.txt ++++ b/docs/man/CMakeLists.txt +@@ -1,24 +1,20 @@ + find_program(HELP2MAN help2man DOC "Location of the help2man program") +-find_program(GZIP gzip DOC "Location of the gzip program") + mark_as_advanced(HELP2MAN) +-mark_as_advanced(GZIP) +-if(HELP2MAN AND GZIP) +- set(MANFILE ${CMAKE_CURRENT_BINARY_DIR}/performous.6.gz) ++if(HELP2MAN) ++ set(MANFILE ${CMAKE_CURRENT_BINARY_DIR}/performous.6) + set(H2MFILE ${CMAKE_CURRENT_SOURCE_DIR}/performous.h2m) + add_custom_command( + OUTPUT ${MANFILE} +- COMMAND ${HELP2MAN} "$<TARGET_FILE:performous>" -s 6 -i ${H2MFILE} -N | ${GZIP} > ${MANFILE} ++ COMMAND ${HELP2MAN} "$<TARGET_FILE:performous>" -s 6 -i ${H2MFILE} -N > ${MANFILE} + MAIN_DEPENDENCY ${H2MFILE} + DEPENDS performous + COMMENT "Building Performous man page" + VERBATIM + ) + add_custom_target(manpage ALL DEPENDS ${MANFILE}) +- install(FILES ${MANFILE} TYPE MAN) +-else(HELP2MAN AND GZIP) +- message("WARNING: One of the following is missing: help2man, gzip; performous man page will not be generated") +-endif(HELP2MAN AND GZIP) +-if(ENABLE_TOOLS AND GZIP) ++ install(FILES ${MANFILE} DESTINATION share/man/man6) ++endif(HELP2MAN) ++if(ENABLE_TOOLS) + set(TOOLS + "ss_pak_extract" "ss_extract" "ss_cover_conv" + "ss_adpcm_decode" "ss_ipu_conv" "ss_chc_decode" +@@ -26,15 +22,7 @@ if(ENABLE_TOOLS AND GZIP) + set(MAN_SECTION "1") + foreach(TOOL ${TOOLS}) + set(TOOL_MANFILE ${CMAKE_CURRENT_SOURCE_DIR}/${TOOL}.${MAN_SECTION}) +- set(TOOL_MANFILE_GZ ${CMAKE_CURRENT_BINARY_DIR}/${TOOL}.${MAN_SECTION}.gz) +- add_custom_command( +- OUTPUT ${TOOL_MANFILE_GZ} +- COMMAND ${GZIP} -c ${TOOL_MANFILE} > ${TOOL_MANFILE_GZ} +- MAIN_DEPENDENCY ${TOOL_MANFILE} +- COMMENT "Building ${TOOL} man page" +- VERBATIM +- ) + add_custom_target(${TOOL}.${MAN_SECTION} ALL DEPENDS ${TOOL_MANFILE_GZ}) +- install(FILES ${TOOL_MANFILE_GZ} DESTINATION share/man/man${MAN_SECTION}) ++ install(FILES ${TOOL_MANFILE} DESTINATION share/man/man${MAN_SECTION}) + endforeach(TOOL) +-endif(ENABLE_TOOLS AND GZIP) ++endif(ENABLE_TOOLS) diff --git a/games-arcade/performous/performous-1.3.1_p20250723.ebuild b/games-arcade/performous/performous-1.3.1_p20250723.ebuild new file mode 100644 index 000000000000..e9c835a855c0 --- /dev/null +++ b/games-arcade/performous/performous-1.3.1_p20250723.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake xdg + +HASH_CED="28f46c18c60b851773b0ff61f3ce416fb09adcf3" +HASH_PERFORMOUS="43586b58c72e48b63974f418af07b85b1d366daa" + +DESCRIPTION="SingStar GPL clone" +HOMEPAGE="https://performous.org/" +SRC_URI=" + https://github.com/performous/performous/archive/${HASH_PERFORMOUS}.tar.gz + -> ${P}.tar.gz + https://github.com/performous/compact_enc_det/archive/${HASH_CED}.tar.gz + -> ${PN}-ced-${HASH_CED}.tar.gz + songs? ( + https://downloads.sourceforge.net/project/performous/ultrastar-songs-jc/1/ultrastar-songs-jc-1.zip + https://downloads.sourceforge.net/project/performous/ultrastar-songs-libre/3/ultrastar-songs-libre-3.zip + https://downloads.sourceforge.net/project/performous/ultrastar-songs-restricted/3/ultrastar-songs-restricted-3.zip + https://downloads.sourceforge.net/project/performous/ultrastar-songs-shearer/1/ultrastar-songs-shearer-1.zip + ) +" +S="${WORKDIR}/${PN}-${HASH_PERFORMOUS}" + +LICENSE=" + GPL-2 + Apache-2.0 OFL-1.1 + songs? ( CC-BY-NC-SA-2.5 CC-BY-NC-ND-2.5 ) +" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="midi songs test webcam" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-cpp/libxmlpp:5.0 + dev-libs/boost:=[nls] + dev-libs/glib:2 + dev-libs/icu:= + dev-libs/libfmt:= + gnome-base/librsvg:2 + media-libs/aubio:=[blas,fftw] + media-libs/fontconfig:1.0 + media-libs/glm + media-libs/libepoxy + media-libs/libjpeg-turbo:= + media-libs/libpng:= + media-libs/libsdl2[joystick,opengl,video] + media-libs/portaudio[cxx] + media-video/ffmpeg:= + sys-libs/zlib + virtual/libintl + x11-libs/cairo + x11-libs/pango + midi? ( media-libs/portmidi ) + webcam? ( media-libs/opencv:= ) +" +DEPEND="${RDEPEND} + dev-cpp/nlohmann_json + dev-libs/spdlog + test? ( dev-cpp/gtest ) +" +BDEPEND=" + sys-apps/help2man + sys-devel/gettext + virtual/pkgconfig + songs? ( app-arch/unzip ) +" + +PATCHES=( + # avoid compressed manpages (gzip) + "${FILESDIR}"/${PN}-1.3.1-uncompressed_docs.patch + # use cblas implementation instead of restricting to openblas + "${FILESDIR}"/${PN}-1.3.1-cblas.patch +) + +src_configure() { + local mycmakeargs=( + -DPERFORMOUS_VERSION=${PV} + -DSHARE_INSTALL="${EPREFIX}"/usr/share/${PN} + # it needs ON, not yes or something else + -DBUILD_TESTS=$(usex test ON OFF) + + -DENABLE_MIDI=$(usex midi) + -DENABLE_TOOLS=ON # no dep + -DENABLE_WEBCAM=$(usex webcam) + + # avoid 3rd party libs + -DSELF_BUILT_AUBIO=NEVER + -DSELF_BUILT_JSON=NEVER + -DSELF_BUILT_SPDLOG=NEVER + + # compact_enc_det is not in tree + -DSELF_BUILT_CED=ALWAYS + -DFETCHCONTENT_SOURCE_DIR_CED-SRC:PATH="${WORKDIR}/compact_enc_det-${HASH_CED}" + + # webserver needs unpackaged cpprestsdk which is not recommended for + # use by its upstream (dead), may consider adding only if requested + -DENABLE_WEBSERVER=no + ) + cmake_src_configure +} + +src_test() { + # avoid overflow failures + cmake_src_test -j1 +} + +src_install() { + local DOCS=( README.md docs/{Authors,instruments}.txt ) + cmake_src_install + + insinto /usr/share/${PN} + use songs && doins -r "${WORKDIR}"/songs +}
