Accepting request 111096 from multimedia:apps

Fix build with gcc 4.7 - Please work with upstream to resolve it in upstream code base. There is also a chance that a newer version of the package might have this fixed already. (forwarded request 110927 from plater)

OBS-URL: https://build.opensuse.org/request/show/111096
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rosegarden?expand=0&rev=10
This commit is contained in:
Stephan Kulow 2012-03-27 06:58:34 +00:00 committed by Git OBS Bridge
commit f683606dd3
3 changed files with 321 additions and 0 deletions

313
rosegarden-gcc47.patch Normal file
View File

@ -0,0 +1,313 @@
diff -Nur rosegarden-11.11.42.orig/src/base/Overlaps.h rosegarden-11.11.42/src/base/Overlaps.h
--- rosegarden-11.11.42.orig/src/base/Overlaps.h 2011-12-11 21:09:32.000000000 +0100
+++ rosegarden-11.11.42/src/base/Overlaps.h 2012-01-17 19:59:41.338313832 +0100
@@ -65,15 +65,15 @@
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;
}
}
diff -Nur rosegarden-11.11.42.orig/src/base/Sets.h rosegarden-11.11.42/src/base/Sets.h
--- rosegarden-11.11.42.orig/src/base/Sets.h 2011-12-11 21:09:32.000000000 +0100
+++ rosegarden-11.11.42/src/base/Sets.h 2012-01-17 18:50:41.213404377 +0100
@@ -349,7 +349,7 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
}
AbstractSet<Element, Container>::sample(i, goingForwards);
- push_back(i);
+ this->push_back(i);
return true;
}
@@ -615,7 +615,7 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 -Nur rosegarden-11.11.42.orig/src/document/RosegardenDocument.cpp rosegarden-11.11.42/src/document/RosegardenDocument.cpp
--- rosegarden-11.11.42.orig/src/document/RosegardenDocument.cpp 2011-12-11 21:09:34.000000000 +0100
+++ rosegarden-11.11.42/src/document/RosegardenDocument.cpp 2012-01-17 18:13:34.335452989 +0100
@@ -2359,13 +2359,13 @@
++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 -Nur rosegarden-11.11.42.orig/src/gui/application/LircClient.cpp rosegarden-11.11.42/src/gui/application/LircClient.cpp
--- rosegarden-11.11.42.orig/src/gui/application/LircClient.cpp 2011-12-11 21:09:16.000000000 +0100
+++ rosegarden-11.11.42/src/gui/application/LircClient.cpp 2012-01-17 19:01:11.259390559 +0100
@@ -29,6 +29,7 @@
#include <QSocketNotifier>
#include <fcntl.h>
#include <cstdlib>
+#include <unistd.h>
namespace Rosegarden
{
diff -Nur rosegarden-11.11.42.orig/src/gui/application/LircCommander.cpp rosegarden-11.11.42/src/gui/application/LircCommander.cpp
--- rosegarden-11.11.42.orig/src/gui/application/LircCommander.cpp 2011-12-11 21:09:16.000000000 +0100
+++ rosegarden-11.11.42/src/gui/application/LircCommander.cpp 2012-01-17 18:56:50.373396313 +0100
@@ -31,7 +31,7 @@
#include "document/CommandHistory.h"
#include <QObject>
-
+#include <unistd.h>
namespace Rosegarden
{
diff -Nur rosegarden-11.11.42.orig/src/gui/application/main.cpp rosegarden-11.11.42/src/gui/application/main.cpp
--- rosegarden-11.11.42.orig/src/gui/application/main.cpp 2011-12-11 21:09:16.000000000 +0100
+++ rosegarden-11.11.42/src/gui/application/main.cpp 2012-01-17 18:58:53.769393547 +0100
@@ -49,6 +49,7 @@
#include <QStringList>
#include <sys/time.h>
+#include <unistd.h>
using namespace Rosegarden;
diff -Nur rosegarden-11.11.42.orig/src/gui/editors/notation/Inconsistencies.h rosegarden-11.11.42/src/gui/editors/notation/Inconsistencies.h
--- rosegarden-11.11.42.orig/src/gui/editors/notation/Inconsistencies.h 2011-12-11 21:09:25.000000000 +0100
+++ rosegarden-11.11.42/src/gui/editors/notation/Inconsistencies.h 2012-01-17 19:56:09.986318473 +0100
@@ -52,11 +52,11 @@
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 @@
}
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;
}
}
}
diff -Nur rosegarden-11.11.42.orig/src/gui/studio/AudioPluginOSCGUIManager.cpp rosegarden-11.11.42/src/gui/studio/AudioPluginOSCGUIManager.cpp
--- rosegarden-11.11.42.orig/src/gui/studio/AudioPluginOSCGUIManager.cpp 2011-12-11 21:09:20.000000000 +0100
+++ rosegarden-11.11.42/src/gui/studio/AudioPluginOSCGUIManager.cpp 2012-01-17 18:54:18.965399536 +0100
@@ -37,7 +37,7 @@
#include <QString>
#include <lo/lo.h>
-
+#include <unistd.h>
namespace Rosegarden
{
diff -Nur rosegarden-11.11.42.orig/src/sound/RingBuffer.h rosegarden-11.11.42/src/sound/RingBuffer.h
--- rosegarden-11.11.42.orig/src/sound/RingBuffer.h 2011-12-11 21:09:29.000000000 +0100
+++ rosegarden-11.11.42/src/sound/RingBuffer.h 2012-01-17 18:15:33.906450378 +0100
@@ -18,6 +18,7 @@
#include <sys/types.h>
#include <sys/mman.h>
+#include <string.h>
#include "Scavenger.h"

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Sat Mar 24 18:17:43 UTC 2012 - dimstar@opensuse.org
- Add rosegarden-gcc47.patch: Fix build with gcc 4.7.
-------------------------------------------------------------------
Wed Mar 7 13:38:53 UTC 2012 - davejplater@gmail.com

View File

@ -46,6 +46,8 @@ Patch0: rosegarden-10.02-plugin-lib64path.patch
Patch1: rosegarden-10.10-filepaths.patch
#Temporary patch to fix license statement in the "About box"
Patch2: rosegarden-11.11-gplv2+.patch
# PATCH-FIX-UPSTREAM rosegarden-gcc47.patch sf#3475088 -- Fix build with gcc 4.7
Patch3: rosegarden-gcc47.patch
Summary: Midi, Audio And Notation Editor
License: GPL-2.0+
Group: Productivity/Multimedia/Sound/Midi
@ -80,6 +82,7 @@ See the changelog for details.
%patch0
%patch1
%patch2
%patch3 -p1
# When we build svn we need to execute bootstrap.sh it doesn't harm the release build either.
sh bootstrap.sh