From 78ac33d14f0963c41604127ee55e4b03c26e2dfa Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Tue, 19 Mar 2024 16:38:07 +0100 Subject: [PATCH] Python YAML config and build script added --- Programming/Python/build-xml | 88 ++++++++++++++++++++++++++++ Programming/Python/files/config.yaml | 58 ++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100755 Programming/Python/build-xml create mode 100644 Programming/Python/files/config.yaml diff --git a/Programming/Python/build-xml b/Programming/Python/build-xml new file mode 100755 index 0000000..fcd556e --- /dev/null +++ b/Programming/Python/build-xml @@ -0,0 +1,88 @@ +#!/usr/bin/env modbuild + +pbuild::pre_configure() { + local -a cflags=() + local -a ldflags=() + + cflags+=("-fPIC") + cflags+=("-I${XZ_INCLUDE_DIR}") + + ldflags+=("-L${XZ_LIBRARY_DIR}") + + if (( V_MAJOR == 2 || (V_MAJOR == 3 && V_MINOR <= 6) )); then + cflags+=("-I${OPENSSL_INCLUDE_DIR}" "-I${OPENSSL_INCLUDE_DIR}/openssl") + ldflags+=("-L${OPENSSL_LIBRARY_DIR}") + else + pbuild::add_configure_args "--with-openssl=${OPENSSL_DIR}" + #pbuild::add_configure_args "--enable-optimizations" + fi + pbuild::add_configure_args "CFLAGS=${cflags[*]}" + pbuild::add_configure_args "LDFLAGS=${ldflags[*]}" + pbuild::add_configure_args "--enable-shared" +} + +pbuild::pre_configure_Linux() { + pbuild::add_configure_args "--with-tcltk-includes=-I${TCLTK_INCLUDE_DIR}" + pbuild::add_configure_args "--with-tcltk-libs=-L${TCLTK_LIBRARY_DIR} -ltcl8.6 -ltk8.6" +} + +pbuild::post_install_Linux() { + if version_le 3.9.10; then + install "${OPENSSL_LIBRARY_DIR}"/libcrypto.so.* "${PREFIX}/lib" + install "${OPENSSL_LIBRARY_DIR}"/libssl.so.* "${PREFIX}/lib" + install "${TCLTK_LIBRARY_DIR}"/libtcl*.so "${PREFIX}/lib" + install "${TCLTK_LIBRARY_DIR}"/libtk*.so "${PREFIX}/lib" + install "${XZ_LIBRARY_DIR}"/liblzma.so.* "${PREFIX}/lib" + install /usr/lib64/libffi.so.* "${PREFIX}/lib" + else + : + fi +} + +pbuild::post_install() { + export PATH="${PREFIX}/bin:${PATH}" + export LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH}" + export CFLAGS="-I${OPENSSL_INCLUDE_DIR} -I${OPENSSL_INCLUDE_DIR}/openssl" + export CPPFLAGS="-I${OPENSSL_INCLUDE_DIR} -I${OPENSSL_INCLUDE_DIR}/openssl" + export LDFLAGS="-L${OPENSSL_LIBRARY_DIR}" + ln -fs "${PREFIX}/bin/python${V%%.*}" "${PREFIX}/bin/python" + ln -fs "${PREFIX}/include/python${V%.*}m" "${PREFIX}/include/python" + ln -fs "${PREFIX}/include/python${V%.*}m" "${PREFIX}/include/python${V%.*}" + + if (( V_MAJOR == 2 || (V_MAJOR == 3 && V_MINOR <= 7) )); then + cd "${BUILDBLOCK_DIR}" + "${PREFIX}/bin/python" 'get-pip.py' + fi + + std::info "Building numpy\n" + pip${V_MAJOR} install numpy + + std::info "Building scipy\n" + pip${V_MAJOR} install scipy + + std::info "Building matplotlib\n" + pip${V_MAJOR} install matplotlib + + std::info "Building ipython\n" + pip${V_MAJOR} install ipython + + std::info "Building sympy\n" + pip${V_MAJOR} install sympy + + std::info "Building nose\n" + pip${V_MAJOR} install nose + + std::info "Building h5py\n" + pip${V_MAJOR} install h5py + + std::info "Building pandas\n" + pip${V_MAJOR} install pandas + + #std::info "Building virtualenv\n" + #pip${V_MAJOR} install virtualenv + + #std::info "Building ansible\n" + #pip${V_MAJOR} install ansible ansible-core==2.15.4 +} + + diff --git a/Programming/Python/files/config.yaml b/Programming/Python/files/config.yaml new file mode 100644 index 0000000..4041769 --- /dev/null +++ b/Programming/Python/files/config.yaml @@ -0,0 +1,58 @@ +format: 1 +Python: + defaults: + group: Programming + overlay: base + relstage: stable + urls: + - url: https://www.python.org/ftp/python/${V_PKG}/$P-${V_PKG}.tgz + + shasums: + Python-2.7.12.tgz: 3cb522d17463dfa69a155ab18cffa399b358c966c0363d6c8b5b3bf1384da4b6 + Python-2.7.14.tgz: 304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8 + Python-2.7.16.tgz: 01da813a3600876f03f46db11cc5c408175e99f03af2ba942ef324389a83bad5 + Python-2.7.17.tgz: f22059d09cdf9625e0a7284d24a13062044f5bf59d93a7f3382190dfa94cecde + Python-2.7.18.tgz: da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814 + Python-3.6.11.tgz: 96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c + Python-3.6.3.tgz: ab6193af1921b30f587b302fe385268510e80187ca83ca82d2bfe7ab544c6f91 + Python-3.7.3.tgz: d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff + Python-3.7.4.tgz: d63e63e14e6d29e17490abbe6f7d17afb3db182dbd801229f14e55f4157c4ba3 + Python-3.7.8.tgz: 0e25835614dc221e3ecea5831b38fa90788b5389b99b675a751414c858789ab0 + Python-3.8.12.tgz: 316aa33f3b7707d041e73f246efedb297a70898c4b91f127f66dc8d80c596f1a + Python-3.8.4.tgz: 32c4d9817ef11793da4d0d95b3191c4db81d2e45544614e8449255ca9ae3cc18 + Python-3.8.8.tgz: 76c0763f048e4f9b861d24da76b7dd5c7a3ba7ec086f40caedeea359263276f7 + Python-3.9.10.tgz: 1aa9c0702edbae8f6a2c95f70a49da8420aaa76b7889d3419c186bfc8c0e571e + Python-3.9.17.tgz: 8ead58f669f7e19d777c3556b62fae29a81d7f06a7122ff9bc57f7dd82d7e014 + Python-3.9.18.tgz: 504ce8cfd59addc04c22f590377c6be454ae7406cb1ebf6f5a350149225a9354 + versions: + 3.9.18-1: + config: + relstage: unstable + build_requires: [openssl/1.1.1w, TclTk/8.6.9, xz/5.2.4] + 3.9.18: + config: + relstage: unstable + build_requires: [openssl/1.1.1w, TclTk/8.6.9, xz/5.2.4] + 3.9.17: + config: + relstage: unstable + build_requires: [openssl/1.1.1v, TclTk/8.6.9, xz/5.2.4] + 3.9.10: + 3.8.12: + 3.8.8;3.8.4: + config: + relstage: deprecated + 3.7.8: + config: + relstage: stable + 3.7.4;3.7.3: + config: + relstage: deprecated + 3.6.3: + 3.4.3;3.4.0: + config: + relstage: deprecated + 2.7.17;2.7.16: + 2.7.14;2.7.12;2.7.11: + config: + relstage: deprecated