summaryrefslogtreecommitdiffstats
path: root/redhat/applications/rosegarden
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/applications/rosegarden')
-rw-r--r--redhat/applications/rosegarden/rosegarden-3.5.13-fix_gcc47_compilation.patch334
-rw-r--r--redhat/applications/rosegarden/rosegarden-3.5.13-fix_gcc47_compilation_2.patch20
-rw-r--r--redhat/applications/rosegarden/trinity-rosegarden.spec41
3 files changed, 384 insertions, 11 deletions
diff --git a/redhat/applications/rosegarden/rosegarden-3.5.13-fix_gcc47_compilation.patch b/redhat/applications/rosegarden/rosegarden-3.5.13-fix_gcc47_compilation.patch
new file mode 100644
index 000000000..596cddfd6
--- /dev/null
+++ b/redhat/applications/rosegarden/rosegarden-3.5.13-fix_gcc47_compilation.patch
@@ -0,0 +1,334 @@
+commit 15276f365c15527fbb10d42e3f5896f540de7413
+Author: Darrell Anderson <humanreadable@yahoo.com>
+Date: 1334351761 -0500
+
+ Updated to build with gcc 4.7.
+
+diff --git a/src/base/Sets.h b/src/base/Sets.h
+index 4fe14d1..2a59ed0 100644
+--- a/src/base/Sets.h
++++ b/src/base/Sets.h
+@@ -287,7 +287,7 @@ AbstractSet<Element, Container>::initialise()
+ m_final = m_baseIterator;
+ sample(m_baseIterator, true);
+
+- if (getAsEvent(m_baseIterator)->isa(Note::EventType)) {
++ if (AbstractSet::getAsEvent(m_baseIterator)->isa(Note::EventType)) {
+ m_initialNote = m_baseIterator;
+ m_finalNote = m_baseIterator;
+ }
+@@ -300,7 +300,7 @@ AbstractSet<Element, Container>::initialise()
+ for (i = j = m_baseIterator; i != getContainer().begin() && test(--j); i = j){
+ if (sample(j, false)) {
+ m_initial = j;
+- if (getAsEvent(j)->isa(Note::EventType)) {
++ if (AbstractSet::getAsEvent(j)->isa(Note::EventType)) {
+ m_initialNote = j;
+ if (m_finalNote == getContainer().end()) {
+ m_finalNote = j;
+@@ -317,7 +317,7 @@ AbstractSet<Element, Container>::initialise()
+ for (i = j = m_baseIterator; ++j != getContainer().end() && test(j); i = j) {
+ if (sample(j, true)) {
+ m_final = j;
+- if (getAsEvent(j)->isa(Note::EventType)) {
++ if (AbstractSet::getAsEvent(j)->isa(Note::EventType)) {
+ m_finalNote = j;
+ if (m_initialNote == getContainer().end()) {
+ m_initialNote = j;
+@@ -332,17 +332,17 @@ bool
+ AbstractSet<Element, Container>::sample(const Iterator &i, bool)
+ {
+ const Quantizer &q(getQuantizer());
+- Event *e = getAsEvent(i);
++ Event *e = AbstractSet::getAsEvent(i);
+ timeT d(q.getQuantizedDuration(e));
+
+ if (e->isa(Note::EventType) || d > 0) {
+ if (m_longest == getContainer().end() ||
+- d > q.getQuantizedDuration(getAsEvent(m_longest))) {
++ d > q.getQuantizedDuration(AbstractSet::getAsEvent(m_longest))) {
+ // std::cerr << "New longest in set at duration " << d << " and time " << e->getAbsoluteTime() << std::endl;
+ m_longest = i;
+ }
+ if (m_shortest == getContainer().end() ||
+- d < q.getQuantizedDuration(getAsEvent(m_shortest))) {
++ d < q.getQuantizedDuration(AbstractSet::getAsEvent(m_shortest))) {
+ // std::cerr << "New shortest in set at duration " << d << " and time " << e->getAbsoluteTime() << std::endl;
+ m_shortest = i;
+ }
+@@ -352,12 +352,12 @@ AbstractSet<Element, Container>::sample(const Iterator &i, bool)
+ long p = get__Int(e, BaseProperties::PITCH);
+
+ if (m_highest == getContainer().end() ||
+- p > get__Int(getAsEvent(m_highest), BaseProperties::PITCH)) {
++ p > get__Int(AbstractSet::getAsEvent(m_highest), BaseProperties::PITCH)) {
+ // std::cerr << "New highest in set at pitch " << p << " and time " << e->getAbsoluteTime() << std::endl;
+ m_highest = i;
+ }
+ if (m_lowest == getContainer().end() ||
+- p < get__Int(getAsEvent(m_lowest), BaseProperties::PITCH)) {
++ p < get__Int(AbstractSet::getAsEvent(m_lowest), BaseProperties::PITCH)) {
+ // std::cerr << "New lowest in set at pitch " << p << " and time " << e->getAbsoluteTime() << std::endl;
+ m_lowest = i;
+ }
+@@ -376,8 +376,8 @@ GenericChord<Element, Container, singleStaff>::GenericChord(Container &c,
+ PropertyName stemUpProperty) :
+ AbstractSet<Element, Container>(c, i, q),
+ m_stemUpProperty(stemUpProperty),
+- m_time(q->getQuantizedAbsoluteTime(getAsEvent(i))),
+- m_subordering(getAsEvent(i)->getSubOrdering()),
++ m_time(q->getQuantizedAbsoluteTime(GenericChord::getAsEvent(i))),
++ m_subordering(GenericChord::getAsEvent(i)->getSubOrdering()),
+ m_firstReject(c.end())
+ {
+ AbstractSet<Element, Container>::initialise();
+@@ -416,7 +416,7 @@ template <class Element, class Container, bool singleStaff>
+ bool
+ GenericChord<Element, Container, singleStaff>::test(const Iterator &i)
+ {
+- Event *e = getAsEvent(i);
++ Event *e = GenericChord::getAsEvent(i);
+ if (AbstractSet<Element, Container>::
+ getQuantizer().getQuantizedAbsoluteTime(e) != m_time) {
+ return false;
+@@ -452,7 +452,7 @@ bool
+ GenericChord<Element, Container, singleStaff>::sample(const Iterator &i,
+ bool goingForwards)
+ {
+- Event *e1 = getAsEvent(i);
++ Event *e1 = GenericChord::getAsEvent(i);
+ if (!e1->isa(Note::EventType)) {
+ if (goingForwards && m_firstReject == AbstractSet<Element, Container>::getContainer().end()) m_firstReject = i;
+ return false;
+@@ -472,7 +472,7 @@ GenericChord<Element, Container, singleStaff>::sample(const Iterator &i,
+
+ if (AbstractSet<Element, Container>::m_baseIterator != AbstractSet<Element, Container>::getContainer().end()) {
+
+- Event *e0 = getAsEvent(AbstractSet<Element, Container>::m_baseIterator);
++ Event *e0 = GenericChord::getAsEvent(AbstractSet<Element, Container>::m_baseIterator);
+
+ if (!(m_stemUpProperty == PropertyName::EmptyPropertyName)) {
+
+@@ -518,7 +518,7 @@ GenericChord<Element, Container, singleStaff>::sample(const Iterator &i,
+ }
+
+ AbstractSet<Element, Container>::sample(i, goingForwards);
+- push_back(i);
++ this->push_back(i);
+ return true;
+ }
+
+@@ -560,7 +560,7 @@ GenericChord<Element, Container, singleStaff>::getMarkCountForChord() const
+
+ for (unsigned int i = 0; i < std::vector<typename Container::iterator>::size(); ++i) {
+
+- Event *e = getAsEvent((*this)[i]);
++ Event *e = GenericChord::getAsEvent((*this)[i]);
+ std::vector<Mark> marks(Marks::getMarks(*e));
+
+ for (std::vector<Mark>::iterator j = marks.begin(); j != marks.end(); ++j) {
+@@ -580,7 +580,7 @@ GenericChord<Element, Container, singleStaff>::getMarksForChord() const
+
+ for (unsigned int i = 0; i < std::vector<typename Container::iterator>::size(); ++i) {
+
+- Event *e = getAsEvent((*this)[i]);
++ Event *e = GenericChord::getAsEvent((*this)[i]);
+ std::vector<Mark> marks(Marks::getMarks(*e));
+
+
+@@ -607,9 +607,9 @@ GenericChord<Element, Container, singleStaff>::getPitches() const
+
+ for (typename std::vector<typename Container::iterator>::const_iterator
+ i = std::vector<typename Container::iterator>::begin(); i != std::vector<typename Container::iterator>::end(); ++i) {
+- if (getAsEvent(*i)->has(BaseProperties::PITCH)) {
++ if (GenericChord::getAsEvent(*i)->has(BaseProperties::PITCH)) {
+ int pitch = get__Int
+- (getAsEvent(*i), BaseProperties::PITCH);
++ (GenericChord::getAsEvent(*i), BaseProperties::PITCH);
+ if (pitches.size() > 0 && pitches[pitches.size()-1] == pitch)
+ continue;
+ pitches.push_back(pitch);
+@@ -641,7 +641,7 @@ GenericChord<Element, Container, singleStaff>::getPreviousNote()
+ while (1) {
+ if (i == AbstractSet<Element, Container>::getContainer().begin()) return AbstractSet<Element, Container>::getContainer().end();
+ --i;
+- if (getAsEvent(i)->isa(Note::EventType)) {
++ if (GenericChord::getAsEvent(i)->isa(Note::EventType)) {
+ return i;
+ }
+ }
+@@ -655,7 +655,7 @@ GenericChord<Element, Container, singleStaff>::getNextNote()
+ Iterator i(AbstractSet<Element, Container>::getFinalElement());
+ while ( i != AbstractSet<Element, Container>::getContainer().end() &&
+ ++i != AbstractSet<Element, Container>::getContainer().end()) {
+- if (getAsEvent(i)->isa(Note::EventType)) {
++ if (GenericChord::getAsEvent(i)->isa(Note::EventType)) {
+ return i;
+ }
+ }
+@@ -677,8 +677,8 @@ GenericChord<Element, Container, singleStaff>::PitchGreater::operator()(const It
+ const Iterator &b)
+ {
+ try {
+- long ap = get__Int(getAsEvent(a), BaseProperties::PITCH);
+- long bp = get__Int(getAsEvent(b), BaseProperties::PITCH);
++ long ap = get__Int(GenericChord::getAsEvent(a), BaseProperties::PITCH);
++ long bp = get__Int(GenericChord::getAsEvent(b), BaseProperties::PITCH);
+ return (ap < bp);
+ } catch (Event::NoData) {
+ std::cerr << "Bad karma: PitchGreater failed to find one or both pitches" << std::endl;
+diff --git a/src/document/RosegardenGUIDoc.cpp b/src/document/RosegardenGUIDoc.cpp
+index 3ec8e94..fab09c3 100644
+--- a/src/document/RosegardenGUIDoc.cpp
++++ b/src/document/RosegardenGUIDoc.cpp
+@@ -2106,15 +2106,15 @@ RosegardenGUIDoc::stopRecordingMidi()
+
+ bool meaningless = true;
+
+- for (Segment::iterator i = s->begin(); i != s->end(); ++i) {
++ for (Segment::iterator j = s->begin(); j != s->end(); ++j) {
+
+- if ((*i)->isa(Clef::EventType)) continue;
++ if ((*j)->isa(Clef::EventType)) continue;
+
+ // no rests in the segment yet, so anything else is meaningful
+ meaningless = false;
+
+- if (!haveMeaning || (*i)->getAbsoluteTime() < earliestMeaning) {
+- earliestMeaning = (*i)->getAbsoluteTime();
++ if (!haveMeaning || (*j)->getAbsoluteTime() < earliestMeaning) {
++ earliestMeaning = (*j)->getAbsoluteTime();
+ }
+
+ haveMeaning = true;
+@@ -2149,13 +2149,13 @@ RosegardenGUIDoc::stopRecordingMidi()
+ ++i) {
+
+ Segment *s = i->second;
+- Segment::iterator i = s->begin();
++ Segment::iterator j = s->begin();
+
+- if (i == s->end() || !(*i)->isa(Clef::EventType)) continue;
++ if (j == s->end() || !(*j)->isa(Clef::EventType)) continue;
+
+- if ((*i)->getAbsoluteTime() < meaningfulBarStart) {
+- Event *e = new Event(**i, meaningfulBarStart);
+- s->erase(i);
++ if ((*j)->getAbsoluteTime() < meaningfulBarStart) {
++ Event *e = new Event(**j, meaningfulBarStart);
++ s->erase(j);
+ s->insert(e);
+ }
+ }
+diff --git a/src/gui/application/LircClient.cpp b/src/gui/application/LircClient.cpp
+index 7664b9e..8b20c84 100644
+--- a/src/gui/application/LircClient.cpp
++++ b/src/gui/application/LircClient.cpp
+@@ -36,6 +36,7 @@
+ #include <tqsocketnotifier.h>
+ #include <fcntl.h>
+ #include <cstdlib>
++#include <unistd.h>
+
+ namespace Rosegarden
+ {
+diff --git a/src/gui/application/LircCommander.cpp b/src/gui/application/LircCommander.cpp
+index e323539..61afaca 100644
+--- a/src/gui/application/LircCommander.cpp
++++ b/src/gui/application/LircCommander.cpp
+@@ -37,7 +37,7 @@
+ #include "RosegardenGUIView.h"
+
+ #include <tqobject.h>
+-
++#include <unistd.h>
+
+ namespace Rosegarden
+ {
+diff --git a/src/gui/application/main.cpp b/src/gui/application/main.cpp
+index b3147de..0744afa 100644
+--- a/src/gui/application/main.cpp
++++ b/src/gui/application/main.cpp
+@@ -22,6 +22,7 @@
+ #include <tqtimer.h>
+ #include <kapplication.h>
+ #include <sys/time.h>
++#include <unistd.h>
+ #include "base/RealTime.h"
+
+ #include <kcmdlineargs.h>
+diff --git a/src/gui/seqmanager/ControlBlockMmapper.cpp b/src/gui/seqmanager/ControlBlockMmapper.cpp
+index 6e4560d..2417c67 100644
+--- a/src/gui/seqmanager/ControlBlockMmapper.cpp
++++ b/src/gui/seqmanager/ControlBlockMmapper.cpp
+@@ -42,6 +42,7 @@
+ #include <fcntl.h>
+ #include <sys/mman.h>
+ #include <errno.h>
++#include <unistd.h>
+
+ namespace Rosegarden
+ {
+diff --git a/src/gui/seqmanager/SegmentMmapper.cpp b/src/gui/seqmanager/SegmentMmapper.cpp
+index b859aa6..29fe715 100644
+--- a/src/gui/seqmanager/SegmentMmapper.cpp
++++ b/src/gui/seqmanager/SegmentMmapper.cpp
+@@ -45,7 +45,7 @@
+ #include <fcntl.h>
+ #include <sys/mman.h>
+ #include <errno.h>
+-
++#include <unistd.h>
+
+ namespace Rosegarden
+ {
+diff --git a/src/gui/seqmanager/SequencerMapper.cpp b/src/gui/seqmanager/SequencerMapper.cpp
+index eec66a0..3a051e3 100644
+--- a/src/gui/seqmanager/SequencerMapper.cpp
++++ b/src/gui/seqmanager/SequencerMapper.cpp
+@@ -40,7 +40,7 @@
+ #include <fcntl.h>
+ #include <sys/mman.h>
+ #include <errno.h>
+-
++#include <unistd.h>
+
+ namespace Rosegarden
+ {
+diff --git a/src/gui/studio/AudioPluginManager.cpp b/src/gui/studio/AudioPluginManager.cpp
+index 24b49f2..4457493 100644
+--- a/src/gui/studio/AudioPluginManager.cpp
++++ b/src/gui/studio/AudioPluginManager.cpp
+@@ -37,7 +37,7 @@
+ #include <tqmutex.h>
+ #include <tqstring.h>
+ #include <tqthread.h>
+-
++#include <unistd.h>
+
+ namespace Rosegarden
+ {
+diff --git a/src/gui/studio/AudioPluginOSCGUIManager.cpp b/src/gui/studio/AudioPluginOSCGUIManager.cpp
+index 13da726..7b8bbd3 100644
+--- a/src/gui/studio/AudioPluginOSCGUIManager.cpp
++++ b/src/gui/studio/AudioPluginOSCGUIManager.cpp
+@@ -25,6 +25,7 @@
+ #ifdef HAVE_LIBLO
+
+ #include <lo/lo.h>
++#include <unistd.h>
+
+ #include "AudioPluginOSCGUIManager.h"
+
+diff --git a/src/sound/RingBuffer.h b/src/sound/RingBuffer.h
+index 0cc5dc6..6ea0d4e 100644
+--- a/src/sound/RingBuffer.h
++++ b/src/sound/RingBuffer.h
+@@ -24,6 +24,7 @@
+
+ #include <sys/types.h>
+ #include <sys/mman.h>
++#include <string.h>
+
+ #include "Scavenger.h"
+
diff --git a/redhat/applications/rosegarden/rosegarden-3.5.13-fix_gcc47_compilation_2.patch b/redhat/applications/rosegarden/rosegarden-3.5.13-fix_gcc47_compilation_2.patch
new file mode 100644
index 000000000..99bbd7f17
--- /dev/null
+++ b/redhat/applications/rosegarden/rosegarden-3.5.13-fix_gcc47_compilation_2.patch
@@ -0,0 +1,20 @@
+--- rosegarden/src/gui/editors/segment/segmentcanvas/AudioPreviewUpdater.cpp.ORI 2012-05-06 12:31:01.464997883 +0200
++++ rosegarden/src/gui/editors/segment/segmentcanvas/AudioPreviewUpdater.cpp 2012-05-06 12:31:19.271625694 +0200
+@@ -22,6 +22,7 @@
+ COPYING included with this distribution for more information.
+ */
+
++#include <unistd.h>
+
+ #include "AudioPreviewUpdater.h"
+
+--- rosegarden/src/gui/editors/segment/segmentcanvas/AudioPreviewUpdater.h.ORI 2012-05-06 12:32:47.222788008 +0200
++++ rosegarden/src/gui/editors/segment/segmentcanvas/AudioPreviewUpdater.h 2012-05-06 12:33:01.046499259 +0200
+@@ -26,6 +26,7 @@
+ #ifndef _RG_AUDIOPREVIEWUPDATER_H_
+ #define _RG_AUDIOPREVIEWUPDATER_H_
+
++#include <unistd.h>
+ #include <tqobject.h>
+ #include <tqrect.h>
+ #include <vector>
diff --git a/redhat/applications/rosegarden/trinity-rosegarden.spec b/redhat/applications/rosegarden/trinity-rosegarden.spec
index 3c42931f9..e7c45d260 100644
--- a/redhat/applications/rosegarden/trinity-rosegarden.spec
+++ b/redhat/applications/rosegarden/trinity-rosegarden.spec
@@ -1,12 +1,12 @@
# Default version for this component
%define kdecomp rosegarden
%define version 1.7.0
-%define release 1
+%define release 2
# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt".
%if "%{?_prefix}" != "/usr"
%define _variant .opt
-%define _docdir %{_prefix}/share/doc
+%define _docdir %{_datadir}/doc
%endif
# TDE 3.5.13 specific building variables
@@ -32,8 +32,15 @@ Prefix: %{_prefix}
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source0: %{kdecomp}-3.5.13.tar.gz
+
Patch0: rosegarden-3.5.13-ftbfs.patch
+# [rosegarden] Updated to build with gcc 4.7. [Commit #15276f36]
+Patch1: rosegarden-3.5.13-fix_gcc47_compilation.patch
+
+# [rosegarden] Updated to build with gcc 4.7. [Bug #958]
+Patch2: rosegarden-3.5.13-fix_gcc47_compilation_2.patch
+
BuildRequires: tqtinterface-devel
BuildRequires: trinity-kdelibs-devel
BuildRequires: trinity-kdebase-devel
@@ -45,6 +52,7 @@ BuildRequires: dssi-devel
BuildRequires: liblo-devel
BuildRequires: liblrdf-devel
BuildRequires: fontconfig-devel
+BuildRequires: jack-audio-connection-kit-devel
Requires: lilypond
Requires: perl-XML-Twig
@@ -80,12 +88,14 @@ This package provides the data files necessary for running Rosegarden
%prep
%setup -q -n applications/%{kdecomp}
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
# Hard-coded path to TQT binaries spotted !!!
%__sed -i CMakeLists.txt \
- -e "s,/usr/bin/uic-tqt,%{_bindir}/uic-tqt,g" \
- -e "s,/usr/bin/tmoc,%{_bindir}/tmoc,g" \
- -e "s,/usr/include/tqt,%{_includedir}/tqt,g"
+ -e "s|/usr/bin/uic-tqt|%{_bindir}/uic-tqt|g" \
+ -e "s|/usr/bin/tmoc|%{_bindir}/tmoc|g" \
+ -e "s|/usr/include/tqt|%{_includedir}/tqt|g"
%build
unset QTDIR && . %{_sysconfdir}/profile.d/qt.sh
@@ -99,7 +109,7 @@ cd build
-DWANT_DEBUG=OFF \
-DWANT_FULLDBG=OFF \
-DWANT_SOUND=ON \
- -DWANT_JACK=OFF \
+ -DWANT_JACK=ON \
-DWANT_DSSI=ON \
%if 0%{?fedora} > 0
-DWANT_LIRC=ON \
@@ -127,12 +137,16 @@ export PATH="%{_bindir}:${PATH}"
%post
-touch --no-create %{_datadir}/icons/hicolor || :
-gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+for f in hicolor locolor; do
+ touch --no-create %{_datadir}/icons/${f} || :
+ gtk-update-icon-cache --quiet %{_datadir}/icons/${f} || :
+done
%postun
-touch --no-create %{_datadir}/icons/hicolor || :
-gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+for f in hicolor locolor; do
+ touch --no-create %{_datadir}/icons/${f} || :
+ gtk-update-icon-cache --quiet %{_datadir}/icons/${f} || :
+done
%files
@@ -152,7 +166,8 @@ gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
%lang(ja) %{tde_docdir}/HTML/ja/rosegarden
%lang(sv) %{tde_docdir}/HTML/sv/rosegarden
%{_datadir}/apps/rosegarden
-%{_datadir}/icons/*/*/*/*
+%{_datadir}/icons/hicolor/*/*/*
+%{_datadir}/icons/locolor/*/*/*
%{_datadir}/mimelnk/audio/x-rosegarden-device.desktop
%{_datadir}/mimelnk/audio/x-rosegarden.desktop
%{_datadir}/mimelnk/audio/x-rosegarden21.desktop
@@ -160,5 +175,9 @@ gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
%Changelog
+* Sun Apr 06 2012 Francois Andriot <francois.andriot@free.fr> - 1.7.0-2
+- Updated to build with gcc 4.7. [Commit #15276f36]
+- Enables JACK support
+
* Sat Nov 26 2011 Francois Andriot <francois.andriot@free.fr> - 1.7.0-1
- Initial build for RHEL 5, RHEL 6, Fedora 15, Fedora 16