From 4d9c5d23d83597efc8fb92d55072a48c8a08bce9 Mon Sep 17 00:00:00 2001 From: Orcan Ogetbil Date: Mar 23 2009 23:19:47 +0000 Subject: - Add Provides: musescore = %%{name}-%%{version} - Replace "fluid-soundfont" requirement with "soundfont2-default" Fri Mar 06 2009 Orcan Ogetbil 0.9.4-2 - Add extra BR:tex-cm-lgc for F-11+. This is necessary to build the fonts from source - Update icon scriptlets according to the new guidelines Sat Feb 21 2009 Orcan Ogetbil 0.9.4-1 - Initial Fedora build --- diff --git a/.cvsignore b/.cvsignore index e69de29..5634d31 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +mscore-0.9.4-free.tar.bz2 diff --git a/import.log b/import.log new file mode 100644 index 0000000..c90f543 --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +mscore-0_9_4-3_fc10:HEAD:mscore-0.9.4-3.fc10.src.rpm:1237850363 diff --git a/mscore-no-awl-plugin.patch b/mscore-no-awl-plugin.patch new file mode 100644 index 0000000..f35d8dd --- /dev/null +++ b/mscore-no-awl-plugin.patch @@ -0,0 +1,32 @@ +diff -rupN mscore-0.9.4.old/mscore/awl/CMakeLists.txt mscore-0.9.4/mscore/awl/CMakeLists.txt +--- mscore-0.9.4.old/mscore/awl/CMakeLists.txt 2009-02-06 05:32:19.000000000 -0500 ++++ mscore-0.9.4/mscore/awl/CMakeLists.txt 2009-02-21 02:00:59.000000000 -0500 +@@ -83,28 +83,4 @@ QT4_WRAP_CPP (mocs2 + colorlabel.h + ) + +-add_library ( +- awlplugin SHARED +- ${PROJECT_BINARY_DIR}/all.h +- ${PROJECT_BINARY_DIR}/all.h.pch +- ${mocs2} +- awlplugin.cpp +- aslider.cpp +- knob.cpp +- panknob.cpp +- volknob.cpp +- midipanknob.cpp +- colorlabel.cpp +- ) +- +-## "-D_GNU_SOURCE -D_REENTRANT -DHAVE_CONFIG_H -DQT_PLUGIN -DQT_SHARED -DQT_NO_DEBUG -include ${PROJECT_SOURCE_DIR}/all.h" +- +-set_target_properties( awlplugin +- PROPERTIES +- COMPILE_FLAGS +- "-D_GNU_SOURCE -D_REENTRANT -DHAVE_CONFIG_H -DQT_PLUGIN -DQT_SHARED -DQT_NO_DEBUG -include ${PROJECT_SOURCE_DIR}/all.h" +- ) +- +-install( TARGETS awlplugin DESTINATION ${QT_PLUGINS_DIR}/designer/ ) +- + endif (NOT MINGW AND NOT APPLE) diff --git a/mscore-separate-commonfiles.patch b/mscore-separate-commonfiles.patch new file mode 100644 index 0000000..185879c --- /dev/null +++ b/mscore-separate-commonfiles.patch @@ -0,0 +1,91 @@ +diff -rupN mscore-0.9.4.old/mscore/mscore/mscore.cpp mscore-0.9.4/mscore/mscore/mscore.cpp +--- mscore-0.9.4.old/mscore/mscore/mscore.cpp 2009-02-06 05:33:28.000000000 -0500 ++++ mscore-0.9.4/mscore/mscore/mscore.cpp 2009-02-21 13:10:15.000000000 -0500 +@@ -1576,12 +1576,12 @@ int main(int argc, char* argv[]) + // + // load internal fonts + // +- if (-1 == QFontDatabase::addApplicationFont(":/fonts/mscore-20.ttf")) { ++ if (-1 == QFontDatabase::addApplicationFont(INSTPREFIX "/share/fonts/mscore/mscore-20.ttf")) { + fprintf(stderr, "Mscore: fatal error: cannot load internal font\n"); + if (!debugMode) + exit(-1); + } +- if (-1 == QFontDatabase::addApplicationFont(":/fonts/mscore1-20.ttf")) { ++ if (-1 == QFontDatabase::addApplicationFont(INSTPREFIX "/share/fonts/mscore/mscore1-20.ttf")) { + fprintf(stderr, "Mscore: fatal error: cannot load internal font\n"); + if (!debugMode) + exit(-1); +diff -rupN mscore-0.9.4.old/mscore/mscore/mscore.qrc mscore-0.9.4/mscore/mscore/mscore.qrc +--- mscore-0.9.4.old/mscore/mscore/mscore.qrc 2009-02-21 12:56:04.000000000 -0500 ++++ mscore-0.9.4/mscore/mscore/mscore.qrc 2009-02-21 13:06:05.000000000 -0500 +@@ -2,9 +2,9 @@ + + + data/repeat.svg +- data/paper1.png +- data/paper2.png +- data/paper3.png ++ ++ ++ + data/text_bold.svg + data/text_italic.svg + data/text_left.svg +@@ -29,11 +29,11 @@ + data/viewmag.xpm + data/subscript.svg + data/superscript.svg +- fonts/mscore-20.ttf +- fonts/mscore1-20.ttf +- ../share/templates/instruments.xml ++ ++ ++ + data/splash.jpg +- ../demos/promenade.msc ++ + + data/speaker.svg + data/midiin.svg +diff -rupN mscore-0.9.4.old/mscore/mscore/preferences.cpp mscore-0.9.4/mscore/mscore/preferences.cpp +--- mscore-0.9.4.old/mscore/mscore/preferences.cpp 2009-02-21 12:56:04.000000000 -0500 ++++ mscore-0.9.4/mscore/mscore/preferences.cpp 2009-02-21 13:34:13.000000000 -0500 +@@ -122,7 +122,7 @@ void Preferences::init() + bgUseColor = true; + fgUseColor = false; + bgWallpaper = QString(); +- fgWallpaper = ":/data/paper3.png"; ++ fgWallpaper = INSTPREFIX "/share/" INSTALL_NAME "wallpaper/paper3.png"; + fgColor.setRgb(50, 50, 50); + bgColor.setRgb(0x76, 0x76, 0x6e); + +@@ -163,7 +163,7 @@ void Preferences::init() + layoutBreakColor = Qt::green; + antialiasedDrawing = true; + sessionStart = SCORE_SESSION; +- startScore = ":/data/demo.msc"; ++ startScore = INSTPREFIX "/share/" INSTALL_NAME "demos/promenade.msc"; + workingDirectory = "."; + lastSaveDirectory = "."; + lastSaveCopyDirectory = "."; +@@ -185,7 +185,7 @@ void Preferences::init() + + midiExpandRepeats = true; + playRepeats = true; +- instrumentList = ":/data/instruments.xml"; ++ instrumentList = INSTPREFIX "/share/" INSTALL_NAME "templates/instruments.xml"; + + alternateNoteEntryMethod = false; + useMidiOutput = false; +@@ -403,8 +403,8 @@ void Preferences::read() + else if (ss == "empty") + sessionStart = EMPTY_SESSION; + +- startScore = s.value("startScore", ":/data/demo.msc").toString(); +- instrumentList = s.value("instrumentList", ":/data/instruments.xml").toString(); ++ startScore = s.value("startScore", INSTPREFIX "/share/" INSTALL_NAME "demos/promenade.msc").toString(); ++ instrumentList = s.value("instrumentList", INSTPREFIX "/share/" INSTALL_NAME "templates/instruments.xml").toString(); + + s.beginGroup("PlayPanel"); + playPanelPos = s.value("pos", QPoint(100, 300)).toPoint(); diff --git a/mscore-use-default-soundfont.patch b/mscore-use-default-soundfont.patch new file mode 100644 index 0000000..b71604b --- /dev/null +++ b/mscore-use-default-soundfont.patch @@ -0,0 +1,57 @@ +diff -rupN mscore-0.9.4.old/mscore/mscore/fluid.cpp mscore-0.9.4/mscore/mscore/fluid.cpp +--- mscore-0.9.4.old/mscore/mscore/fluid.cpp 2009-02-06 05:33:28.000000000 -0500 ++++ mscore-0.9.4/mscore/mscore/fluid.cpp 2009-02-20 22:39:16.000000000 -0500 +@@ -58,9 +58,9 @@ bool ISynth::init(int sampleRate) + p = QString(getenv("DEFAULT_SOUNDFONT")); + if (p.isEmpty()) { + // +- // fallback to integrated soundfont ++ // fallback to default soundfont + // +- p = ":/data/piano1.sf2"; ++ p = INSTPREFIX "/share/soundfonts/default.sf2"; + } + bool rv = loadSoundFont(p); + if (!rv) { +diff -rupN mscore-0.9.4.old/mscore/mscore/mscore.qrc mscore-0.9.4/mscore/mscore/mscore.qrc +--- mscore-0.9.4.old/mscore/mscore/mscore.qrc 2009-02-06 05:33:28.000000000 -0500 ++++ mscore-0.9.4/mscore/mscore/mscore.qrc 2009-02-20 22:41:59.000000000 -0500 +@@ -34,7 +34,7 @@ + ../share/templates/instruments.xml + data/splash.jpg + ../demos/promenade.msc +- data/piano1.sf2 ++ + data/speaker.svg + data/midiin.svg + data/undo.svg +diff -rupN mscore-0.9.4.old/mscore/mscore/preferences.cpp mscore-0.9.4/mscore/mscore/preferences.cpp +--- mscore-0.9.4.old/mscore/mscore/preferences.cpp 2009-02-06 05:33:28.000000000 -0500 ++++ mscore-0.9.4/mscore/mscore/preferences.cpp 2009-02-20 22:40:42.000000000 -0500 +@@ -136,11 +136,7 @@ void Preferences::init() + enableMidiInput = true; + playNotes = true; + +-#ifdef USE_GLOBAL_FLUID +- soundFont = INSTPREFIX "/piano1.sf2"; +-#else +- soundFont = ":/data/piano1.sf2"; +-#endif ++ soundFont = INSTPREFIX "/share/soundfonts/default.sf2"; + + lPort = ""; + rPort = ""; +@@ -342,11 +338,8 @@ void Preferences::read() + lPort = s.value("lPort").toString(); + rPort = s.value("rPort").toString(); + +-#ifdef USE_GLOBAL_FLUID +- soundFont = s.value("soundFont", INSTPREFIX "/piano1.sf2").toString(); +-#else +- soundFont = s.value("soundFont", ":/data/piano1.sf2").toString(); +-#endif ++ soundFont = s.value("soundFont", INSTPREFIX "/share/soundfonts/default.sf2").toString(); ++ + showNavigator = s.value("showNavigator", true).toBool(); + showStatusBar = s.value("showStatusBar", true).toBool(); + showPlayPanel = s.value("showPlayPanel", false).toBool(); diff --git a/mscore.spec b/mscore.spec new file mode 100644 index 0000000..af9d699 --- /dev/null +++ b/mscore.spec @@ -0,0 +1,202 @@ +%define fontfamilyname %{name} +%define minorver -0.9 + +Name: mscore +Summary: Music Composition & Notation Software +Version: 0.9.4 +Release: 3%{?dist} +# rtf2html is LGPLv2+ +# paper4.png paper5.png are LGPLv3 +# the rest is GPLv2 +License: GPLv2 and LGPLv2+ and LGPLv3 +Group: Applications/Multimedia +URL: http://musescore.org/en +# Upstream tarball contains a non-free soundfont "Gort's Minipiano" +# We generate our own tarball by removing this soundfont via: +# wget http://downloads.sourceforge.net/mscore/mscore-0.9.4.tar.bz2 +# tar jxf mscore-*.tar.bz2 +# rm -f mscore-*/mscore/mscore/data/piano1.sf2 +# tar jcf mscore-0.9.4-free.tar.bz2 mscore-0.9.4/ +Source0: %{name}-%{version}-free.tar.bz2 +# Use Fedora's default soundfont instead of the removed one: +Patch0: %{name}-use-default-soundfont.patch +# The upstream provides a stipped down version of AWL plugin for qtdesigner. +# We don't really need to package this. The full version of AWL plugin +# will be part of the upcoming muse2. +Patch1: %{name}-no-awl-plugin.patch +# We don't build the common files (font files, wallpapers, demo song, instrument +# list) into the binary executable to reduce its size. This is also useful to +# inform the users about the existence of different choices for common files. +# The font files need to be separated due to the font packaging guidelines. +Patch2: %{name}-separate-commonfiles.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: cmake jack-audio-connection-kit-devel qt4-devel +BuildRequires: alsa-lib-devel portaudio-devel fluidsynth-devel +BuildRequires: desktop-file-utils + +# Fonts related: +BuildRequires: t1utils fontforge texlive fontpackages-devel +%if "%{fedora}" >= "11" +BuildRequires: tex-cm-lgc +%endif + +Requires: %{name}-%{fontfamilyname}-fonts = %{version}-%{release} + +# Doxygen documentation is useless. Hence we don't build it for now. +# Otherwise it needs: +# BuildRequires: graphviz doxygen texlive-latex texlive-dvips + +Requires: soundfont2-default + +Provides: musescore = %{name}-%{version} + +%description +MuseScore is a free cross platform WYSIWYG music notation program. Some +highlights: + + * WYSIWYG, notes are entered on a "virtual note sheet" + * Unlimited number of staves + * Up to four voices per staff + * Easy and fast note entry with mouse, keyboard or MIDI + * Integrated sequencer and FluidSynth software synthesizer + * Import and export of MusicXML and Standard MIDI Files (SMF) + * Available in 12 languages + +%package %{fontfamilyname}-fonts +Summary: MuseScore fonts +Group: User Interface/X +License: GPL+ with exceptions +Requires: fontpackages-filesystem + +%description %{fontfamilyname}-fonts +MuseScore is a free cross platform WYSIWYG music notation program. + +This package contains the musical notation fonts for use of MuseScore. + +%prep +%setup -q + +%patch0 -p1 -b .fluid +%patch1 -p1 -b .noawlplugin +%patch2 -p1 -b .separatecommon + +# Remove the precompiled binary +rm mscore/rtf2html/rtf2html + +# Force Fedora specific flags: +find . -name CMakeLists.txt -exec sed -i 's|-O3|%{optflags}|' {} \; +find . -name CMakeLists.txt -exec sed -i 's|-fno-exceptions|%{optflags}|' {} \; + +# Use global fluidsynth instead of the bundled one: +sed -i 's|USE_GLOBAL_FLUID FALSE|USE_GLOBAL_FLUID TRUE|' %{name}/CMakeLists.txt + +# Do not build the bundled qt scripting interface: +sed -i 's|BUILD_SCRIPT_INTERFACE TRUE|BUILD_SCRIPT_INTERFACE FALSE|' %{name}/CMakeLists.txt +sed -i 's|BUILD_SCRIPT_DEBUG TRUE|BUILD_SCRIPT_DEBUG FALSE|' %{name}/CMakeLists.txt + +# Fix EOL encoding +sed 's|\r||' %{name}/rtf2html/README > tmpfile +touch -r %{name}/rtf2html/README tmpfile +mv -f tmpfile %{name}/rtf2html/README + +# Fix for systems (usually 64bit ones) where size_t != unsigned int +sed -i 's|relStaff %%d, %%d|relStaff %%d, %%zd|' %{name}/%{name}/importxml.cpp + +# Remove preshipped fonts. We will build them from source +rm -f %{name}/%{name}/fonts/*.ttf + +%build +# Build the actual program +mkdir build +pushd build + export PATH=${PATH}:%{_libdir}/qt4/bin + %cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_FLAGS="%{optflags}" ../mscore + make lupdate %{?_smp_flags} + make lrelease %{?_smp_flags} + make %{?_smp_flags} VERBOSE=1 +popd + +# Build fonts from source: +pushd %{name}/%{name}/fonts + ./genFont +popd + +%install +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} + +# Install fonts +mkdir -p %{buildroot}/%{_fontdir} +install -pm 644 %{name}/%{name}/fonts/%{fontfamilyname}*.ttf %{buildroot}/%{_fontdir} + +# Desktop file +desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop + +# Move images to the freedesktop location +mkdir -p %{buildroot}/%{_datadir}/icons/hicolor/{32x32,64x64}/apps/ +mv %{buildroot}/%{_datadir}/pixmaps/%{name}.xpm \ + %{buildroot}/%{_datadir}/icons/hicolor/32x32/apps/ +mv %{buildroot}/%{_datadir}/pixmaps/%{name}.png \ + %{buildroot}/%{_datadir}/icons/hicolor/64x64/apps/ + +# Manpage +mkdir -p %{buildroot}/%{_mandir}/man1 +install -pm 644 %{name}/packaging/%{name}.1 %{buildroot}/%{_mandir}/man1 + +# Openoffice templates +cp -a %{name}/utils/OOoMuseScore/ %{buildroot}/%{_datadir}/%{name}%{?minorver} + +# There are many doc files spread around the tarball. Let's collect them +pushd %{name} + mv rtf2html/ChangeLog ChangeLog.rtf2html + mv rtf2html/COPYING.LESSER COPYING.LESSER.rtf2html + mv rtf2html/README README.rtf2html + mv rtf2html/README.mscore README.mscore.rtf2html + mv rtf2html/README.ru README.ru.rtf2html + mv osdabzip/README README.osdabzip + mv osdabzip/README.mscore README.mscore.osdabzip + mv share/wallpaper/COPYRIGHT COPYING.wallpaper +popd + +%check +# The tests seem outdated. Skipping. + +%clean +rm -rf %{buildroot} + +%post +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +%postun +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans +gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + + +%files +%defattr(-,root,root,-) +%doc mscore/{ChangeLog*,COPYING*,manual/manual-de.odt,NEWS,README*} +%{_bindir}/%{name} +%{_datadir}/%{name}%{?minorver} +%{_datadir}/icons/hicolor/*/*/* +%{_datadir}/applications/%{name}.desktop +%{_mandir}/man1/* + +%_font_pkg -n %{fontfamilyname} %{fontfamilyname}*.ttf + +%changelog +* Mon Mar 23 2009 Orcan Ogetbil 0.9.4-3 +- Add Provides: musescore = %%{name}-%%{version} +- Replace "fluid-soundfont" requirement with "soundfont2-default" + +* Fri Mar 06 2009 Orcan Ogetbil 0.9.4-2 +- Add extra BR:tex-cm-lgc for F-11+. This is necessary to build the fonts from source +- Update icon scriptlets according to the new guidelines + +* Sat Feb 21 2009 Orcan Ogetbil 0.9.4-1 +- Initial Fedora build diff --git a/sources b/sources index e69de29..7a81126 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +69dd95b38a848b4f4ce4a4c47a7030ea mscore-0.9.4-free.tar.bz2