summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libraries/libclaw/lib.patch11
-rw-r--r--libraries/libclaw/libclaw.SlackBuild6
-rw-r--r--libraries/libclaw/patches/01_libclaw-1.7.4-libdir.patch36
-rw-r--r--libraries/libclaw/patches/02_libclaw-1.7.4-gcc62.patch89
-rw-r--r--libraries/libclaw/patches/03_libclaw-1.7.4-gcc7.patch36
5 files changed, 164 insertions, 14 deletions
diff --git a/libraries/libclaw/lib.patch b/libraries/libclaw/lib.patch
deleted file mode 100644
index 8ea8694e1a..0000000000
--- a/libraries/libclaw/lib.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- libclaw-1.7.4/CMakeLists.orig.txt 2015-05-14 17:54:05.443919651 +0300
-+++ libclaw-1.7.4/CMakeLists.txt 2015-05-14 17:54:22.925701098 +0300
-@@ -30,7 +30,7 @@
- set( CLAW_CODE_DIR claw/code/ )
- set( CLAW_INCLUDE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/include/" )
- set( CLAW_INSTALLDIR_SOURCE include/claw/ )
--set( CLAW_INSTALLDIR_LIB lib/ )
-+set( CLAW_INSTALLDIR_LIB lib64/ )
- set( CLAW_INSTALLDIR_DOC share/doc/libclaw${CLAW_VERSION_MAJOR}/ )
- set( CLAW_TRANSLATIONS_INSTALL_DIR "share/locale" )
- set( CLAW_EXECUTABLE_DIR bin/ )
diff --git a/libraries/libclaw/libclaw.SlackBuild b/libraries/libclaw/libclaw.SlackBuild
index 1cee1fa691..7b426f6ace 100644
--- a/libraries/libclaw/libclaw.SlackBuild
+++ b/libraries/libclaw/libclaw.SlackBuild
@@ -69,9 +69,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-if [ "$ARCH" = "x86_64" ]; then
- patch -p1 < $CWD/lib.patch
-fi
+# Apply some patches from fedora
+for i in $CWD/patches/*.patch ; do patch -p1 < $i ; done
mkdir -p build
cd build
@@ -79,6 +78,7 @@ cd build
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX=$LIBDIRSUFFIX \
-DCMAKE_BUILD_TYPE=Release ..
make
make install DESTDIR=$PKG
diff --git a/libraries/libclaw/patches/01_libclaw-1.7.4-libdir.patch b/libraries/libclaw/patches/01_libclaw-1.7.4-libdir.patch
new file mode 100644
index 0000000000..7e1172f22b
--- /dev/null
+++ b/libraries/libclaw/patches/01_libclaw-1.7.4-libdir.patch
@@ -0,0 +1,36 @@
+diff -up libclaw-1.7.4/claw-config.in.libdir libclaw-1.7.4/claw-config.in
+--- libclaw-1.7.4/claw-config.in.libdir 2013-07-03 13:34:38.000000000 -0600
++++ libclaw-1.7.4/claw-config.in 2016-12-29 16:58:52.140591117 -0700
+@@ -140,7 +140,7 @@ while test $# -gt 0; do
+ echo -I$CLAW_INCLUDE_DIRECTORY
+ ;;
+ --libs)
+- libdirs="-L${exec_prefix}/lib "
++ libdirs="-L${exec_prefix}/@CLAW_INSTALLDIR_LIB@ "
+
+ echo -n "$libdirs"
+ echo $(print_libraries)
+diff -up libclaw-1.7.4/CMakeLists.txt.libdir libclaw-1.7.4/CMakeLists.txt
+--- libclaw-1.7.4/CMakeLists.txt.libdir 2016-12-29 16:50:24.124507641 -0700
++++ libclaw-1.7.4/CMakeLists.txt 2016-12-29 16:50:24.137508590 -0700
+@@ -30,7 +30,7 @@ endif(SVN_ENTRIES)
+ set( CLAW_CODE_DIR claw/code/ )
+ set( CLAW_INCLUDE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/include/" )
+ set( CLAW_INSTALLDIR_SOURCE include/claw/ )
+-set( CLAW_INSTALLDIR_LIB lib/ )
++set( CLAW_INSTALLDIR_LIB "lib${LIB_SUFFIX}/" )
+ set( CLAW_INSTALLDIR_DOC share/doc/libclaw${CLAW_VERSION_MAJOR}/ )
+ set( CLAW_TRANSLATIONS_INSTALL_DIR "share/locale" )
+ set( CLAW_EXECUTABLE_DIR bin/ )
+diff -up libclaw-1.7.4/cmake-module/CMakeLists.txt.libdir libclaw-1.7.4/cmake-module/CMakeLists.txt
+--- libclaw-1.7.4/cmake-module/CMakeLists.txt.libdir 2013-07-03 13:34:38.000000000 -0600
++++ libclaw-1.7.4/cmake-module/CMakeLists.txt 2016-12-29 16:50:24.148509393 -0700
+@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.6)
+ project(claw:cmake-modules)
+
+ if( NOT CLAW_CMAKE_MODULES_INSTALL_PATH )
+- set( CLAW_CMAKE_MODULES_INSTALL_PATH "share/cmake/libclaw" )
++ set( CLAW_CMAKE_MODULES_INSTALL_PATH "lib${LIB_SUFFIX}/cmake/libclaw" )
+ endif( NOT CLAW_CMAKE_MODULES_INSTALL_PATH )
+
+ set( CLAW_CMAKE_MODULES
diff --git a/libraries/libclaw/patches/02_libclaw-1.7.4-gcc62.patch b/libraries/libclaw/patches/02_libclaw-1.7.4-gcc62.patch
new file mode 100644
index 0000000000..e1da77043d
--- /dev/null
+++ b/libraries/libclaw/patches/02_libclaw-1.7.4-gcc62.patch
@@ -0,0 +1,89 @@
+From a13a75306bba55538ba7d5188ffc1a7eb34f173b Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Mon, 28 Nov 2016 10:21:33 +0100
+Subject: [PATCH 1/2] Deal with correct getline() type
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ libclaw-1.7.4/claw/code/configuration_file.cpp:
+ In member function ‘bool claw::configuration_file::get_line(std::istream&,
+ const claw::configuration_file::syntax_description&, std::__cxx11::string&) const’:
+ libclaw-1.7.4/claw/code/configuration_file.cpp:444:39: error: cannot convert
+ ‘std::basic_istream<char>’ to ‘bool’ in initialization
+ bool result = text::getline(is, line);
+---
+ claw/code/configuration_file.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/claw/code/configuration_file.cpp b/claw/code/configuration_file.cpp
+index e7bb26a..3839cff 100644
+--- a/claw/code/configuration_file.cpp
++++ b/claw/code/configuration_file.cpp
+@@ -441,7 +441,7 @@ claw::configuration_file::file_end() const
+ bool claw::configuration_file::get_line
+ ( std::istream& is, const syntax_description& syntax, std::string& line ) const
+ {
+- bool result = text::getline(is, line);
++ bool result = text::getline(is, line).good();
+
+ if ( result )
+ {
+--
+2.9.3
+
+From cadc97d9626307d2f1fcf113099c9c4ca0f7cf6b Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Mon, 28 Nov 2016 10:09:33 +0100
+Subject: [PATCH 2/2] Do something random to make C++ happy
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ In file included from /usr/include/boost/bind.hpp:22:0, libclaw-1.7.4/claw/code/tween/single_tweener.cpp:32:
+ /usr/include/boost/bind/bind.hpp: In instantiation of ‘void boost::_bi::list2<A1, A2>::operator()(boost::_bi::type<void>, F&, A&, int) [with F = void (*)(double&, double&); A = boost::_bi::rrlist1<double>; A1 = boost::reference_wrapper<double>; A2 = boost::arg<1>]’:
+ /usr/include/boost/bind/bind.hpp:1234:50: required from ‘boost::_bi::bind_t<R, F, L>::result_type boost::_bi::bind_t<R, F, L>::operator()(A1&&) [with A1 = double; R = void; F = void (*)(double&, double&); L = boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> >; boost::_bi::bind_t<R, F, L>::result_type = void]’
+ /usr/include/boost/function/function_template.hpp:159:11: required from ‘static void boost::detail::function::void_function_obj_invoker1<FunctionObj, R, T0>::invoke(boost::detail::function::function_buffer&, T0) [with FunctionObj = boost::_bi::bind_t<void, void (*)(double&, double&), boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> > >; R = void; T0 = double]’
+ /usr/include/boost/function/function_template.hpp:937:38: required from ‘void boost::function1<R, T1>::assign_to(Functor) [with Functor = boost::_bi::bind_t<void, void (*)(double&, double&), boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> > >; R = void; T0 = double]’
+ /usr/include/boost/function/function_template.hpp:727:7: required from ‘boost::function1<R, T1>::function1(Functor, typename boost::enable_if_c<(! boost::is_integral<Functor>::value), int>::type) [with Functor = boost::_bi::bind_t<void, void (*)(double&, double&), boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> > >; R = void; T0 = double; typename boost::enable_if_c<(! boost::is_integral<Functor>::value), int>::type = int]’
+ /usr/include/boost/function/function_template.hpp:1073:16: required from ‘boost::function<R(T0)>::function(Functor, typename boost::enable_if_c<(! boost::is_integral<Functor>::value), int>::type) [with Functor = boost::_bi::bind_t<void, void (*)(double&, double&), boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> > >; R = void; T0 = double; typename boost::enable_if_c<(! boost::is_integral<Functor>::value), int>::type = int]’
+ /usr/include/boost/function/function_template.hpp:1126:5: required from ‘typename boost::enable_if_c<(! boost::is_integral<Functor>::value), boost::function<R(T0)>&>::type boost::function<R(T0)>::operator=(Functor) [with Functor = boost::_bi::bind_t<void, void (*)(double&, double&), boost::_bi::list2<boost::reference_wrapper<double>, boost::arg<1> > >; R = void; T0 = double; typename boost::enable_if_c<(! boost::is_integral<Functor>::value), boost::function<R(T0)>&>::type = boost::function<void(double)>&]’
+ libclaw-1.7.4/claw/code/tween/single_tweener.cpp:125:62: required from here
+ /usr/include/boost/bind/bind.hpp:319:35: error: invalid initialization of non-const reference of type ‘double&’ from an rvalue of type ‘double’
+ unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CMakeFiles/claw_tween-static.dir/build.make:89: recipe for target 'CMakeFiles/claw_tween-static.dir/claw/code/tween/single_tweener.cpp.o' failed
+---
+ claw/code/tween/single_tweener.cpp | 2 +-
+ claw/tween/single_tweener.hpp | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/claw/code/tween/single_tweener.cpp b/claw/code/tween/single_tweener.cpp
+index 2a3c7fe..d173eec 100644
+--- a/claw/code/tween/single_tweener.cpp
++++ b/claw/code/tween/single_tweener.cpp
+@@ -241,7 +241,7 @@ double claw::tween::single_tweener::do_update( double dt )
+ const double result = dt - t;
+ m_date += t;
+
+- const double val( get_value() );
++ double val( get_value() );
+
+ m_callback(val);
+
+diff --git a/claw/tween/single_tweener.hpp b/claw/tween/single_tweener.hpp
+index 9f05671..f730cfa 100644
+--- a/claw/tween/single_tweener.hpp
++++ b/claw/tween/single_tweener.hpp
+@@ -51,7 +51,7 @@ namespace claw
+ public:
+ /** \brief The type of the function called when the single_tweener is
+ updated. */
+- typedef boost::function<void (double)> update_function;
++ typedef boost::function<void (double&)> update_function;
+
+ /** \brief The type of the function used to compute the new value. */
+ typedef boost::function<double (double)> easing_function;
+--
+2.9.3
+
diff --git a/libraries/libclaw/patches/03_libclaw-1.7.4-gcc7.patch b/libraries/libclaw/patches/03_libclaw-1.7.4-gcc7.patch
new file mode 100644
index 0000000000..dd89e3e256
--- /dev/null
+++ b/libraries/libclaw/patches/03_libclaw-1.7.4-gcc7.patch
@@ -0,0 +1,36 @@
+Patch taken from upstream and edited for use in Fedora:
+
+commit 6033275773313fe052f6e222321a8ec87587fbe6
+Author: Julien Jorge <julien.jorge@iscool-e.com>
+Date: Thu Apr 24 20:39:18 2014 +0200
+
+ Fix various errors pointed by clang on iOS.
+
+diff --git a/claw/impl/box_2d.tpp b/claw/impl/box_2d.tpp
+index e4b6936..71f3883 100644
+--- a/claw/impl/box_2d.tpp
++++ b/claw/impl/box_2d.tpp
+@@ -136,8 +136,8 @@ template<typename U>
+ claw::math::box_2d<U> claw::math::box_2d<T>::cast_value_type_to() const
+ {
+ return claw::math::box_2d<U>
+- ( first_point.cast_value_type_to<U>(),
+- second_point.cast_value_type_to<U>() );
++ ( first_point.template cast_value_type_to<U>(),
++ second_point.template cast_value_type_to<U>() );
+ } // box_2d::cast_value_type_to()
+
+ /*----------------------------------------------------------------------------*/
+diff --git a/claw/impl/rectangle.tpp b/claw/impl/rectangle.tpp
+index 9e6f14a..3c3c8f3 100644
+--- a/claw/impl/rectangle.tpp
++++ b/claw/impl/rectangle.tpp
+@@ -140,7 +140,7 @@ template<typename U>
+ claw::math::rectangle<U> claw::math::rectangle<T>::cast_value_type_to() const
+ {
+ return claw::math::rectangle<U>
+- ( position.cast_value_type_to<U>(), (U)width, (U)height );
++ ( position.template cast_value_type_to<U>(), (U)width, (U)height );
+ } // rectangle::cast_value_type_to()
+
+ /*----------------------------------------------------------------------------*/