diff options
author | Adrian Schollmeyer <nex+b-g-o@nexadn.de> | 2023-03-12 20:27:24 +0100 |
---|---|---|
committer | Miroslav Šulc <fordfrog@gentoo.org> | 2023-06-06 08:45:16 +0200 |
commit | fbe6b848d05897ef2bbeeececf22b7be0c33c271 (patch) | |
tree | 2a765392a8f1913515429e549bb844c24b3bcaf3 /media-sound | |
parent | dev-python/starlette: Stabilize 0.27.0 ALLARCHES, #907936 (diff) | |
download | gentoo-fbe6b848d05897ef2bbeeececf22b7be0c33c271.tar.gz gentoo-fbe6b848d05897ef2bbeeececf22b7be0c33c271.tar.bz2 gentoo-fbe6b848d05897ef2bbeeececf22b7be0c33c271.zip |
media-sound/musescore: add 4.0.2
Closes: https://bugs.gentoo.org/887289
Signed-off-by: Adrian Schollmeyer <nex+b-g-o@nexadn.de>
Closes: https://github.com/gentoo/gentoo/pull/30081
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'media-sound')
-rw-r--r-- | media-sound/musescore/Manifest | 1 | ||||
-rw-r--r-- | media-sound/musescore/files/musescore-4.0.2-unbundle-deps.patch | 121 | ||||
-rw-r--r-- | media-sound/musescore/files/musescore-4.0.2-uncompressed-man-pages.patch | 29 | ||||
-rw-r--r-- | media-sound/musescore/metadata.xml | 1 | ||||
-rw-r--r-- | media-sound/musescore/musescore-4.0.2.ebuild | 135 |
5 files changed, 287 insertions, 0 deletions
diff --git a/media-sound/musescore/Manifest b/media-sound/musescore/Manifest index 04c98330a4d2..66f132cab519 100644 --- a/media-sound/musescore/Manifest +++ b/media-sound/musescore/Manifest @@ -1,2 +1,3 @@ DIST MuseScore_General-0.2.0.tar.bz2 35122747 BLAKE2B 7f9cafb7912ab8c977842c51df69506d4ad3d1d37498c856978a2d5ab50a1c4fe9145a4807f8c353e6f14138704abb2bbd70c948f1621b494c6e0458c2df0184 SHA512 69eeb22e8c9d1d393a2af857baeb8e49bf2a492651d18190685c74df84a5f6b424e37077e39d9d69c117c4896ea1fbb857eba25a1fbcb6f98d53f384a55713cc DIST musescore-3.6.2.tar.gz 69077899 BLAKE2B 4562267b2fd6498b0ba1e503a9117c2680035ccdb66f94bbd9b98ef1c37d4f9eb7d8a84cbac7726b67b9c95e4f076aaaf83087f4ded195150c42ec77462d48e8 SHA512 04ff1ddd82358c070640f81bbaa9c47c5da95aa57c56a5d1b975ad984744e0def17d5581da6bbeda1aae1c68470100d104d4f8a39ba33bf37bf8891ffcbf1d6e +DIST musescore-4.0.2.tar.gz 123962958 BLAKE2B aa31b5346a4c5cfc44f66cf266724c8439d03b449336c16a960df21201d460c21a9b645654584876cc8f20f96f7e95cc24980cda85544a2338ddb8523874fe5e SHA512 fda63124281c4e19160482dff5472889b8753f2389e3d115b2b8e23f3edb976df0912a4e554334a4fc7cc4f9a6945165a07e781fcc2eec46db373e298d9f3616 diff --git a/media-sound/musescore/files/musescore-4.0.2-unbundle-deps.patch b/media-sound/musescore/files/musescore-4.0.2-unbundle-deps.patch new file mode 100644 index 000000000000..6c299d90da67 --- /dev/null +++ b/media-sound/musescore/files/musescore-4.0.2-unbundle-deps.patch @@ -0,0 +1,121 @@ +Unbundling of all dependencies which are currently available as system packages +and have not been modified (to our knowledge) by MuseScore. +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -206,7 +206,7 @@ if (BUILD_UNIT_TESTS) + FULL_DOCS "List XML files outputted by google test." + ) + +- add_subdirectory(thirdparty/googletest) ++ find_package(GTest REQUIRED) + endif(BUILD_UNIT_TESTS) + + add_subdirectory(share) +--- a/src/framework/audio/CMakeLists.txt ++++ b/src/framework/audio/CMakeLists.txt +@@ -216,11 +216,18 @@ if (ENABLE_AUDIO_EXPORT) + ${CMAKE_CURRENT_LIST_DIR}/internal/soundtracks/soundtrackwriter.h + ) + +- add_subdirectory(${PROJECT_SOURCE_DIR}/thirdparty/lame lame) +- add_subdirectory(${PROJECT_SOURCE_DIR}/thirdparty/opusenc opusenc) +- add_subdirectory(${PROJECT_SOURCE_DIR}/thirdparty/flac flac) ++ pkg_check_modules(lame REQUIRED IMPORTED_TARGET lame) ++ pkg_check_modules(libopusenc REQUIRED IMPORTED_TARGET libopusenc) ++ pkg_check_modules(flac REQUIRED IMPORTED_TARGET flac) ++ pkg_check_modules(flacpp REQUIRED IMPORTED_TARGET flac++) + +- set(MODULE_LINK ${MODULE_LINK} lame opusenc flac) ++ set(MODULE_LINK ++ ${MODULE_LINK} ++ PkgConfig::lame ++ PkgConfig::libopusenc ++ PkgConfig::flac ++ PkgConfig::flacpp ++ ) + endif() + + if (OS_IS_MAC) +--- a/src/framework/audio/internal/encoders/mp3encoder.cpp ++++ b/src/framework/audio/internal/encoders/mp3encoder.cpp +@@ -22,7 +22,7 @@ + + #include "mp3encoder.h" + +-#include "lame.h" ++#include "lame/lame.h" + + using namespace mu; + using namespace mu::audio; +--- a/src/framework/audio/internal/encoders/oggencoder.cpp ++++ b/src/framework/audio/internal/encoders/oggencoder.cpp +@@ -22,7 +22,7 @@ + + #include "oggencoder.h" + +-#include "opusenc.h" ++#include "opus/opusenc.h" + + #include "log.h" + +--- a/src/framework/global/CMakeLists.txt ++++ b/src/framework/global/CMakeLists.txt +@@ -105,8 +105,6 @@ set(MODULE_SRC + ${CMAKE_CURRENT_LIST_DIR}/serialization/xmlstreamreader.h + ${CMAKE_CURRENT_LIST_DIR}/serialization/xmlstreamwriter.cpp + ${CMAKE_CURRENT_LIST_DIR}/serialization/xmlstreamwriter.h +- ${CMAKE_CURRENT_LIST_DIR}/thirdparty//tinyxml/tinyxml2.cpp +- ${CMAKE_CURRENT_LIST_DIR}/thirdparty//tinyxml/tinyxml2.h + ${CMAKE_CURRENT_LIST_DIR}/serialization/zipreader.cpp + ${CMAKE_CURRENT_LIST_DIR}/serialization/zipreader.h + ${CMAKE_CURRENT_LIST_DIR}/serialization/zipwriter.cpp +@@ -124,6 +122,8 @@ set(MODULE_SRC + ${CMAKE_CURRENT_LIST_DIR}/concurrency/taskscheduler.h + ) + ++find_package(tinyxml2 REQUIRED) ++ + if (GLOBAL_NO_INTERNAL) + set(MODULE_DEF ${MODULE_DEF} -DGLOBAL_NO_INTERNAL) + else() +@@ -184,6 +184,7 @@ set(MODULE_INCLUDE + set(MODULE_LINK + ${FS_LIB} + ${Z_LIB} ++ tinyxml2::tinyxml2 + ) + + if (OS_IS_MAC) +--- a/src/framework/global/serialization/xmldom.cpp ++++ b/src/framework/global/serialization/xmldom.cpp +@@ -21,7 +21,7 @@ + */ + #include "xmldom.h" + +-#include "thirdparty/tinyxml/tinyxml2.h" ++#include <tinyxml2.h> + + #include "log.h" + +--- a/src/framework/global/serialization/xmlstreamreader.cpp ++++ b/src/framework/global/serialization/xmlstreamreader.cpp +@@ -23,7 +23,7 @@ + + #include <cstring> + +-#include "thirdparty/tinyxml/tinyxml2.h" ++#include <tinyxml2.h> + + #include "log.h" + +--- a/src/framework/testing/gtest.cmake ++++ b/src/framework/testing/gtest.cmake +@@ -60,7 +60,7 @@ find_package(Qt5 COMPONENTS Core Gui REQ + target_link_libraries(${MODULE_TEST} + Qt5::Core + Qt5::Gui +- gmock ++ GTest::gmock + global + ${MODULE_TEST_LINK} + ) diff --git a/media-sound/musescore/files/musescore-4.0.2-uncompressed-man-pages.patch b/media-sound/musescore/files/musescore-4.0.2-uncompressed-man-pages.patch new file mode 100644 index 000000000000..078662a66bdb --- /dev/null +++ b/media-sound/musescore/files/musescore-4.0.2-uncompressed-man-pages.patch @@ -0,0 +1,29 @@ +--- a/build/cmake/SetupAppImagePackaging.cmake ++++ b/build/cmake/SetupAppImagePackaging.cmake +@@ -85,7 +85,7 @@ if (NOT MINGW AND NOT MSVC AND NOT APPLE + # Compress man pages if gzip is installed (don't on OpenBSD) + # Note: Compressing man pages is normal on Linux but not OpenBSD + find_program( GZIP_EXECUTABLE gzip DOC "A tool for compressing manpages (optional)." ) +- if (GZIP_EXECUTABLE AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD") ++ if (GZIP_EXECUTABLE AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD" AND false) + message(STATUS "Found 'gzip'. Man pages will be compressed.") + set(MAN_TARGET ${MAN_BUILD}) + set(MAN_EXTENSION ${MAN_EXTENSION}.gz) +@@ -102,7 +102,7 @@ if (NOT MINGW AND NOT MSVC AND NOT APPLE + COMMAND echo "Man pages have been compressed ready for installation." + VERBATIM + ) +- else (GZIP_EXECUTABLE AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD") ++ else (GZIP_EXECUTABLE AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD" AND false) + if (CMAKE_SYSTEM_NAME MATCHES "OpenBSD") + message(STATUS "System is OpenBSD: Man pages will not be compressed.") + else (CMAKE_SYSTEM_NAME MATCHES "OpenBSD") +@@ -112,7 +112,7 @@ if (NOT MINGW AND NOT MSVC AND NOT APPLE + COMMAND echo "Man pages will be installed uncompressed." + VERBATIM + ) +- endif (GZIP_EXECUTABLE AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD") ++ endif (GZIP_EXECUTABLE AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD" AND false) + # Install man pages in either compressed or uncompressed form + install( FILES ${MAN_BUILD} DESTINATION share/man/man1 COMPONENT doc) + # Create symlink alias for man pages so `man musescore` = `man mscore` diff --git a/media-sound/musescore/metadata.xml b/media-sound/musescore/metadata.xml index e2ba1fa20224..c17629b67a33 100644 --- a/media-sound/musescore/metadata.xml +++ b/media-sound/musescore/metadata.xml @@ -10,6 +10,7 @@ <remote-id type="github">musescore/MuseScore</remote-id> </upstream> <use> + <flag name="jumbo-build">Combine source files to speed up build process, requires more memory</flag> <flag name="osc">Enable OSC remote control protocol</flag> <flag name="omr">Enable PDF import (OMR - optical music recognition)</flag> <flag name="portmidi">Enable support for building against <pkg>media-libs/portmidi</pkg></flag> diff --git a/media-sound/musescore/musescore-4.0.2.ebuild b/media-sound/musescore/musescore-4.0.2.ebuild new file mode 100644 index 000000000000..cd79a319f13f --- /dev/null +++ b/media-sound/musescore/musescore-4.0.2.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +#CMAKE_MAKEFILE_GENERATOR="emake" +CHECKREQS_DISK_BUILD=3500M +VIRTUALX_REQUIRED="test" +inherit cmake qmake-utils xdg check-reqs virtualx + +if [[ ${PV} == "9999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/${PN}/MuseScore.git" +else + SRC_URI=" + https://github.com/musescore/MuseScore/archive/v${PV}.tar.gz -> ${P}.tar.gz + " + KEYWORDS="~amd64 ~arm64 ~x86" + S="${WORKDIR}/MuseScore-${PV}" +fi + +DESCRIPTION="WYSIWYG Music Score Typesetter" +HOMEPAGE="https://musescore.org/" +# MuseScore_General-*.tar.bz2 packaged from https://ftp.osuosl.org/pub/musescore/soundfont/MuseScore_General/ +# It has to be repackaged because the files are not versioned, current version can be found in VERSION file there. +SRC_URI+=" https://dev.gentoo.org/~fordfrog/distfiles/MuseScore_General-0.2.0.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug jumbo-build test" +RESTRICT="!test? ( test )" + +BDEPEND=" + dev-qt/linguist-tools:5 + virtual/pkgconfig +" +DEPEND=" + dev-libs/tinyxml2:= + dev-qt/designer:5 + dev-qt/qtconcurrent:5 + dev-qt/qtcore:5 + dev-qt/qtdeclarative:5 + dev-qt/qtgui:5 + dev-qt/qthelp:5 + dev-qt/qtnetwork:5 + dev-qt/qtnetworkauth:5 + dev-qt/qtopengl:5 + dev-qt/qtprintsupport:5 + dev-qt/qtquickcontrols:5 + dev-qt/qtquickcontrols2:5 + >=dev-qt/qtsingleapplication-2.6.1_p20171024[X] + dev-qt/qtsvg:5 + dev-qt/qtxml:5 + dev-qt/qtxmlpatterns:5 + >=media-libs/alsa-lib-1.0.0 + media-libs/flac:= + >=media-libs/freetype-2.5.2 + media-libs/libopusenc + media-libs/libsndfile + media-libs/opus + media-sound/lame + sys-libs/zlib:= + + test? ( + dev-cpp/gtest + ) +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}/${P}-uncompressed-man-pages.patch" + "${FILESDIR}/${P}-unbundle-deps.patch" +) + +src_unpack() { + if [[ ${PV} == "9999" ]]; then + git-r3_src_unpack + unpack ${A} + else + default + fi +} + +src_prepare() { + cmake_src_prepare + + # Move soundfonts to the correct directory + mv "${WORKDIR}"/sound/* "${S}"/share/sound/ || die "Failed to move soundfont files" + + # Make sure we don't accidentally use bundled third party deps + # for which we want to use system packages instead. + rm -r thirdparty/{flac,freetype,googletest,lame,opus,opusenc} \ + || die "Failed to remove unused thirdparty directories" +} + +src_configure() { + # bug #766111 + export PATH="$(qt5_get_bindir):${PATH}" + + local mycmakeargs=( + -DMUSESCORE_BUILD_CONFIG=release + + -DBUILD_CRASHPAD_CLIENT=OFF + -DBUILD_AUTOUPDATE=OFF + # Jack support has been dropped in 4.0.0, + # but its remnants are still in the build system and cause trouble. + # https://github.com/musescore/MuseScore/issues/12775 + -DBUILD_JACK=OFF + -DDOWNLOAD_SOUNDFONT=OFF + -DSOUNDFONT3=ON + -DBUILD_UNIT_TESTS="$(usex test)" + -DCMAKE_SKIP_RPATH=ON + -DTRY_USE_CCACHE=OFF + -DBUILD_UNITY="$(usex jumbo-build)" + -DUSE_SYSTEM_FREETYPE=ON + ) + cmake_src_configure +} + +src_compile() { + cd "${BUILD_DIR}" || die + cmake_build -j1 lrelease manpages + cmake_src_compile +} + +src_test() { + virtx cmake_src_test +} + +src_install() { + cmake_src_install + + # Hack to not install bundled libraries like libogg + rm -rf "${ED}/usr/include" "${ED}/usr/$(get_libdir)" || die +} |