Description of problem: Compiling the apache mod_file failed by error in source code of mapnik-devel file /usr/include/mapnik/mapbox/variant.hpp Version-Release number of selected component (if applicable): - mapnik-devel 3.0.12-1.fc25 - mod_tile from github How reproducible: Download and compile the apache mod_tile from github. Steps to Reproduce: 1. Basics: f25 installation and all dependencies are installed 2. wget https://github.com/openstreetmap/mod_tile 3. cd mod_tile 4. ./autogen.sh 5. ./configure 6. make Actual results: Output: ... /usr/include/mapnik/mapbox/variant.hpp:570:15: Fehler: kein Typ namens »type« in »struct std::enable_if<false, void>« typename Enable = typename std::enable_if<Traits::is_valid>::type> ... Makefile:1135: die Regel für Ziel „src/renderd-gen_tile.o“ scheiterte make[1]: *** [src/renderd-gen_tile.o] Fehler 1 make[1]: Verzeichnis „/home/gisuser/src/mod_tile“ wird verlassen Makefile:1299: die Regel für Ziel „all-recursive“ scheiterte make: *** [all-recursive] Fehler 1 Expected results: compiling without error Additional info: the same procedure works without error with a f24 installation
Well first of I don't speak German so you'll need to tell me what that error is before I can help... Secondly, why do you think this is an issue with mapnik rather than with mod_tile? Fedora 25 has mapnik 3.0.12 while 24 only has 3.0.10 so maybe mod_tile needs fixing for the newer mapnik?
Here's the english version of the error: g++ -DHAVE_CONFIG_H -I. -I./includes -pthread -DSYSTEM_LIBINIPARSER=0 -I/usr/include -I/usr/include/mapnik/agg -I/usr/include/mapnik -I/usr/include -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/gdal -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/libdrm -DMAPNIK_MEMORY_MAPPED_FILE -DMAPNIK_HAS_DLCFN -DBIGINT -DBOOST_REGEX_HAS_ICU -DHAVE_JPEG -DMAPNIK_USE_PROJ4 -DHAVE_PNG -DHAVE_WEBP -DHAVE_TIFF -DLINUX -DMAPNIK_THREADSAFE -DBOOST_SPIRIT_NO_PREDEFINED_TERMINALS=1 -DBOOST_PHOENIX_NO_PREDEFINED_TERMINALS=1 -DBOOST_SPIRIT_USE_PHOENIX_V3=1 -DNDEBUG -DHAVE_CAIRO -DGRID_RENDERER -DHAVE_LIBXML2 -std=c++11 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -fvisibility=hidden -fvisibility-inlines-hidden -Wall -pthread -ftemplate-depth-300 -Wsign-compare -Wshadow -O2 -g -O2 -MT src/renderd-gen_tile.o -MD -MP -MF src/.deps/renderd-gen_tile.Tpo -c -o src/renderd-gen_tile.o `test -f 'src/gen_tile.cpp' || echo './'`src/gen_tile.cpp In file included from /usr/include/mapnik/map.hpp:32:0, from src/gen_tile.cpp:2: /usr/include/mapnik/params.hpp: In instantiation of ‘mapnik::value_holder::value_holder(T&&) [with T = char*&]’: src/gen_tile.cpp:196:34: required from here /usr/include/mapnik/params.hpp:62:49: error: no matching function for call to ‘mapnik::util::variant<mapnik::value_null, long int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>::variant(char*&)’ : value_holder_base(std::forward<T>(obj)) ^ In file included from /usr/include/mapnik/params.hpp:29:0, from /usr/include/mapnik/map.hpp:32, from src/gen_tile.cpp:2: /usr/include/mapnik/util/variant.hpp:42:44: note: candidate: mapnik::util::variant<mapnik::value_null, long int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>::variant(mapbox::util::no_init) using mapbox::util::variant<Types...>::variant; ^~~~~~~ /usr/include/mapnik/util/variant.hpp:42:44: note: no known conversion for argument 1 from ‘char*’ to ‘mapbox::util::no_init’ /usr/include/mapnik/util/variant.hpp:42:44: note: candidate: template<class T, class Traits, class Enable> mapnik::util::variant<mapnik::value_null, long int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>::variant(T&&) /usr/include/mapnik/util/variant.hpp:42:44: note: template argument deduction/substitution failed: In file included from /usr/include/mapnik/util/variant.hpp:27:0, from /usr/include/mapnik/params.hpp:29, from /usr/include/mapnik/map.hpp:32, from src/gen_tile.cpp:2: /usr/include/mapnik/mapbox/variant.hpp:570:15: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’ typename Enable = typename std::enable_if<Traits::is_valid>::type> ^~~~~~~~ In file included from /usr/include/mapnik/params.hpp:29:0, from /usr/include/mapnik/map.hpp:32, from src/gen_tile.cpp:2: /usr/include/mapnik/util/variant.hpp:35:7: note: candidate: mapnik::util::variant<mapnik::value_null, long int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>::variant() class variant : public mapbox::util::variant<Types...> ^~~~~~~ /usr/include/mapnik/util/variant.hpp:35:7: note: candidate expects 0 arguments, 1 provided /usr/include/mapnik/util/variant.hpp:35:7: note: candidate: mapnik::util::variant<mapnik::value_null, long int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>::variant(const mapnik::util::variant<mapnik::value_null, long int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>&) /usr/include/mapnik/util/variant.hpp:35:7: note: no known conversion for argument 1 from ‘char*’ to ‘const mapnik::util::variant<mapnik::value_null, long int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>&’ /usr/include/mapnik/util/variant.hpp:35:7: note: candidate: mapnik::util::variant<mapnik::value_null, long int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>::variant(mapnik::util::variant<mapnik::value_null, long int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>&&) /usr/include/mapnik/util/variant.hpp:35:7: note: no known conversion for argument 1 from ‘char*’ to ‘mapnik::util::variant<mapnik::value_null, long int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>&&’ I have no idea what it all means though.
It was a bug in mod_tile. I've merged https://github.com/openstreetmap/mod_tile/pull/144 to fix it.
OK, I think the error is shown in the output. But here is the english version: ... /usr/local/include/mapnik/mapbox/variant.hpp:570:15: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’ typename Enable = typename std::enable_ifTraits::is_valid::type> ^ ... This is the error message during compiling the mod_tile. You are right: f24 uses mapnik 3.0.10 and f25 3.0.12. I change the files in /usr/local/include/mapnik/mapbox/variant/ from f24 with the files in /usr/local/include/mapnik/mapbox/ from f25. That means that I compile with older files. Now, It works without error. That means: - the error is in the file from /usr/local/include/mapnik/mapbox/* in mapnik-devel 3.0.12 - I will close this bug.