diff options
Diffstat (limited to 'community-testing/performous')
-rw-r--r-- | community-testing/performous/PKGBUILD | 48 | ||||
-rw-r--r-- | community-testing/performous/boost-filesystem-v3.patch | 135 |
2 files changed, 183 insertions, 0 deletions
diff --git a/community-testing/performous/PKGBUILD b/community-testing/performous/PKGBUILD new file mode 100644 index 000000000..e73a71da4 --- /dev/null +++ b/community-testing/performous/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 59761 2011-11-30 06:35:33Z ibiru $ +# Maintainer : Laurent Carlier <lordheavym@gmail.com> +# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org> + +pkgname=performous +pkgver=0.6.1 +pkgrel=11 +pkgdesc='A free game like "Singstar", "Rockband" or "Stepmania"' +arch=('i686' 'x86_64') +url="http://performous.org/" +license=('GPL') +depends=('boost-libs>=1.48' 'imagemagick' 'glew>=1.7.0' 'libxml++' 'portaudio' 'portmidi' 'opencv' 'librsvg') +#depends=('boost-libs>=1.48' 'sdl' 'jack' 'imagemagick' 'ffmpeg' 'glew>=1.7.0' 'libxml++' 'portaudio' 'portmidi' \ +# 'opencv' 'librsvg' 'libjpeg' 'libpng' 'cairo') +makedepends=('cmake' 'pkgconfig' 'help2man' 'boost>=1.48') +optdepends=('performous-freesongs: free songs for performous') +source=(http://sourceforge.net/projects/$pkgname/files/$pkgname/$pkgver/Performous-$pkgver-Source.tar.bz2 + boost-filesystem-v3.patch + ffmpeg-0.8.patch::"http://performous.git.sourceforge.net/git/gitweb.cgi?p=performous/performous;a=patch;h=18449f6e56451f68b980c8359a4d1dc06f82db1a") +md5sums=('451a759de77984b5a699e91107fe52e2' + '42a8c825d80b0de16bd5752d2a80e585' + 'ff0ffa681dfaa09c4f42133a65309bf0') + +build() { + cd ${srcdir}/Performous-${pkgver}-Source + + # fix to built against boost 1.46 and later, upstream (git) now support v3 + patch -Np1 -i ../boost-filesystem-v3.patch + # fix with ffmpeg-0.8 + patch -Np1 -i ../ffmpeg-0.8.patch + + mkdir -p build + cd build + + # fix config loading with libxml++ + export LDFLAGS=${LDFLAGS/-Wl,--as-needed/} + + cmake -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr .. + + make +} + +package() { + cd ${srcdir}/Performous-${pkgver}-Source/build + + make DESTDIR="$pkgdir" install +} diff --git a/community-testing/performous/boost-filesystem-v3.patch b/community-testing/performous/boost-filesystem-v3.patch new file mode 100644 index 000000000..22dd07213 --- /dev/null +++ b/community-testing/performous/boost-filesystem-v3.patch @@ -0,0 +1,135 @@ +diff --git a/game/backgrounds.cc b/game/backgrounds.cc +index 7fd3cd0..cdedefb 100644 +--- a/game/backgrounds.cc ++++ b/game/backgrounds.cc +@@ -55,8 +55,13 @@ void Backgrounds::reload_internal(fs::path const& parent) { + for (fs::directory_iterator dirIt(parent), dirEnd; m_loading && dirIt != dirEnd; ++dirIt) { + fs::path p = dirIt->path(); + if (fs::is_directory(p)) { reload_internal(p); continue; } ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string name = p.leaf(); // File basename + std::string path = p.directory_string(); // Path without filename ++#else ++ std::string name = p.filename().string(); // File basename ++ std::string path = p.string(); // Path without filename ++#endif + path.erase(path.size() - name.size()); + if (!regex_match(name.c_str(), match, expression)) continue; + { +diff --git a/game/cache.cc b/game/cache.cc +index 69974e2..0f1edd0 100644 +--- a/game/cache.cc ++++ b/game/cache.cc +@@ -9,7 +9,11 @@ namespace cache { + fs::path constructSVGCacheFileName(fs::path const& svgfilename, double factor){ + fs::path cache_filename; + std::string const lod = (boost::format("%.2f") % factor).str(); ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string const cache_basename = svgfilename.filename() + ".cache_" + lod + ".png"; ++#else ++ std::string const cache_basename = svgfilename.filename().string() + ".cache_" + lod + ".png"; ++#endif + + if (isThemeResource(svgfilename)) { + std::string const theme_name = (config["game/theme"].s().empty() ? "default" : config["game/theme"].s()); +diff --git a/game/filemagic.hh b/game/filemagic.hh +index bf87ded..29e81fe 100644 +--- a/game/filemagic.hh ++++ b/game/filemagic.hh +@@ -71,7 +71,11 @@ namespace filemagic { + // For now, just check the extension an assume it's not lying. + + // Get file extension in lower case ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string ext = filename.extension(); ++#else ++ std::string ext = filename.extension().string(); ++#endif + // somehow this does not convert the extension to lower case: + //std::for_each(ext.begin(), ext.end(), static_cast<int(*)(int)>(std::tolower)); + std::transform(ext.begin(), ext.end(), ext.begin(), ::tolower ); +diff --git a/game/fs.cc b/game/fs.cc +index e34a784..767a7ab 100644 +--- a/game/fs.cc ++++ b/game/fs.cc +@@ -128,7 +128,11 @@ std::string getThemePath(std::string const& filename) { + + bool isThemeResource(fs::path filename){ + try { ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string themefile = getThemePath(filename.filename()); ++#else ++ std::string themefile = getThemePath(filename.filename().string()); ++#endif + return themefile == filename; + } catch (...) { return false; } + } +diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc +index 38e163b..db15d79 100644 +--- a/game/songparser-ini.cc ++++ b/game/songparser-ini.cc +@@ -104,7 +104,11 @@ void SongParser::iniParseHeader() { + // Search the dir for the music files + for (boost::filesystem::directory_iterator dirIt(s.path), dirEnd; dirIt != dirEnd; ++dirIt) { + boost::filesystem::path p = dirIt->path(); ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string name = p.leaf(); // File basename (notes.txt) ++#else ++ std::string name = p.filename().string(); // File basename (notes.txt) ++#endif + if (regex_match(name.c_str(), match, midifile)) { + s.midifilename = name; + } else if (regex_match(name.c_str(), match, audiofile_background)) { +diff --git a/game/songparser.cc b/game/songparser.cc +index 2b7b9b4..ac9f3f6 100644 +--- a/game/songparser.cc ++++ b/game/songparser.cc +@@ -100,7 +100,11 @@ SongParser::SongParser(Song& s): + + for (boost::filesystem::directory_iterator dirIt(s.path), dirEnd; dirIt != dirEnd; ++dirIt) { + boost::filesystem::path p = dirIt->path(); ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string name = p.leaf(); // File basename ++#else ++ std::string name = p.filename().string(); // File basename ++#endif + if (m_song.cover.empty() && regex_match(name.c_str(), match, coverfile)) { + m_song.cover = name; + } else if (m_song.background.empty() && regex_match(name.c_str(), match, backgroundfile)) { +diff --git a/game/songs.cc b/game/songs.cc +index 62ab26d..afab383 100644 +--- a/game/songs.cc ++++ b/game/songs.cc +@@ -67,8 +67,13 @@ void Songs::reload_internal(fs::path const& parent) { + for (fs::directory_iterator dirIt(parent), dirEnd; m_loading && dirIt != dirEnd; ++dirIt) { + fs::path p = dirIt->path(); + if (fs::is_directory(p)) { reload_internal(p); continue; } ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string name = p.leaf(); // File basename (notes.txt) + std::string path = p.directory_string(); // Path without filename ++#else ++ std::string name = p.filename().string(); // File basename (notes.txt) ++ std::string path = p.string(); // Path without filename ++#endif + path.erase(path.size() - name.size()); + if (!regex_match(name.c_str(), match, expression)) continue; + try { +diff --git a/tools/ss_helpers.hh b/tools/ss_helpers.hh +index 58e19dc..8895d94 100644 +--- a/tools/ss_helpers.hh ++++ b/tools/ss_helpers.hh +@@ -10,7 +10,11 @@ extern "C" void xmlLogger(void* logger, char const* msg, ...) { if (logger) *(st + void enableXMLLogger(std::ostream& os = std::cerr) { xmlSetGenericErrorFunc(&os, xmlLogger); } + void disableXMLLogger() { xmlSetGenericErrorFunc(NULL, xmlLogger); } + ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string filename(boost::filesystem::path const& p) { return *--p.end(); } ++#else ++std::string filename(boost::filesystem::path const& p) { return p.filename().string(); } ++#endif + + /** Fix Singstar's b0rked XML **/ + std::string xmlFix(std::vector<char> const& data) { +-- +1.7.4.1 + |