Version: 1.0
authorJacek Konieczny <jajcus@jajcus.net>
Sat, 5 Dec 2015 14:39:47 +0000 (15:39 +0100)
committerJacek Konieczny <jajcus@jajcus.net>
Sat, 5 Dec 2015 14:39:47 +0000 (15:39 +0100)
builds, but crashes on startup in XQueryExtension() in glewInit()

bool_cast.patch [new file with mode: 0644]
cmake.patch [deleted file]
performous-ffmpeg.patch [deleted file]
performous-libpng15.patch [deleted file]
performous.spec

diff --git a/bool_cast.patch b/bool_cast.patch
new file mode 100644 (file)
index 0000000..c9dad85
--- /dev/null
@@ -0,0 +1,11 @@
+--- performous-1.0/game/songparser.hh~ 2015-12-05 14:07:56.354059559 +0100
++++ performous-1.0/game/songparser.hh  2015-12-05 14:08:12.647545320 +0100
+@@ -33,7 +33,7 @@
+       Song& m_song;
+       std::stringstream m_ss;
+       unsigned int m_linenum;
+-      bool getline(std::string& line) { ++m_linenum; return std::getline(m_ss, line);}
++      bool getline(std::string& line) { ++m_linenum; return static_cast<bool>(std::getline(m_ss, line));}
+       bool m_relative;
+       double m_gap;
+       double m_bpm;
diff --git a/cmake.patch b/cmake.patch
deleted file mode 100644 (file)
index c562e80..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
---- Performous-0.6.1-Source/cmake/Modules/FindGlib.cmake~      2010-10-31 17:05:44.000000000 +0100
-+++ Performous-0.6.1-Source/cmake/Modules/FindGlib.cmake       2012-07-11 23:22:12.095571956 +0200
-@@ -17,7 +17,7 @@
- find_path(GlibConfig_INCLUDE_DIR
-   NAMES glibconfig.h
-   PATHS ${Glib_PKGCONF_INCLUDE_DIRS} /usr
--  PATH_SUFFIXES lib/glib-2.0/include ../lib/glib-2.0/include
-+  PATH_SUFFIXES lib${LIB_SUFFIX}/glib-2.0/include ../lib${LIB_SUFFIX}/glib-2.0/include
- )
- # Finally the library itself
---- Performous-0.6.1-Source/cmake/Modules/FindGDK-PixBuf.cmake~        2010-10-31 17:05:44.000000000 +0100
-+++ Performous-0.6.1-Source/cmake/Modules/FindGDK-PixBuf.cmake 2012-07-11 23:25:09.845565687 +0200
-@@ -14,7 +14,7 @@
- find_path(GDK-PixBuf_INCLUDE_DIR
-   NAMES gdk-pixbuf/gdk-pixbuf.h
-   PATHS ${GDK-PixBuf_PKGCONF_INCLUDE_DIRS}
--  PATH_SUFFIXES gtk-2.0
-+  PATH_SUFFIXES gdk-pixbuf-2.0
- )
- # Finally the library itself
---- Performous-0.6.1-Source/cmake/Modules/FindLibRSVG.cmake~   2010-10-31 17:05:44.000000000 +0100
-+++ Performous-0.6.1-Source/cmake/Modules/FindLibRSVG.cmake    2012-07-11 23:26:57.155561898 +0200
-@@ -18,7 +18,7 @@
- find_path(LibRSVG_INCLUDE_DIR
-   NAMES librsvg/rsvg.h
-   PATHS ${LibRSVG_PKGCONF_INCLUDE_DIRS}
--  PATH_SUFFIXES librsvg-2
-+  PATH_SUFFIXES librsvg-2.0
- )
- # Finally the library itself
---- Performous-0.6.1-Source/cmake/Modules/FindSigC++.cmake~    2010-10-31 17:05:44.000000000 +0100
-+++ Performous-0.6.1-Source/cmake/Modules/FindSigC++.cmake     2012-07-11 23:29:10.248890540 +0200
-@@ -17,7 +17,7 @@
- find_path(SigC++Config_INCLUDE_DIR
-   NAMES sigc++config.h
-   PATHS ${SigC++_PKGCONF_INCLUDE_DIRS} /usr
--  PATH_SUFFIXES lib/sigc++-2.0/include ../lib/sigc++-2.0/include
-+  PATH_SUFFIXES lib${LIB_SUFFIX}/sigc++-2.0/include ../lib${LIB_SUFFIX}/sigc++-2.0/include
- )
- # Finally the library itself
---- Performous-0.6.1-Source/cmake/Modules/FindGlibmm.cmake~    2010-10-31 17:05:44.000000000 +0100
-+++ Performous-0.6.1-Source/cmake/Modules/FindGlibmm.cmake     2012-07-11 23:29:52.625555711 +0200
-@@ -21,7 +21,7 @@
- find_path(GlibmmConfig_INCLUDE_DIR
-   NAMES glibmmconfig.h
-   PATHS ${Glibmm_PKGCONF_INCLUDE_DIRS} /usr
--  PATH_SUFFIXES lib/glibmm-2.4/include ../lib/glibmm-2.4/include
-+  PATH_SUFFIXES lib${LIB_SUFFIX}/glibmm-2.4/include ../lib${LIB_SUFFIX}/glibmm-2.4/include
- )
- # Finally the library itself
---- Performous-0.6.1-Source/cmake/Modules/FindLibXML++.cmake~  2010-10-31 17:05:44.000000000 +0100
-+++ Performous-0.6.1-Source/cmake/Modules/FindLibXML++.cmake   2012-07-11 23:30:33.782220925 +0200
-@@ -21,7 +21,7 @@
- find_path(LibXML++Config_INCLUDE_DIR
-   NAMES libxml++config.h
-   PATHS ${LibXML++_PKGCONF_INCLUDE_DIRS} /usr
--  PATH_SUFFIXES lib/libxml++-2.6/include ../lib/libxml++-2.6/include
-+  PATH_SUFFIXES lib${LIB_SUFFIX}/libxml++-2.6/include ../lib${LIB_SUFFIX}/libxml++-2.6/include
- )
- # Finally the library itself
diff --git a/performous-ffmpeg.patch b/performous-ffmpeg.patch
deleted file mode 100644 (file)
index f4955ff..0000000
+++ /dev/null
@@ -1,355 +0,0 @@
-diff -dur performous-0.7.0.orig/game/audio.cc performous-0.7.0/game/audio.cc
---- performous-0.7.0.orig/game/audio.cc        2012-11-12 23:14:08.000000000 +0100
-+++ performous-0.7.0/game/audio.cc     2013-05-20 21:06:19.000000000 +0200
-@@ -140,7 +140,7 @@
-               FFmpeg mpeg;
-               float fadeLevel;
-               float pitchFactor;
--              Track(std::string const& filename, unsigned int sr): mpeg(false, true, filename, sr), fadeLevel(1.0f), pitchFactor(0.0f) {}
-+              Track(std::string const& filename, unsigned int sr): mpeg(filename, sr), fadeLevel(1.0f), pitchFactor(0.0f) {}
-       };
-       typedef boost::ptr_map<std::string, Track> Tracks;
-       Tracks tracks; ///< Audio decoders
-@@ -241,7 +241,7 @@
-       FFmpeg mpeg;
-       bool eof;
-   public:
--      Sample(std::string const& filename, unsigned sr) : srate(sr), m_pos(), mpeg(false, true, filename, sr), eof(true) { }
-+      Sample(std::string const& filename, unsigned sr) : srate(sr), m_pos(), mpeg(filename, sr), eof(true) { }
-       void operator()(float* begin, float* end) {
-               if(eof) {
-                       // No more data to play in this sample
-diff -dur performous-0.7.0.orig/game/ffmpeg.cc performous-0.7.0/game/ffmpeg.cc
---- performous-0.7.0.orig/game/ffmpeg.cc       2012-11-12 23:14:08.000000000 +0100
-+++ performous-0.7.0/game/ffmpeg.cc    2013-05-20 21:10:23.331289370 +0200
-@@ -3,6 +3,7 @@
- #include "config.hh"
- #include "util.hh"
- #include "xtime.hh"
-+#include <boost/smart_ptr/shared_ptr.hpp>
- #include <iostream>
- #include <stdexcept>
-@@ -20,36 +21,19 @@
- /*static*/ boost::mutex FFmpeg::s_avcodec_mutex;
--FFmpeg::FFmpeg(bool decodeVideo, bool decodeAudio, std::string const& _filename, unsigned int rate):
--  width(), height(), m_filename(_filename), m_rate(rate), m_quit(), m_running(), m_eof(),
--  m_seekTarget(getNaN()), m_position(), m_streamId(-1), m_mediaType(),
--  m_formatContext(), m_codecContext(), m_codec(), m_resampleContext(), m_swsContext(),
-+FFmpeg::FFmpeg(std::string const& _filename, unsigned int rate):
-+  width(), height(), m_filename(_filename), m_rate(rate), m_quit(),
-+  m_seekTarget(getNaN()), m_position(), m_duration(), m_streamId(-1),
-+  m_mediaType(rate ? AVMEDIA_TYPE_AUDIO : AVMEDIA_TYPE_VIDEO),
-+  m_formatContext(), m_codecContext(), m_resampleContext(), m_swsContext(),
-   m_thread(new boost::thread(boost::ref(*this)))
--{
--      if (decodeVideo) m_mediaType = AVMEDIA_TYPE_VIDEO;
--      else if (decodeAudio) m_mediaType = AVMEDIA_TYPE_AUDIO;
--      else throw std::logic_error("Can only decode one track");
--}
-+{}
- FFmpeg::~FFmpeg() {
-       m_quit = true;
-       videoQueue.reset();
-       audioQueue.quit();
-       m_thread->join();
--      // TODO: use RAII for freeing resources (to prevent memory leaks)
--      boost::mutex::scoped_lock l(s_avcodec_mutex); // avcodec_close is not thread-safe
--      if (m_resampleContext) audio_resample_close(m_resampleContext);
--      if (m_codecContext) avcodec_close(m_codecContext);
--#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53, 17, 0)
--      if (m_formatContext) avformat_close_input(&m_formatContext);
--#else
--      if (m_formatContext) av_close_input_file(m_formatContext);
--#endif
--}
--
--double FFmpeg::duration() const {
--      double d = m_running ? m_formatContext->duration / double(AV_TIME_BASE) : getNaN();
--      return d >= 0.0 ? d : getInf();
- }
- void FFmpeg::open() {
-@@ -60,11 +44,12 @@
-       if (avformat_find_stream_info(m_formatContext, NULL) < 0) throw std::runtime_error("Cannot find stream information");
-       m_formatContext->flags |= AVFMT_FLAG_GENPTS;
-       // Find a track and open the codec
--      m_streamId = av_find_best_stream(m_formatContext, (AVMediaType)m_mediaType, -1, -1, &m_codec, 0);
-+      AVCodec* codec = NULL;
-+      m_streamId = av_find_best_stream(m_formatContext, (AVMediaType)m_mediaType, -1, -1, &codec, 0);
-       if (m_streamId < 0) throw std::runtime_error("No suitable track found");
-       AVCodecContext* cc = m_formatContext->streams[m_streamId]->codec;
--      if (avcodec_open2(cc, m_codec, NULL) < 0) throw std::runtime_error("Cannot open audio codec");
-+      if (avcodec_open2(cc, codec, NULL) < 0) throw std::runtime_error("Cannot open codec");
-       cc->workaround_bugs = FF_BUG_AUTODETECT;
-       m_codecContext = cc;
-@@ -90,18 +75,16 @@
- void FFmpeg::operator()() {
-       try { open(); } catch (std::exception const& e) { std::clog << "ffmpeg/error: Failed to open " << m_filename << ": " << e.what() << std::endl; m_quit = true; return; }
--      m_running = true;
--      audioQueue.setDuration(duration());
-+      m_duration = m_formatContext->duration / double(AV_TIME_BASE);
-+      audioQueue.setDuration(m_duration);
-       int errors = 0;
-       while (!m_quit) {
-               try {
-                       if (audioQueue.wantSeek()) m_seekTarget = 0.0;
-                       if (m_seekTarget == m_seekTarget) seek_internal();
-                       decodePacket();
--                      m_eof = false;
-                       errors = 0;
-               } catch (eof_error&) {
--                      m_eof = true;
-                       videoQueue.push(new VideoFrame()); // EOF marker
-                       boost::thread::sleep(now() + 0.1);
-               } catch (std::exception& e) {
-@@ -109,10 +92,17 @@
-                       if (++errors > 2) { std::clog << "ffmpeg/error: FFMPEG terminating due to multiple errors" << std::endl; m_quit = true; }
-               }
-       }
--      m_running = false;
--      m_eof = true;
-       audioQueue.setEof();
-       videoQueue.push(new VideoFrame()); // EOF marker
-+      // TODO: use RAII for freeing resources (to prevent memory leaks)
-+      boost::mutex::scoped_lock l(s_avcodec_mutex); // avcodec_close is not thread-safe
-+      if (m_resampleContext) audio_resample_close(m_resampleContext);
-+      if (m_codecContext) avcodec_close(m_codecContext);
-+#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53, 17, 0)
-+      if (m_formatContext) avformat_close_input(&m_formatContext);
-+#else
-+      if (m_formatContext) av_close_input_file(m_formatContext);
-+#endif
- }
- void FFmpeg::seek(double time, bool wait) {
-@@ -125,7 +115,7 @@
-       videoQueue.reset();
-       audioQueue.reset();
-       int flags = 0;
--      if (m_seekTarget < position()) flags |= AVSEEK_FLAG_BACKWARD;
-+      if (m_seekTarget < m_position) flags |= AVSEEK_FLAG_BACKWARD;
-       av_seek_frame(m_formatContext, -1, m_seekTarget * AV_TIME_BASE, flags);
-       m_seekTarget = getNaN(); // Signal that seeking is done
- }
-@@ -139,16 +129,6 @@
-               ~ReadFramePacket() { av_free_packet(this); }
-       };
--      struct AVFrameWrapper {
--              AVFrame* m_frame;
--              AVFrameWrapper(): m_frame(avcodec_alloc_frame()) {
--                      if (!m_frame) throw std::runtime_error("Unable to allocate AVFrame");
--              }
--              ~AVFrameWrapper() { av_free(m_frame); }
--              operator AVFrame*() { return m_frame; }
--              AVFrame* operator->() { return m_frame; }
--      };
--
-       // Read an AVPacket and decode it into AVFrames
-       ReadFramePacket packet(m_formatContext);
-       int packetSize = packet.size;
-@@ -157,18 +137,19 @@
-               if (m_quit || m_seekTarget == m_seekTarget) return;
-               if (packet.stream_index != m_streamId) return;
--              AVFrameWrapper frame;
-+              boost::shared_ptr<AVFrame> frame(avcodec_alloc_frame(), &av_free);
-               int frameFinished = 0;
-               int decodeSize = (m_mediaType == AVMEDIA_TYPE_VIDEO ?
--                avcodec_decode_video2(m_codecContext, frame, &frameFinished, &packet) :
--                avcodec_decode_audio4(m_codecContext, frame, &frameFinished, &packet));
--              if (decodeSize < 0) throw std::runtime_error("cannot decode avframe");
-+                avcodec_decode_video2(m_codecContext, frame.get(), &frameFinished, &packet) :
-+                avcodec_decode_audio4(m_codecContext, frame.get(), &frameFinished, &packet));
-+              if (decodeSize < 0) return; // Packet didn't produce any output (could be waiting for B frames or something)
-               packetSize -= decodeSize; // Move forward within the packet
-               if (!frameFinished) continue;
-               // Update current position if timecode is available
-               if (frame->pkt_pts != uint64_t(AV_NOPTS_VALUE)) {
--                      m_position = double(frame->pkt_pts) * av_q2d(m_formatContext->streams[m_streamId]->time_base);
-+                      m_position = double(frame->pkt_pts) * av_q2d(m_formatContext->streams[m_streamId]->time_base)
-+                        - double(m_formatContext->start_time) / AV_TIME_BASE;
-               }
--              if (m_mediaType == AVMEDIA_TYPE_VIDEO) processVideo(frame); else processAudio(frame);
-+              if (m_mediaType == AVMEDIA_TYPE_VIDEO) processVideo(frame.get()); else processAudio(frame.get());
-       }
- }
-@@ -189,9 +171,28 @@
- }
- void FFmpeg::processAudio(AVFrame* frame) {
-+      void* data = frame->data[0];
-+      // New FFmpeg versions use non-interleaved audio decoding and samples may be in float format.
-+      // Do a conversion here, allowing us to use the old (deprecated) avcodec audio_resample().
-+      std::vector<int16_t> input;
-+      unsigned inFrames = frame->nb_samples;
-+      if (frame->data[1]) {
-+              unsigned channels = m_codecContext->channels;
-+              input.reserve(channels * inFrames);
-+              for (unsigned i = 0; i < inFrames; ++i) {
-+                      for (unsigned ch = 0; ch < channels; ++ch) {
-+                              data = frame->data[ch];
-+                              input.push_back(m_codecContext->sample_fmt == AV_SAMPLE_FMT_FLTP ?
-+                                da::conv_to_s16(reinterpret_cast<float*>(data)[i]) :
-+                                reinterpret_cast<int16_t*>(data)[i]
-+                              );
-+                      }
-+              }
-+              data = &input[0];
-+      }
-       // Resample to output sample rate, then push to audio queue and increment timecode
-       std::vector<int16_t> resampled(AVCODEC_MAX_AUDIO_FRAME_SIZE);
--      int frames = audio_resample(m_resampleContext, &resampled[0], (short*)frame->data[0], frame->nb_samples);
-+      int frames = audio_resample(m_resampleContext, &resampled[0], reinterpret_cast<short*>(data), inFrames);
-       resampled.resize(frames * AUDIO_CHANNELS);
-       audioQueue.push(resampled, m_position);  // May block
-       m_position += double(frames)/m_formatContext->streams[m_streamId]->codec->sample_rate;
-diff -dur performous-0.7.0.orig/game/ffmpeg.hh performous-0.7.0/game/ffmpeg.hh
---- performous-0.7.0.orig/game/ffmpeg.hh       2012-11-12 23:14:08.000000000 +0100
-+++ performous-0.7.0/game/ffmpeg.hh    2013-05-20 21:07:49.501722941 +0200
-@@ -3,7 +3,7 @@
- #include "util.hh"
- #include "libda/sample.hpp"
- #include <boost/circular_buffer.hpp>
--#include <boost/ptr_container/ptr_set.hpp>
-+#include <boost/ptr_container/ptr_deque.hpp>
- #include <boost/scoped_ptr.hpp>
- #include <boost/thread/condition.hpp>
- #include <boost/thread/mutex.hpp>
-@@ -47,25 +47,19 @@
-       }
- };
--static bool operator<(VideoFrame const& a, VideoFrame const& b) {
--      return a.timestamp < b.timestamp;
--}
--
- /// video queue: first in first out
- class VideoFifo {
-   public:
--      VideoFifo(): m_available(), m_timestamp(), m_eof() {}
-+      VideoFifo(): m_timestamp(), m_eof() {}
-       /// trys to pop a VideoFrame from queue
-       bool tryPop(VideoFrame& f) {
-               boost::mutex::scoped_lock l(m_mutex);
--              if (!m_queue.empty() && m_queue.begin()->data.empty()) { m_eof = true; return false; }
--              statsUpdate();
--              if (m_available == 0) return false; // Nothing to deliver
-+              if (m_queue.empty()) return false; // Nothing to deliver
-+              if (m_queue.begin()->data.empty()) { m_eof = true; return false; }
-               f.swap(*m_queue.begin());
--              m_queue.erase(m_queue.begin());
-+              m_queue.pop_front();
-               m_cond.notify_all();
-               m_timestamp = f.timestamp;
--              statsUpdate();
-               return true;
-       }
-       /// pushes VideoFrames to queue
-@@ -73,38 +67,27 @@
-               boost::mutex::scoped_lock l(m_mutex);
-               while (m_queue.size() > m_max) m_cond.wait(l);
-               if (m_queue.empty()) m_timestamp = f->timestamp;
--              m_queue.insert(f);
--              statsUpdate();
--      }
--      /// updates stats
--      void statsUpdate() {
--              m_available = std::max(0, int(m_queue.size()) - int(m_min));
--              if (m_available == 0 && !m_queue.empty() && m_queue.rbegin()->data.empty()) m_available = m_queue.size() - 1;
-+              m_queue.push_back(f);
-       }
-       /// resets video queue
-       void reset() {
-               boost::mutex::scoped_lock l(m_mutex);
-               m_queue.clear();
-               m_cond.notify_all();
--              statsUpdate();
-               m_eof = false;
-       }
-       /// returns current position
-       double position() const { return m_timestamp; }
--      /// returns m_available / m_max
--      double percentage() const { return double(m_available) / m_max; }
-       /// simple eof check
-       double eof() const { return m_eof; }
-   private:
--      boost::ptr_set<VideoFrame> m_queue;
-+      boost::ptr_deque<VideoFrame> m_queue;
-       mutable boost::mutex m_mutex;
-       boost::condition m_cond;
--      volatile unsigned m_available;
-       double m_timestamp;
-       bool m_eof;
--      static const unsigned m_min = 16; // H.264 may have 16 consecutive B frames
--      static const unsigned m_max = 50;
-+      static const unsigned m_max = 20;
- };
- class AudioBuffer {
-@@ -195,7 +178,6 @@
- // ffmpeg forward declarations
- extern "C" {
--  struct AVCodec;
-   struct AVCodecContext;
-   struct AVFormatContext;
-   struct AVFrame;
-@@ -206,8 +188,8 @@
- /// ffmpeg class
- class FFmpeg {
-   public:
--      /// constructor
--      FFmpeg(bool decodeVideo, bool decodeAudio, std::string const& file, unsigned int rate = 48000);
-+      /// Decode file; if no rate is specified, decode video, otherwise decode audio.
-+      FFmpeg(std::string const& file, unsigned int rate = 0);
-       ~FFmpeg();
-       void operator()(); ///< Thread runs here, don't call directly
-       unsigned width, ///< width of video
-@@ -220,8 +202,6 @@
-       void seek(double time, bool wait = true);
-       /// duration
-       double duration() const;
--      /// return current position
--      double position() { return videoQueue.position(); /* FIXME: remove */ }
-       bool terminating() const { return m_quit; }
-       class eof_error: public std::exception {};
-@@ -234,16 +214,14 @@
-       std::string m_filename;
-       unsigned int m_rate;
-       volatile bool m_quit;
--      volatile bool m_running;
--      volatile bool m_eof;
-       volatile double m_seekTarget;
-       double m_position;
-+      double m_duration;
-       // libav-specific variables
-       int m_streamId;
-       int m_mediaType;  // enum AVMediaType
-       AVFormatContext* m_formatContext;
-       AVCodecContext* m_codecContext;
--      AVCodec* m_codec;
-       ReSampleContext* m_resampleContext;
-       SwsContext* m_swsContext;
-       // Make sure the thread starts only after initializing everything else
-diff -dur performous-0.7.0.orig/game/video.cc performous-0.7.0/game/video.cc
---- performous-0.7.0.orig/game/video.cc        2012-11-12 23:14:08.000000000 +0100
-+++ performous-0.7.0/game/video.cc     2013-05-20 21:07:49.501722941 +0200
-@@ -3,7 +3,7 @@
- #include "util.hh"
- #include <cmath>
--Video::Video(std::string const& _videoFile, double videoGap): m_mpeg(true, false, _videoFile), m_videoGap(videoGap), m_surfaceTime(), m_lastTime(), m_alpha(-0.5, 1.5) {}
-+Video::Video(std::string const& _videoFile, double videoGap): m_mpeg(_videoFile), m_videoGap(videoGap), m_surfaceTime(), m_lastTime(), m_alpha(-0.5, 1.5) {}
- void Video::prepare(double time) {
-       time += m_videoGap;
diff --git a/performous-libpng15.patch b/performous-libpng15.patch
deleted file mode 100644 (file)
index 6aa73db..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- Performous-0.6.1-Source/game/image.hh~     2010-10-31 17:05:43.000000000 +0100
-+++ Performous-0.6.1-Source/game/image.hh      2012-02-13 00:17:16.946256183 +0100
-@@ -8,6 +8,7 @@
- #include <librsvg/rsvg.h>
- #include <librsvg/rsvg-cairo.h>
- #include <png.h>
-+#include <zlib.h>
- #include <fstream>
- struct Image {
index ff9b592d2936ff9fdeb7d2783e381d6691449cd4..183786f0860ef648550d1cda1fd40e9ba229a4c2 100644 (file)
@@ -5,15 +5,13 @@
 Summary:       Performous - The All-in-One Music Game
 Summary(pl.UTF-8):     Performous - wiele gier muzycznych w jednej
 Name:          performous
-Version:       0.7.0
-Release:       5
+Version:       1.0
+Release:       0.1
 License:       GPL v2+
 Group:         Applications
-Source0:       http://downloads.sourceforge.net/performous/performous-%{version}.tar.bz2
-# Source0-md5: 60f3f72b51a630a4aa996484aedb9526
-Patch1:                %{name}-libpng15.patch
-Patch2:                cmake.patch
-Patch3:                %{name}-ffmpeg.patch
+Source0:       https://github.com/performous/performous/archive/1.0/%{name}-%{version}.tar.gz
+# Source0-md5: cbeec2f0c0114cc499746c1e33f56055
+Patch1:                bool_cast.patch
 URL:           http://performous.org/
 BuildRequires: ImageMagick-c++-devel
 BuildRequires: SDL-devel
@@ -72,20 +70,24 @@ Zestaw narzÄ™dzi do konwersji danych dla programu Performous.
 %prep
 %setup -q
 %patch1 -p1
-%patch2 -p1
-%patch3 -p1
+
 mkdir build
 
 %build
 cd build
 %cmake .. \
        -DCMAKE_BUILD_TYPE=%{!?debug:Release}%{?debug:Debug} \
-       -DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags}" \
+       -DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags} -std=gnu++11" \
        -DCMAKE_DEBUG_FLAGS_RELEASE="%{debugcflags}" \
        -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+       -DMagick_LIBRARY="$(echo %{_libdir}/libMagickCore-*.so)" \
+       -DMagick++_LIBRARY="$(echo %{_libdir}/libMagick++-*.so)" \
 %if "%{_lib}" == "lib64"
        -DLIB_SUFFIX=64
 %endif
+%if "%{_lib}" == "libx32"
+       -DLIB_SUFFIX=x32
+%endif
 
 %{__make}
 
@@ -107,12 +109,12 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -f %{name}.lang
 %defattr(644,root,root,755)
-%doc docs/{Authors,TODO,instruments}.txt
+%doc README.txt docs/{Authors,instruments}.txt
 %attr(755,root,root) %{_bindir}/performous
 %{_datadir}/games/%{name}
 %{_mandir}/man6/performous.6*
 %{_desktopdir}/performous.desktop
-%{_pixmapsdir}/performous.xpm
+%{_pixmapsdir}/performous.svg
 
 %files tools
 %defattr(644,root,root,755)
This page took 0.107758 seconds and 4 git commands to generate.