This is an automated email from the ASF dual-hosted git repository.

okislal pushed a commit to branch madlib2-master
in repository https://gitbox.apache.org/repos/asf/madlib.git

commit b734a8f672bef782d5415419934ae6adcb11d148
Author: Orhan Kislal <[email protected]>
AuthorDate: Fri Sep 1 20:39:20 2023 +0300

    Build: Remove PyXB from cmake and use pyxb-x
    
    PyXB is abandoned and broken for py3.10+. pyxb-x is a patched version of
    pyxb that still has backwards compatibility. Instead of trying to pack
    pyxb with the MADlib, we just rely on yum like many other libraries.
---
 src/CMakeLists.txt                              | 84 ++++++++++++-------------
 tool/docker/base/Dockerfile_postgres_15_Jenkins |  2 +-
 tool/jenkins/jenkins_build.sh                   |  4 +-
 3 files changed, 45 insertions(+), 45 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9b02df8d..247f6899 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -80,20 +80,20 @@ endif (NOT EIGEN_TAR_SOURCE)
 # specify an alternative path to the PyXB tarball:
 # -DPYXB_TAR_SOURCE=/path/to/PyXB-x.x.x.tar.gz
 
-set(PYXB_VERSION "1.2.6")
-set(PYXB_TAR_MD5 4303573fc7094ce4664c5b71cd4bdb48)
+# set(PYXB_VERSION "1.2.6")
+# set(PYXB_TAR_MD5 5689c94a3c47419213b8872753a73c07)
 
-set(PYXB_TAR "PyXB-${PYXB_VERSION}.tar.gz")
-set(PYXB_URL "${SOURCEFORGE_BASE_URL}/pyxb/files/${PYXB_TAR}")
+# set(PYXB_TAR "PyXB-${PYXB_VERSION}.tar.gz")
+# set(PYXB_URL 
"https://github.com/renalreg/PyXB-X/archive/refs/tags/v1.2.6.1.tar.gz";)
 
-if(NOT PYXB_TAR_SOURCE)
-    find_file(PYXB_TAR_SOURCE ${PYXB_TAR}
-        PATHS ${MAD_THIRD_PARTY}/downloads)
-endif(NOT PYXB_TAR_SOURCE)
+# if(NOT PYXB_TAR_SOURCE)
+#     find_file(PYXB_TAR_SOURCE ${PYXB_TAR}
+#         PATHS ${MAD_THIRD_PARTY}/downloads)
+# endif(NOT PYXB_TAR_SOURCE)
 
-if(NOT PYXB_TAR_SOURCE)
-    set(PYXB_TAR_SOURCE ${PYXB_URL})
-endif (NOT PYXB_TAR_SOURCE)
+# if(NOT PYXB_TAR_SOURCE)
+#     set(PYXB_TAR_SOURCE ${PYXB_URL})
+# endif (NOT PYXB_TAR_SOURCE)
 
 # -- Local definitions (filenames, paths, etc.) 
--------------------------------
 
@@ -147,37 +147,37 @@ find_package(PythonInterp REQUIRED)
 set(BUILD_PYTHON_LIBDIR "${CMAKE_BINARY_DIR}/src/lib/python")
 
 
