jumpinjackie / mapguide-fdo-docker-build Goto Github PK
View Code? Open in Web Editor NEWA docker-driven build system for MapGuide and FDO
A docker-driven build system for MapGuide and FDO
Currently, build_thin.sh
autoremoves any running MapGuide/FDO thin build containers upon completion.
To speed up the dev inner loop, especially if a MapGuide/FDO build ended in an error, it should support the ability to preserve such containers so that we can docker exec
into these containers ourselves to restart a failed build (after fixing whatever source errors) or to manually run mgserver
within.
https://trac.osgeo.org/mapguide/ticket/2828 documented the changes required needed for Java/Tomcat to work on a MapGuide Open Source 4.0 preview 2 install on Windows.
Our linux installer script needs to apply the same configuration changes as well.
We need a smoke test image that does the following automatically:
dep_check.sh
against all .so
libraries (#32)It is currently registered by the installer script as OSGeo.KingOracle
instead of King.Oracle
. Windows registered this provider as King.Oracle
so the Linux installer should match.
/sdk
/sdk
directory
Our CentOS 6 FDO SDK is currently 50MB undoubtedly due to it containing binaries that have not been stripped of unused symbols.
As FDO uses CPack for tarball production, we should look at activating CPACK_STRIP_FILES
For MapGuide, binaries should be manually stripped before tarball production
Originally I didn't want to make a series of dpkg packages like we currently do as I wanted a single monolithic executable installer, but on Ubuntu this would mean that I would have to manually express the required apt-get dependencies (by best guess).
Making dpkg packages means this step is done for us for free (via dpkg-shlibdeps
)
To maintain the original vision, we'll pack the dpkg files into the final self-extracting executable instead of the raw tarball output.
This build fails because it can't find certain libpng types. If system libpng doesn't provide these types.
A sample of the build error:
[976/1140] Building CXX object Common/Renderers/CMakeFiles/MgRenderers-3.3.0.dir/AGGImageIO.cpp.o
FAILED: Common/Renderers/CMakeFiles/MgRenderers-3.3.0.dir/AGGImageIO.cpp.o
/usr/bin/ccache /usr/bin/c++ -DCPPUNIT_MODERN_API -DDWFTK_BUILD_EXPAT -DFULLPROTO -DLINUX -DLINUX_IA32 -DMgRenderers_3_3_0_EXPORTS -DPIC -D__USE_GNU -m64 -O3 -DNDEBUG -fPIC -I/usr/local/src/mapguide/build_oem/gd/freetype/include -I/usr/local/fdo-4.2.0/include -I/usr/local/fdo-4.2.0/include/ExpressionEngine -I/usr/local/src/mapguide/MgDev/Oem/DWFTK/develop/global/src -I/usr/local/src/mapguide/MgDev/Oem/DWFTK/develop/global/src/dwf -I/usr/local/src/mapguide/MgDev/Oem/agg-2.4/include -I/usr/local/src/mapguide/MgDev/Oem/agg-2.4/font_freetype -I/usr/local/src/mapguide/MgDev/Common/Renderers -I/usr/local/src/mapguide/MgDev/Common/Renderers/../MdfModel -I/usr/local/src/mapguide/MgDev/Common/Renderers/../Stylization -fPIC -pthread -Wno-write-strings -Wno-deprecated -MMD -MT Common/Renderers/CMakeFiles/MgRenderers-3.3.0.dir/AGGImageIO.cpp.o -MF "Common/Renderers/CMakeFiles/MgRenderers-3.3.0.dir/AGGImageIO.cpp.o.d" -o Common/Renderers/CMakeFiles/MgRenderers-3.3.0.dir/AGGImageIO.cpp.o -c /usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp
In file included from /usr/local/src/mapguide/MgDev/Common/Renderers/AGGRenderer.h:33:0,
from /usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:22:
/usr/local/src/mapguide/MgDev/Common/Renderers/../Stylization/BIDIConverter.h:28:93: note: #pragma message: !!WARNING!! Attempting to use BIDIConverter.h in a non-UNICODE environment
#pragma message("!!WARNING!! Attempting to use BIDIConverter.h in a non-UNICODE environment")
^
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp: In function 'void png_write_cb(png_structp, png_bytep, png_size_t)':
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:58:53: error: invalid use of incomplete type 'png_struct {aka struct png_struct_def}'
png_write_context* cxt = (png_write_context*)png->io_ptr;
^
In file included from /usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:23:0:
/usr/include/png.h:857:16: error: forward declaration of 'png_struct {aka struct png_struct_def}'
typedef struct png_struct_def png_struct;
^
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp: In function 'void png_read_cb(png_structp, png_bytep, png_size_t)':
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:78:53: error: invalid use of incomplete type 'png_struct {aka struct png_struct_def}'
png_write_context* cxt = (png_write_context*)png->io_ptr;
^
In file included from /usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:23:0:
/usr/include/png.h:857:16: error: forward declaration of 'png_struct {aka struct png_struct_def}'
typedef struct png_struct_def png_struct;
^
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp: In function 'int write_png(png_write_context*, unsigned int*, int, int, double, bool)':
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:107:43: error: 'png_infopp_NULL' was not declared in this scope
png_destroy_write_struct(&png_ptr, png_infopp_NULL);
^
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp: In function 'int read_png(png_write_context*, int&, int&, unsigned char*&)':
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:395:41: error: 'png_infopp_NULL' was not declared in this scope
png_destroy_read_struct(&png_ptr, png_infopp_NULL, png_infopp_NULL);
^
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:407:52: error: 'png_infopp_NULL' was not declared in this scope
png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
^
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:441:25: error: 'int_p_NULL' was not declared in this scope
&interlace_type, int_p_NULL, int_p_NULL);
^
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:473:38: error: 'png_set_gray_1_2_4_to_8' was not declared in this scope
png_set_gray_1_2_4_to_8(png_ptr);
^
/usr/local/src/mapguide/MgDev/Common/Renderers/AGGImageIO.cpp:663:49: error: 'png_infopp_NULL' was not declared in this scope
png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
MgDevHttpServer
as a toggle-able option
MgDevHttpServer
beforehand (https://trac.osgeo.org/mapguide/ticket/2824)OgcWfsService.config.awd
and OgcWmsService.config.awd
are updated with the correct port numbers.mgserver loadpackage
on these package files before starting the server daemon)This is currently owned by root. It needs to be chowned by daemon:daemon
otherwise file uploads through the mapagent will fail as it uses this dir for writing uploaded files content to.
It tries to enter server/bin
relatively. We need to make sure this is made absolute before tarball packaging.
While git mirrors or migration to git is the desired long term solution, the current short term solution of git mirrors of svn repos is not suitable for us, especially for CS-Map where I've found out that git-lfs is a quota-limited service, making having a git clone of CS-Map impractical, which has undesirable side-effects on our MapGuide git clone that submodules it.
So in the meantime, to keep this project going along, add shells scripts to svn checkout/update MapGuide/FDO/Fusion/CS-Map from their canonical SVN repositories.
Since we're using CMake and ccache, we don't necessarily have to add sources to the develop image first as all builds are going to be out-of-source-tree (so nothing in the source dir is tainted) and as long as we make sure to volume mount the source and ccache directories we should get the same build experience as we currently do.
Currently the docker image build works by copying the selected Dockerfile from the selected distro up to the root, causing the whole repo (and its submodules) to be captured in the docker build context.
When building FDO, we don't care about capturing the MapGuide sources as part of its build context, and similarly vice versa.
We can leverage .dockerignore files to specify this. This should help reduce build startup time due to capturing the build context.
The poll results are in: https://gist.github.com/jumpinjackie/df8ccb87a37eb603e35547316d8f626c
Based on these results, and assuming PSC approval. We will target JDK 8 / Tomcat 9 where possible
The following images need to update their dependencies:
java-1.8.0-openjdk-devel
java-1.8.0-openjdk-devel
CentOS 6 is now EOL (as of November 2020). As a result, yum update
no longer works and breaks all CentOS 6 image builds.
generic
image to be based on CentOS 7 imageFDO SDK tarball copied is hardcoded to "Ubuntu14". Either:
a) lowercase the distro name
b) Write out the scripts as heredoc from within env_setup.sh
c) uppercase the docker folders
Also print out the FDO SDK tarball name to verify we copied the right tarball in
This resets all FS permissions to the current user, breaking httpd's ability to serve content as a result.
To fix: we need to run makeself
with the --nochown
and --keep-umask
flags
Same reason as removing CentOS 6 build/image
There are no references to tomcat in any of our build scripts or dockerfiles
The old vagrant-based linux build system had a "smoke test" image that did the basic sanity check of:
We need equivalent docker images that do the same thing (after the main build)
Currently all mapguide/fdo tarballs will always built and named 4.0.0.0 and 4.2.0.0 respectively.
These version number components need to be parameterized.
The centos6
build of FDO is for all intents and purposes, the "generic" linux build in that we do not build FDO and link against any system libraries.
It turns out zlib-devel
is a current requirement for building FDO and the resulting libOWS.so
has a reference to libz.so
.
Since we've already landed the infrastructure to build additional libs provided the necessary tarballs (eg. MariaDB/PostgreSQL), we should add the tarball for zlib and make sure libOWS.so
links against our custom zlib
The HAVE_TOMCAT
variable is never set to 1
This should install the deps required before extracting the MapGuide/FDO tarballs
To ensure the self-containedness of the centos6
build, we should build libxslt ourselves as static from a source tarball and make sure that the PHP build finds this.
The system provided mysql/postgresql client packages are too old for us (even if our providers build/link against them without issues) on the versions of CentOS we care to target. Thus we should build FDO on centos against custom MySQL/PostgreSQL versions:
Automate the generation of checksums and file sizes to simplify the release notes generation process.
Extends the base distro image to install the built FDO and MapGuide tarballs
Now that this build machinery is well oiled, we should also put out debug, ASAN-instrumented builds of MapGuide/FDO
Same motivation as generating dpkg packages: automatic dependency installation
MapGuide build is failing on xqilla despite the submodule having this fix already incorporated???
libtool: compile: ccache g++ -DHAVE_CONFIG_H -I. -I.. -I./src/config -I../include/ -I/usr/include -I../src/lexer/ -D_GNU_SOURCE -D_REENTRANT -O2 -ftemplate-depth-50 -MT XQCopy.lo -MD -MP -MF .deps/XQCopy.Tpo -c ../src/ast/XQCopy.cpp -fPIC -DPIC -o .libs/XQCopy.o
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc: In instantiation of 'std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = ASTNode*; _Alloc = XQillaAllocator<ASTNode*>]':
../include/xqilla/ast/XQCopy.hpp:47:70: required from here
/usr/include/c++/7/bits/vector.tcc:188:37: error: no match for 'operator!=' (operand types are 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' and 'const _Tp_alloc_type {aka const XQillaAllocator<ASTNode*>}')
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/iosfwd:40:0,
from /usr/include/c++/7/ios:38,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/postypes.h:221:5: note: candidate: template<class _StateT> bool std::operator!=(const std::fpos<_StateT>&, const std::fpos<_StateT>&)
operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
^~~~~~~~
/usr/include/c++/7/bits/postypes.h:221:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::fpos<_StateT>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/ios:40,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/stl_pair.h:456:5: note: candidate: template<class _T1, class _T2> constexpr bool std::operator!=(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)
operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
^~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:456:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::pair<_T1, _T2>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/ios:40,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/stl_iterator.h:311:5: note: candidate: template<class _Iterator> bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)
operator!=(const reverse_iterator<_Iterator>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_iterator.h:311:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::reverse_iterator<_Iterator>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/ios:40,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/stl_iterator.h:349:5: note: candidate: template<class _IteratorL, class _IteratorR> bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)
operator!=(const reverse_iterator<_IteratorL>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_iterator.h:349:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::reverse_iterator<_Iterator>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/ios:40,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/stl_iterator.h:1130:5: note: candidate: template<class _IteratorL, class _IteratorR> bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)
operator!=(const move_iterator<_IteratorL>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_iterator.h:1130:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::move_iterator<_IteratorL>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/ios:40,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/stl_iterator.h:1136:5: note: candidate: template<class _Iterator> bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)
operator!=(const move_iterator<_Iterator>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_iterator.h:1136:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::move_iterator<_IteratorL>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/string:41:0,
from /usr/include/c++/7/bits/locale_classes.h:40,
from /usr/include/c++/7/bits/ios_base.h:41,
from /usr/include/c++/7/ios:42,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/allocator.h:158:5: note: candidate: template<class _T1, class _T2> bool std::operator!=(const std::allocator<_CharT>&, const std::allocator<_T2>&)
operator!=(const allocator<_T1>&, const allocator<_T2>&)
^~~~~~~~
/usr/include/c++/7/bits/allocator.h:158:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::allocator<_CharT>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/string:41:0,
from /usr/include/c++/7/bits/locale_classes.h:40,
from /usr/include/c++/7/bits/ios_base.h:41,
from /usr/include/c++/7/ios:42,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/allocator.h:164:5: note: candidate: template<class _Tp> bool std::operator!=(const std::allocator<_CharT>&, const std::allocator<_CharT>&)
operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
^~~~~~~~
/usr/include/c++/7/bits/allocator.h:164:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::allocator<_CharT>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/string:52:0,
from /usr/include/c++/7/bits/locale_classes.h:40,
from /usr/include/c++/7/bits/ios_base.h:41,
from /usr/include/c++/7/ios:42,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/basic_string.h:6047:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
^~~~~~~~
/usr/include/c++/7/bits/basic_string.h:6047:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/string:52:0,
from /usr/include/c++/7/bits/locale_classes.h:40,
from /usr/include/c++/7/bits/ios_base.h:41,
from /usr/include/c++/7/ios:42,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/basic_string.h:6060:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
operator!=(const _CharT* __lhs,
^~~~~~~~
/usr/include/c++/7/bits/basic_string.h:6060:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: mismatched types 'const _CharT*' and 'XQillaAllocator<ASTNode*>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/string:52:0,
from /usr/include/c++/7/bits/locale_classes.h:40,
from /usr/include/c++/7/bits/ios_base.h:41,
from /usr/include/c++/7/ios:42,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/basic_string.h:6072:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _CharT*)
operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
^~~~~~~~
/usr/include/c++/7/bits/basic_string.h:6072:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/bits/ios_base.h:46:0,
from /usr/include/c++/7/ios:42,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/system_error:319:3: note: candidate: bool std::operator!=(const std::error_code&, const std::error_code&)
operator!=(const error_code& __lhs, const error_code& __rhs) noexcept
^~~~~~~~
/usr/include/c++/7/system_error:319:3: note: no known conversion for argument 1 from 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' to 'const std::error_code&'
/usr/include/c++/7/system_error:323:3: note: candidate: bool std::operator!=(const std::error_code&, const std::error_condition&)
operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept
^~~~~~~~
/usr/include/c++/7/system_error:323:3: note: no known conversion for argument 1 from 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' to 'const std::error_code&'
/usr/include/c++/7/system_error:327:3: note: candidate: bool std::operator!=(const std::error_condition&, const std::error_code&)
operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept
^~~~~~~~
/usr/include/c++/7/system_error:327:3: note: no known conversion for argument 1 from 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' to 'const std::error_condition&'
/usr/include/c++/7/system_error:331:3: note: candidate: bool std::operator!=(const std::error_condition&, const std::error_condition&)
operator!=(const error_condition& __lhs,
^~~~~~~~
/usr/include/c++/7/system_error:331:3: note: no known conversion for argument 1 from 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' to 'const std::error_condition&'
In file included from /usr/include/c++/7/bits/locale_facets.h:48:0,
from /usr/include/c++/7/bits/basic_ios.h:37,
from /usr/include/c++/7/ios:44,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from ../src/ast/XQCopy.cpp:24:
/usr/include/c++/7/bits/streambuf_iterator.h:210:5: note: candidate: template<class _CharT, class _Traits> bool std::operator!=(const std::istreambuf_iterator<_CharT, _Traits>&, const std::istreambuf_iterator<_CharT, _Traits>&)
operator!=(const istreambuf_iterator<_CharT, _Traits>& __a,
^~~~~~~~
/usr/include/c++/7/bits/streambuf_iterator.h:210:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::istreambuf_iterator<_CharT, _Traits>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/vector:64:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/stl_vector.h:1620:5: note: candidate: template<class _Tp, class _Alloc> bool std::operator!=(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&)
operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
^~~~~~~~
/usr/include/c++/7/bits/stl_vector.h:1620:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::vector<_Tp, _Alloc>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/set:60:0,
from ../include/xqilla/ast/XQElementConstructor.hpp:30,
from ../src/ast/XQCopy.cpp:30:
/usr/include/c++/7/bits/stl_tree.h:412:5: note: candidate: template<class _Val> bool std::operator!=(const std::_Rb_tree_iterator<_Tp>&, const std::_Rb_tree_const_iterator<_Val>&)
operator!=(const _Rb_tree_iterator<_Val>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_tree.h:412:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::_Rb_tree_iterator<_Tp>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/set:60:0,
from ../include/xqilla/ast/XQElementConstructor.hpp:30,
from ../src/ast/XQCopy.cpp:30:
/usr/include/c++/7/bits/stl_tree.h:1553:5: note: candidate: template<class _Key, class _Val, class _KeyOfValue, class _Compare, class _Alloc> bool std::operator!=(const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&, const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&)
operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_tree.h:1553:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/set:61:0,
from ../include/xqilla/ast/XQElementConstructor.hpp:30,
from ../src/ast/XQCopy.cpp:30:
/usr/include/c++/7/bits/stl_set.h:937:5: note: candidate: template<class _Key, class _Compare, class _Alloc> bool std::operator!=(const std::set<_Key, _Compare, _Alloc>&, const std::set<_Key, _Compare, _Alloc>&)
operator!=(const set<_Key, _Compare, _Alloc>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_set.h:937:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::set<_Key, _Compare, _Alloc>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from /usr/include/c++/7/set:62:0,
from ../include/xqilla/ast/XQElementConstructor.hpp:30,
from ../src/ast/XQCopy.cpp:30:
/usr/include/c++/7/bits/stl_multiset.h:920:5: note: candidate: template<class _Key, class _Compare, class _Alloc> bool std::operator!=(const std::multiset<_Key, _Compare, _Alloc>&, const std::multiset<_Key, _Compare, _Alloc>&)
operator!=(const multiset<_Key, _Compare, _Alloc>& __x,
^~~~~~~~
/usr/include/c++/7/bits/stl_multiset.h:920:5: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const std::multiset<_Key, _Compare, _Alloc>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from ../include/xqilla/events/EventGenerator.hpp:26:0,
from ../include/xqilla/ast/ASTNode.hpp:29,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
../include/xqilla/framework/ReferenceCounted.hpp:139:13: note: candidate: template<class T> bool operator!=(const RefCountPointer<T1>&, void*)
inline bool operator!=(const RefCountPointer<T> &a, void *b)
^~~~~~~~
../include/xqilla/framework/ReferenceCounted.hpp:139:13: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const RefCountPointer<T1>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
In file included from ../include/xqilla/events/EventGenerator.hpp:26:0,
from ../include/xqilla/ast/ASTNode.hpp:29,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
../include/xqilla/framework/ReferenceCounted.hpp:127:13: note: candidate: template<class T1, class T2> bool operator!=(const RefCountPointer<T1>&, const RefCountPointer<T2>&)
inline bool operator!=(const RefCountPointer<T1> &a, const RefCountPointer<T2> &b)
^~~~~~~~
../include/xqilla/framework/ReferenceCounted.hpp:127:13: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/7/vector:69:0,
from ../include/xqilla/ast/ASTNode.hpp:25,
from ../include/xqilla/ast/ASTNodeImpl.hpp:28,
from ../include/xqilla/ast/XQCopy.hpp:25,
from ../src/ast/XQCopy.cpp:26:
/usr/include/c++/7/bits/vector.tcc:188:37: note: 'std::_Vector_base<ASTNode*, XQillaAllocator<ASTNode*> >::_Tp_alloc_type {aka XQillaAllocator<ASTNode*>}' is not derived from 'const RefCountPointer<T1>'
&& _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
Makefile:2264: recipe for target 'XQCopy.lo' failed
make[1]: *** [XQCopy.lo] Error 1
make[1]: Leaving directory '/usr/local/src/mapguide/build_oem/dbxml/xqilla/build'
Makefile:4939: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
In anticipation of carrying out (https://trac.osgeo.org/mapguide/ticket/2794) and future vanilla SWIG binding work, set up a "generic" linux image solely to build the common libs subset.
This is primarily for verifying the self-containedness of the centos6
release but has general usefulness for all distros
dep_check.sh
#!/bin/sh
NOT_FOUND=$(ldd $1 | grep "not found")
if [ -n "$NOT_FOUND" ]; then
case "$1" in
*KingOracleProvider*) # We expect users to bring their own OCI for legal reasons so we expect dep check to fail for this library
echo "Skipping dependency check on $1: We're expecting you to bring your own OCI"
;;
*)
echo "$1 has missing dependencies:"
echo $NOT_FOUND
exit 1
;;
esac
else
echo "$1: All dependencies met"
fi
exit 0
export LD_LIBRARY_PATH=/usr/local/mapguideopensource-4.0.0/lib64:/usr/local/mapguideopensource-4.0.0/server/lib64:/usr/local/mapguideopensource-4.0.0/webserverextensions/lib64:/usr/local/fdo-4.2.0/lib64
find /usr/local/mapguideopensource-4.0.0 -type f -name "*.so" | xargs -L1 ./dep_check.sh
The installer script still registers the ODBC/MySQL/PostgreSQL providers under their old autotools-build-based naming scheme.
CMake build of FDO changed these library target names to be consistent with other FDO providers, so this installer script needs to be updated as well to match.
When doing an ldd mgserver
for the centos6
built mgserver
binary, it lists libdb_cxx4.7
in its dependency list, but we should be building against libdb_cxx4.8
as evidenced by doing the same ldd mgserver
command for mgserver
built for other distro.
So ... what gives?
This should extend the base "build" image and run the unit tests executables within
We need this script to do distro-specific packaging decisions and we can't do that without passing this information down
The centos install script should install:
libaio
if king oracle provider is selectedunixODBC
if odbc provider is selectedA declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.