Package: rosegarden

The attached patch, grabbed from upstream svn, fixes the FTBFS issue. I've
not had a chance to test the resultant package so this is just to file
the patch for safe-keeping.

Upstream is also heading towards a new release (that will incorporate this
patch), so it's almost worth waiting for that...
Description: fix compilation with gcc-4.7
 Many fixes to allow compilation with gcc-4.7
Author: Brendan Jones of Fedora
Origin: upstream svn r12770
Bug-Debian: #667359

--- rosegarden-11.11.42.orig/src/sound/RingBuffer.h
+++ rosegarden-11.11.42/src/sound/RingBuffer.h
@@ -18,6 +18,7 @@
 
 #include <sys/types.h>
 #include <sys/mman.h>
+#include <string.h>
 
 #include "Scavenger.h"
 
--- rosegarden-11.11.42.orig/src/document/RosegardenDocument.cpp
+++ rosegarden-11.11.42/src/document/RosegardenDocument.cpp
@@ -2359,13 +2359,13 @@ RosegardenDocument::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);
         }
     }
--- rosegarden-11.11.42.orig/src/gui/editors/notation/Inconsistencies.h
+++ rosegarden-11.11.42/src/gui/editors/notation/Inconsistencies.h
@@ -52,11 +52,11 @@ public :
         timeT end = comp->getEndMarker();
 
         typename std::map<timeT, OverlapRange<T> >::iterator it;
-        if (getFirst(start, end, it)) {
+        if (this->getFirst(start, end, it)) {
             for (;;) {
                 timeT t1, t2;
-                if (!isConsistent(it)) {
-                    getTimeRange(it, t1, t2);
+                if (!this->isConsistent(it)) {
+                    this->getTimeRange(it, t1, t2);
                     int bar1 = comp->getBarNumber(t1) + 1;
                     int bar2 = comp->getBarNumber(t2) + 1;
                     str += QString("<blockquote>");
@@ -68,18 +68,18 @@ public :
                     }
 
                     str += QString("<blockquote>");
-                    const std::vector<Segment *> *s = getSegments(it);
+                    const std::vector<Segment *> *s = this->getSegments(it);
                     std::vector<Segment *>::const_iterator sit;
                     for (sit = s->begin(); sit != s->end(); ++sit) {
                         if (sit != s->begin()) str += QString("<br>");                            
                         T pr = Overlaps<T>::getPropertyAtTime(*sit, t1);
                         str+= segLine
                                   .arg(QString::fromStdString((*sit)->getLabel()))
-                                  .arg(getTranslatedName(pr));
+                                  .arg(this->getTranslatedName(pr));
                     }
                     str += QString("</blockquote></blockquote>");
                 }
-                if (!getNext(end, it)) break;
+                if (!this->getNext(end, it)) break;
             }
         }
     }
--- rosegarden-11.11.42.orig/src/gui/studio/AudioPluginOSCGUIManager.cpp
+++ rosegarden-11.11.42/src/gui/studio/AudioPluginOSCGUIManager.cpp
@@ -37,7 +37,7 @@
 #include <QString>
 
 #include <lo/lo.h>
-
+#include <unistd.h>
 
 namespace Rosegarden
 {
--- rosegarden-11.11.42.orig/src/gui/application/LircClient.cpp
+++ rosegarden-11.11.42/src/gui/application/LircClient.cpp
@@ -29,6 +29,7 @@
 #include <QSocketNotifier>
 #include <fcntl.h>
 #include <cstdlib>
+#include <unistd.h>
 
 namespace Rosegarden
 {
--- rosegarden-11.11.42.orig/src/gui/application/LircCommander.cpp
+++ rosegarden-11.11.42/src/gui/application/LircCommander.cpp
@@ -31,7 +31,7 @@
 #include "document/CommandHistory.h"
 
 #include <QObject>
-
+#include <unistd.h>
 
 namespace Rosegarden
 {
--- rosegarden-11.11.42.orig/src/gui/application/main.cpp
+++ rosegarden-11.11.42/src/gui/application/main.cpp
@@ -49,6 +49,7 @@
 #include <QStringList>
 
 #include <sys/time.h>
+#include <unistd.h>
 
 using namespace Rosegarden;
 
--- rosegarden-11.11.42.orig/src/base/Sets.h
+++ rosegarden-11.11.42/src/base/Sets.h
@@ -349,7 +349,7 @@ AbstractSet<Element, Container>::initial
     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;
     }
@@ -362,7 +362,7 @@ AbstractSet<Element, Container>::initial
     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;
@@ -379,7 +379,7 @@ AbstractSet<Element, Container>::initial
     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;
@@ -397,17 +397,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;
         }
@@ -417,12 +417,12 @@ AbstractSet<Element, Container>::sample(
         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;
         }
@@ -441,8 +441,8 @@ GenericChord<Element, Container, singleS
                                                             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())
 {
     // initialise must be called in individual derived classes.  If we
@@ -471,7 +471,7 @@ template <class Element, class Container
 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;
@@ -507,7 +507,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;
@@ -527,7 +527,7 @@ GenericChord<Element, Container, singleS
 
         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)) {
 
@@ -573,7 +573,7 @@ GenericChord<Element, Container, singleS
     }
 
     AbstractSet<Element, Container>::sample(i, goingForwards);
-    push_back(i);
+    this->push_back(i);
     return true;
 }
 
@@ -615,7 +615,7 @@ GenericChord<Element, Container, singleS
 
     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) {
@@ -635,7 +635,7 @@ GenericChord<Element, Container, singleS
 
     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));
 
 
@@ -662,9 +662,9 @@ GenericChord<Element, Container, singleS
 
     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);
@@ -696,7 +696,7 @@ GenericChord<Element, Container, singleS
     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;
         }
     }
@@ -710,7 +710,7 @@ GenericChord<Element, Container, singleS
     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;
         }
     }
@@ -732,8 +732,8 @@ GenericChord<Element, Container, singleS
                                                            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;
--- rosegarden-11.11.42.orig/src/base/Overlaps.h
+++ rosegarden-11.11.42/src/base/Overlaps.h
@@ -65,15 +65,15 @@ public :
         timeT segEnd = (*i)->getEndMarkerTime();
 
         // Start and ends of segments always are range limits
-        insert(std::pair<timeT, OverlapRange<T> >(segStart, range));
-        insert(std::pair<timeT, OverlapRange<T> >(segEnd, range));
+        this->insert(std::pair<timeT, OverlapRange<T> >(segStart, range));
+        this->insert(std::pair<timeT, OverlapRange<T> >(segEnd, range));
 
         timeT currentTime, propertyTime;
         currentTime = segStart;
         for (;;) {
             bool fnd = getNextPropertyTime((*i), currentTime, propertyTime);
             if (!fnd) break;
-            insert(std::pair<timeT, OverlapRange<T> >(propertyTime, range));
+            this->insert(std::pair<timeT, OverlapRange<T> >(propertyTime, range));
             currentTime = propertyTime;
         }
     }

Reply via email to