Skip to content

Commit

Permalink
media-sound/musescore: add 4.0.2
Browse files Browse the repository at this point in the history
Closes: https://bugs.gentoo.org/887289
Signed-off-by: Adrian Schollmeyer <nex+b-g-o@nexadn.de>
  • Loading branch information
NexAdn committed May 21, 2023
1 parent 7e9b3ea commit 8dee13d
Show file tree
Hide file tree
Showing 5 changed files with 286 additions and 0 deletions.
1 change: 1 addition & 0 deletions media-sound/musescore/Manifest
Original file line number Diff line number Diff line change
@@ -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
121 changes: 121 additions & 0 deletions media-sound/musescore/files/musescore-4.0.2-unbundle-deps.patch
Original file line number Diff line number Diff line change
@@ -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}
)
Original file line number Diff line number Diff line change
@@ -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`
1 change: 1 addition & 0 deletions media-sound/musescore/metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
134 changes: 134 additions & 0 deletions media-sound/musescore/musescore-4.0.2.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# 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-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
}

0 comments on commit 8dee13d

Please sign in to comment.