-if(IS_UBUNTU)
-ExternalProject_Add(EP_pyxb
-    PREFIX ${MAD_THIRD_PARTY}
-    DOWNLOAD_DIR ${MAD_THIRD_PARTY}/downloads
-    URL ${PYXB_TAR_SOURCE}
-    URL_MD5 ${PYXB_TAR_MD5}
-    PATCH_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/patch/PyXB.sh"
-    CONFIGURE_COMMAND ""
-    SOURCE_DIR ${MAD_THIRD_PARTY}/src/EP_pyxb
-    BUILD_COMMAND ""
-    BUILD_IN_SOURCE 1
-
-    INSTALL_COMMAND pip3 install .
-)
-endif(IS_UBUNTU)
-
-if((NOT IS_UBUNTU))
-ExternalProject_Add(EP_pyxb
-    PREFIX ${MAD_THIRD_PARTY}
-    DOWNLOAD_DIR ${MAD_THIRD_PARTY}/downloads
-    URL ${PYXB_TAR_SOURCE}
-    URL_MD5 ${PYXB_TAR_MD5}
-    PATCH_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/patch/PyXB.sh"
-    CONFIGURE_COMMAND ""
-    SOURCE_DIR ${MAD_THIRD_PARTY}/src/EP_pyxb
-    BUILD_COMMAND ""
-    BUILD_IN_SOURCE 1
-
-    INSTALL_COMMAND ${PYTHON_EXECUTABLE} setup.py install --install-lib 
${BUILD_PYTHON_LIBDIR} > /dev/null
-)
-endif((NOT IS_UBUNTU))
+# if(IS_UBUNTU)
+# ExternalProject_Add(EP_pyxb
+#     PREFIX ${MAD_THIRD_PARTY}
+#     DOWNLOAD_DIR ${MAD_THIRD_PARTY}/downloads
+#     URL ${PYXB_TAR_SOURCE}
+#     URL_MD5 ${PYXB_TAR_MD5}
+#     # PATCH_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/patch/PyXB.sh"
+#     CONFIGURE_COMMAND ""
+#     SOURCE_DIR ${MAD_THIRD_PARTY}/src/EP_pyxb
+#     BUILD_COMMAND ""
+#     BUILD_IN_SOURCE 1
+
+#     INSTALL_COMMAND pip3 install .
+# )
+# endif(IS_UBUNTU)
+
+# if((NOT IS_UBUNTU))
+# ExternalProject_Add(EP_pyxb
+#     PREFIX ${MAD_THIRD_PARTY}
+#     DOWNLOAD_DIR ${MAD_THIRD_PARTY}/downloads
+#     URL ${PYXB_TAR_SOURCE}
+#     URL_MD5 ${PYXB_TAR_MD5}
+#     # PATCH_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/patch/PyXB.sh"
+#     CONFIGURE_COMMAND ""
+#     SOURCE_DIR ${MAD_THIRD_PARTY}/src/EP_pyxb
+#     BUILD_COMMAND ""
+#     BUILD_IN_SOURCE 1
+
+#     INSTALL_COMMAND ${PYTHON_EXECUTABLE} setup.py install --install-lib 
${BUILD_PYTHON_LIBDIR} > /dev/null
+# )
+# endif((NOT IS_UBUNTU))
 
 install(DIRECTORY ${BUILD_PYTHON_LIBDIR}
     DESTINATION lib
diff --git a/tool/docker/base/Dockerfile_postgres_15_Jenkins 
b/tool/docker/base/Dockerfile_postgres_15_Jenkins
index 37798616..760a6787 100644
--- a/tool/docker/base/Dockerfile_postgres_15_Jenkins
+++ b/tool/docker/base/Dockerfile_postgres_15_Jenkins
@@ -55,7 +55,7 @@ RUN apt-get update && apt-get install -y \
                         postgresql-client-15 \
                         libpq-dev
 
-RUN python3 -m pip install dill rtree xgboost mock pandas numpy scikit-learn
+RUN python3 -m pip install dill rtree xgboost mock pandas numpy scikit-learn 
pyxb-x
 
 ## To build an image from this docker file, from madlib folder, run:
 # docker build -t madlib/postgres_15:jenkins -f 
tool/docker/base/Dockerfile_postgres_15_Jenkins .
diff --git a/tool/jenkins/jenkins_build.sh b/tool/jenkins/jenkins_build.sh
index 1a77b697..fb6df8f7 100755
--- a/tool/jenkins/jenkins_build.sh
+++ b/tool/jenkins/jenkins_build.sh
@@ -73,9 +73,9 @@ docker exec madlib bash -c 'service postgresql start' | tee 
$workdir/logs/madlib
 echo "---------- Install pip, and mock -----------"
 # cmake, make, make install, and make package
 cat <<EOF
-docker exec madlib bash -c 'apt-get update; apt-get install -y python3-pip; 
pip install mock pandas numpy xgboost scikit-learn pyyaml' | tee 
$workdir/logs/madlib_compile.log
+docker exec madlib bash -c 'apt-get update; apt-get install -y python3-pip; 
pip install mock pandas numpy xgboost scikit-learn pyyaml pyxb-x' | tee 
$workdir/logs/madlib_compile.log
 EOF
-docker exec madlib bash -c 'apt-get update; apt-get install -y python3-pip; 
pip install mock pandas numpy xgboost scikit-learn pyyaml' | tee 
$workdir/logs/madlib_compile.log
+docker exec madlib bash -c 'apt-get update; apt-get install -y python3-pip; 
pip install mock pandas numpy xgboost scikit-learn pyyaml pyxb-x' | tee 
$workdir/logs/madlib_compile.log
 
 echo "---------- Building package -----------"
 # cmake, make, make install, and make package

Reply via email to