Ticket #2282: zoo-patch-test4.2.patch

File zoo-patch-test4.2.patch, 9.0 KB (added by djay, 22 months ago)

Patch to get it building correctly with python 3.8

  • Dockerfile

     
    11#
    22# Base: Ubuntu 18.04 with updates and external packages
    33#
    4 FROM ubuntu:bionic-20201119 AS base
     4#FROM ubuntu:bionic-20201119 AS base
     5FROM ubuntu:focal-20210119 AS base
    56ARG DEBIAN_FRONTEND=noninteractive
    67ARG BUILD_DEPS=" \
    78    dirmngr \
     
    1415    libmapserver-dev \
    1516    libmozjs185-dev \
    1617    libpq5 \
    17     libpython3.6 \
     18    libpython3.8 \
    1819    libxslt1.1 \
    1920    gdal-bin \
    2021    python3 \
     
    2425RUN set -ex \
    2526    && apt-get update && apt-get install -y --no-install-recommends $BUILD_DEPS \
    2627    \
    27     && add-apt-repository ppa:osgeolive/nightly \
    28     && add-apt-repository ppa:ubuntugis/ppa \
     28    #&& add-apt-repository ppa:osgeolive/nightly \
     29    && add-apt-repository ppa:ubuntugis/ubuntugis-unstable \
     30    #&& add-apt-repository ppa:ubuntugis/ppa \
    2931    && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 \
    3032    && add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/' \
    3133    \
     
    5456    libssl-dev \
    5557    libxml2-dev \
    5658    libxslt1-dev \
    57     python3-dev \
     59    python3.8-dev \
    5860    uuid-dev \
    5961    r-base-dev \
    6062"
     
    6870    \
    6971    && cd ./zoo-project/zoo-kernel \
    7072    && autoconf \
    71     && ./configure --with-python=/usr --with-pyvers=3.6 --with-js=/usr --with-mapserver=/usr --with-ms-version=7 --with-json=/usr --with-db-backend --prefix=/usr \
     73    && echo $(find /usr/lib/ -name "libpython*.so") \
     74    && nm -D $(find /usr/lib/ -name "libpython*.so") | grep PyObject_ \
     75    && ./configure --with-python=/usr --with-pyvers=3.8 --with-js=/usr --with-mapserver=/usr --with-ms-version=7 --with-json=/usr --with-db-backend --prefix=/usr \
    7276    && make \
    7377    && make install \
    7478    \
  • thirds/otb2zcfg/otb2zcfg.cxx

     
    221221         
    222222          if(type == ParameterType_StringList || type == ParameterType_String || type == ParameterType_Float
    223223             || type == ParameterType_Int || type == ParameterType_Choice || type == ParameterType_ListView
    224              || type == ParameterType_RAM || type == ParameterType_Empty || type == ParameterType_Directory){
     224             || type == ParameterType_RAM /*|| type == ParameterType_Empty*/ || type == ParameterType_Directory){
    225225            std::cout << "   <LiteralData>" << std::endl;
    226226            std::string lt;
    227227            if(type == ParameterType_Int || type == ParameterType_RAM)
     
    232232               || type == ParameterType_Choice || type == ParameterType_Directory
    233233               || type == ParameterType_ListView)
    234234              lt="string";
    235             if(type == ParameterType_Empty)
    236               lt="boolean";
     235            /*if(type == ParameterType_Empty)
     236              lt="boolean";*/
    237237            std::cout << "    dataType = " << lt << std::endl;
    238238            if(type == ParameterType_Choice || type == ParameterType_ListView){
    239239              const std::vector<std::string> nList = m_Application->GetChoiceNames(paramKey);
     
    280280              printOutputImage(m_Application->GetParameterOutputImagePixelType(paramKey));
    281281            }
    282282            else{
    283               if(type == ParameterType_ComplexOutputImage){
     283              /*if(type == ParameterType_ComplexOutputImage){
    284284                printOutputComplexImage(m_Application->GetParameterComplexOutputImagePixelType(paramKey));
    285               }else{
     285              }else*/{
    286286                std::cout << "   <ComplexData>" << std::endl;
    287                 if(type == ParameterType_InputImage || type == ParameterType_InputImageList || type == ParameterType_ComplexInputImage){
     287                if(type == ParameterType_InputImage || type == ParameterType_InputImageList){
    288288                  printImages();
    289289                }
    290290                else
     
    337337       
    338338        if(paramKey!="inxml" && paramKey!="outxml" &&
    339339           ((type == ParameterType_OutputVectorData || type == ParameterType_OutputImage
    340              || type == ParameterType_OutputImage || type == ParameterType_ComplexOutputImage
     340             || type == ParameterType_OutputImage //|| type == ParameterType_ComplexOutputImage
    341341             || type == ParameterType_OutputFilename) || role==1) && type != ParameterType_Group){
    342342          hasOutput=1;
    343343          std::vector<std::string> values;
     
    355355            std::cout << "   Abstract = " << paramKey << std::endl;
    356356          }
    357357
    358           if(type == ParameterType_OutputImage || type == ParameterType_ComplexOutputImage){
     358          if(type == ParameterType_OutputImage){// || type == ParameterType_ComplexOutputImage){
    359359            std::cout << "   <ComplexData>" << std::endl;
    360360            printImages();
    361361            std::cout << "   </ComplexData>" << std::endl;
  • zoo-project/zoo-kernel/ZOOMakefile.opts.in

     
    120120MONO_ENABLED=@MONO_ENABLED@
    121121MONO_FILE=@MONO_FILE@
    122122
    123 CFLAGS=@CALLBACK_USE@ @SSH2_CPPFLAGS@ @PROJ_CPPFLAGS@ @RELY_ON_DB@ @DEB_DEF@ -fpic @OPENSSL_CFLAGS@ @UUID_CFLAGS@ ${FCGI_CFLAGS} ${YAML_CFLAGS} ${MACOS_CFLAGS} ${MS_CFLAGS} -I../../thirds/cgic206 -I. -DLINUX_FREE_ISSUE #-DDEBUG #-DDEBUG_SERVICE_CONF
     123CFLAGS=@CALLBACK_USE@ @SSH2_CPPFLAGS@ @PROJ_CPPFLAGS@ @RELY_ON_DB@ @DEB_DEF@ -fpic @OPENSSL_CFLAGS@ @UUID_CFLAGS@ ${FCGI_CFLAGS} ${YAML_CFLAGS} ${MACOS_CFLAGS} ${MS_CFLAGS} -I../../thirds/cgic206 -I. -DLINUX_FREE_ISSUE  #-DDEBUG #-DDEBUG_SERVICE_CONF
    124124LDFLAGS=-lzoo_service @SSH2_LDFLAGS@ @PROJ_LDFLAGS@ @DEFAULT_LIBS@ -L../../thirds/cgic206 -lcgic ${GDAL_LIBS} ${XML2LDFLAGS} ${PYTHONLDFLAGS} ${PERLLDFLAGS} ${PHPLDFLAGS} ${JAVALDFLAGS} ${JSLDFLAGS}  ${FCGI_LDFLAGS} @OPENSSL_LDFLAGS@ @UUID_LDFLAGS@ ${MS_LDFLAGS} ${MACOS_LD_FLAGS} ${MACOS_LD_NET_FLAGS} ${YAML_LDFLAGS} ${OTBLDFLAGS} ${SAGA_LDFLAGS} ${MONO_LDFLAGS} ${RLDFLAGS} @JSON_LDFLAGS@ @XSLT_LDFLAGS@
    125125
    126126DATAROOTDIR=@datarootdir@/zoo-project
  • zoo-project/zoo-kernel/configure.ac

     
    414414# Check headers file
    415415CPPFLAGS_SAVE="$CPPFLAGS"
    416416CPPFLAGS="$PROJ_CPPFLAGS"
    417 AC_CHECK_HEADERS([proj_api.h],
    418                  [], [AC_MSG_ERROR([could not find headers include related to PROJ4])])
     417#AC_CHECK_HEADERS([proj_api.h],
     418#                 [], [AC_MSG_ERROR([could not find headers include related to PROJ4])])
    419419
    420420AC_SUBST([PROJ_CPPFLAGS])
    421421AC_SUBST([PROJ_LDFLAGS])
     
    606606
    607607        echo $PYTHONCONFIG
    608608        # Extract the linker and include flags
    609         PYTHON_LDFLAGS=`$PYTHONCONFIG --ldflags`
     609        PYTHON_LDFLAGS=$($PYTHONCONFIG --ldflags | sed "s:python${PYTHON_VERS}/config-${PYTHON_VERS}-::g")
     610        echo $PYTHON_LDFLAGS
    610611        PYTHON_CPPFLAGS=`$PYTHONCONFIG --includes`
    611612
    612613        # Check headers file
     
    617618
    618619        # Ensure we can link against libphp
    619620        LIBS_SAVE="$LIBS"
    620         LIBS="$PYTHON_LDFLAGS"
    621         PY_LIB=`$PYTHONCONFIG --libs | sed \
    622                               -e 's/.*\(python[[0-9]]\.[[0-9]]\).*/\1/'`
    623         AC_CHECK_LIB([$PY_LIB], [PyObject_CallObject], [], [AC_MSG_ERROR([could not find libpython])], [])
     621        LIBS="m $PYTHON_LDFLAGS -lpython${PYTHON_VERS}"
     622        PYTHON_LDFLAGS="-l$LIBS"
     623        PY_LIB=`$PYTHONCONFIG --libs`
     624        LDFLAGS=$PYTHON_LDFLAGS
     625        AC_CHECK_LIB([], [PyObject_CallObject], [], [AC_MSG_ERROR([could not find libpython])], [])
    624626        LIBS="$LIBS_SAVE"
    625627fi
    626628
  • zoo-project/zoo-kernel/service_internal_otb.c

     
    361361                  }
    362362                  else
    363363                    if(type == ParameterType_InputImage
    364                        || type == ParameterType_ComplexInputImage || type == ParameterType_InputVectorData
     364                       || type == ParameterType_InputVectorData
    365365                       || type == ParameterType_InputFilename){
    366366                      m_Application->SetParameterString(paramKey, test->value);
    367367                  }
  • zoo-project/zoo-kernel/ulinet.h

     
    3333#endif
    3434#include "jsapi.h"
    3535#endif
    36 #include "fcgi_stdio.h"
     36//#include "fcgi_stdio.h"
    3737#include <stdlib.h>
    3838#include <fcntl.h>
    3939#include <curl/curl.h>
  • zoo-project/zoo-services/ogr/base-vect-ops/service.c

     
    3737#include "service.h"
    3838#include "service_internal.h"
    3939
    40 extern "C" {
    4140#include <libxml/tree.h>
    4241#include <libxml/parser.h>
    4342#include <libxml/xpath.h>
    4443#include <libxml/xpathInternals.h>
    4544
    46 /*#include <openssl/sha.h>
    47 #include <openssl/hmac.h>
    48 #include <openssl/evp.h>
    49 #include <openssl/bio.h>
    50 #include <openssl/buffer.h>
    51 */
     45extern "C" {
    5246
     47
    5348  void printExceptionReportResponse(maps*,map*);
    5449  char *base64(const char *input, int length);
    5550