From a4df6f2256c2f2846c6082c07c6c14a611b6eb81 Mon Sep 17 00:00:00 2001 From: Jacek Konieczny Date: Sat, 5 Dec 2015 15:39:47 +0100 Subject: [PATCH] Version: 1.0 builds, but crashes on startup in XQueryExtension() in glewInit() --- bool_cast.patch | 11 ++ cmake.patch | 66 ------- performous-ffmpeg.patch | 355 -------------------------------------- performous-libpng15.patch | 10 -- performous.spec | 26 +-- 5 files changed, 25 insertions(+), 443 deletions(-) create mode 100644 bool_cast.patch delete mode 100644 cmake.patch delete mode 100644 performous-ffmpeg.patch delete mode 100644 performous-libpng15.patch diff --git a/bool_cast.patch b/bool_cast.patch new file mode 100644 index 0000000..c9dad85 --- /dev/null +++ b/bool_cast.patch @@ -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(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 index c562e80..0000000 --- a/cmake.patch +++ /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 index f4955ff..0000000 --- a/performous-ffmpeg.patch +++ /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 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 - #include - #include - -@@ -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 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 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(data)[i]) : -+ reinterpret_cast(data)[i] -+ ); -+ } -+ } -+ data = &input[0]; -+ } - // Resample to output sample rate, then push to audio queue and increment timecode - std::vector 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(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 --#include -+#include - #include - #include - #include -@@ -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 m_queue; -+ boost::ptr_deque 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 - --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 index 6aa73db..0000000 --- a/performous-libpng15.patch +++ /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 - #include - #include -+#include - #include - - struct Image { diff --git a/performous.spec b/performous.spec index ff9b592..183786f 100644 --- a/performous.spec +++ b/performous.spec @@ -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) -- 2.44.0