Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
pkg-scripts/python-3.12.8-0.build.sh
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executable file
760 lines (600 sloc)
23.1 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# ------------------------------------------------------------------- Debug | |
# COOKIE=$(mcookie|cut -c-8); grep -v V_GREP_ME $0 > /dev/shm/runme-$COOKIE.sh ; sleep 0.3; exec bash /dev/shm/runme-$COOKIE.sh | |
# TESTING=1 | |
# ---------------------------------------------------------------- Preamble | |
PKG=python | |
VERSION=3.12.8 | |
BUILD=0 | |
PYTHONVER=${VERSION%.*} | |
CUDADIR=/pkg/cuda-12.1.0-0 | |
PREFIX=/pkg/$PKG-$VERSION-$BUILD | |
if [ -n "$TESTING" ]; then PREFIX=/scratch/local2/$PKG-$VERSION-$BUILD ; fi | |
PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin | |
set -e | |
umask 022 | |
BUILD_TMPDIR=/scratch/local2/$PKG-$VERSION-$BUILD.$USER.build.tmp | |
# keep pip's download cache when testing | |
test -z "$TESTING" && test -d $BUILD_TMPDIR && ( chmod -R u+rwx $BUILD_TMPDIR || true ; rm -rf $BUILD_TMPDIR ) | |
mkdir -p $BUILD_TMPDIR/home/.cache/pip | |
mkdir -p $BUILD_TMPDIR/home/.local | |
# copy script to an accessible location | |
cp $0 $BUILD_TMPDIR; ME="$BUILD_TMPDIR/$(basename $0)" | |
export TMPDIR=$BUILD_TMPDIR | |
export HOME=$BUILD_TMPDIR/home | |
exec </dev/null | |
mkdir -p $PREFIX | |
cat >$PREFIX/profile <<-EOF | |
. $CUDADIR/profile | |
PATH=$PREFIX/bin:\$PATH | |
export LD_LIBRARY_PATH=$PREFIX/lib\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH | |
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig\${PKG_CONFIG_PATH:+:}\$PKG_CONFIG_PATH | |
export PKG_CONFIG_PATH | |
if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH ; fi | |
EOF | |
. $PREFIX/profile | |
NPROC=$(( $(nproc) * 4 / 5 + 1 )) | |
export MAKEFLAGS="-j $NPROC" | |
BUILDDIR=$PREFIX/build | |
mkdir -p $BUILDDIR | |
cd $BUILDDIR | |
# -------------------------------------- Use git to track package evolution | |
test -d .git && rm -rf .git | |
git init -b root -q; echo -e '[user]\n name = none\n email = of_your_business...' >> .git/config | |
echo '*' > .gitignore | |
function piplist() { | |
pip list | awk '{ printf("%-36s %s\n", $1,$2) }' | grep -v '\----' > GameOfVersions | |
} | |
function track() { | |
if [ -d .git ]; then | |
if git add -f GameOfVersions; then | |
git commit -q -n -m "Package: '$*'" || /bin/true | |
fi | |
fi | |
} | |
function install() { | |
echo "# ::INST:: # '${@+$@}'" | |
# no-color is nice, but doesn't work when dependencies are installed, so (mis-)use a pipe | |
pip install --no-color --compile --cache-dir=$HOME/.cache/pip --prefix=$PREFIX "${@+$@}" | cat | |
piplist | |
track $* | |
} | |
# ---------------------------------------- Build Python & support libraries | |
( | |
# orig: https://www.python.org/ftp/python/3.12.8/Python-3.12.8.tgz | |
BEEHIVE=https://beehive.molgen.mpg.de/304473cf367fa65e450edf4b06b55fcc/Python-3.12.8.tgz | |
test -e Python-$VERSION.tar.xz || wget -nv $BEEHIVE | |
test -d Python-$VERSION || tar -xf Python-$VERSION.tgz | |
cd Python-$VERSION | |
# These may come handy if the Python build needs exclusive stuff from $PREFIX | |
# INCLUDEDIR=$PREFIX/include \ | |
# LIBDIR=$PREFIX/lib \ | |
LDFLAGS="-Wl,-rpath=$PREFIX/lib" \ | |
./configure \ | |
--prefix=$PREFIX \ | |
--enable-shared | |
make -j $NPROC | |
make install | |
# it might come to happen that something down the line may just call 'python', defuse ... | |
test -e $PREFIX/bin/python || ln -s python3 $PREFIX/bin/python | |
python -m ensurepip | |
pip3 install --prefix=$PREFIX -I pip | |
( # fix 'please update' noise from pip | |
cd $PREFIX/lib/python*/site-packages | |
sed -ne '/^#Epatch:pip/ s/^#Epatch:\S* // p' $ME | patch -p1 --verbose | |
) | |
# libblosc2 installs in $PREFIX/lib64, I hate to do this ... | |
ln -s lib $PREFIX/lib64 | |
) | |
install setuptools | |
piplist; track START | |
# build various pythonbindings 'by hand', because pip installs do not deliver | |
# header files and the like. | |
# BTW: builds need meson | |
install meson | |
( | |
DBUS_PYTHON_VERSION=1.3.2 | |
# PyPi | |
# https://files.pythonhosted.org/packages/c1/d3/6be85a9c772d6ebba0cc3ab37390dd6620006dcced758667e0217fb13307/dbus-python-1.3.2.tar.gz | |
BEEHIVE=https://beehive.molgen.mpg.de/33be8a4a766e1c7c9a377b8f934ce21a/dbus-python-1.3.2.tar.gz | |
test -e dbus-python-$DBUS_PYTHON_VERSION.tar.gz || wget -nv $BEEHIVE | |
test -d dbus-python-$DBUS_PYTHON_VERSION || tar -xf dbus-python-$DBUS_PYTHON_VERSION.tar.gz | |
cd dbus-python-$DBUS_PYTHON_VERSION | |
./configure --prefix=$PREFIX | |
make -j $NPROC | |
make install | |
) | |
( | |
PYCAIRO_VERSION=1.27.0 | |
# https://files.pythonhosted.org/packages/07/4a/42b26390181a7517718600fa7d98b951da20be982a50cd4afb3d46c2e603/pycairo-1.27.0.tar.gz | |
BEEHIVE=https://beehive.molgen.mpg.de/12097575a1bb683cab7dc425d9769a68/pycairo-1.27.0.tar.gz | |
test -e pycairo-$PYCAIRO_VERSION.tar.gz || wget -nv $BEEHIVE | |
test -d pycairo-$PYCAIRO_VERSION || tar -xf pycairo-$PYCAIRO_VERSION.tar.gz | |
cd pycairo-$PYCAIRO_VERSION | |
mkdir -p meson-build | |
cd meson-build | |
meson setup \ | |
--prefix=$PREFIX \ | |
--buildtype=release \ | |
-Dpython=$PREFIX/bin/python \ | |
-Dtests=false \ | |
.. | |
ninja -j $NPROC | |
ninja install | |
) | |
( | |
PYGOBJECT3_VERSION=3.50.0 | |
# https://files.pythonhosted.org/packages/2b/58/d34e67a79631177e3c08e7d02b5165147f590171f2cae6769502af5f7f7e/pygobject-3.50.0.tar.gz | |
BEEHIVE=https://beehive.molgen.mpg.de/a6904c6f523b9f7ca2dec63d8c24de92/pygobject-3.50.0.tar.gz | |
test -e pygobject-$PYGOBJECT3_VERSION.tar.gz || wget -nv $BEEHIVE | |
test -d pygobject-$PYGOBJECT3_VERSION || tar -xf pygobject-$PYGOBJECT3_VERSION.tar.gz | |
cd pygobject-$PYGOBJECT3_VERSION | |
mkdir -p meson-build | |
cd meson-build | |
meson setup \ | |
--prefix=$PREFIX \ | |
--buildtype=release \ | |
-Dpython=$PREFIX/bin/python \ | |
-Dtests=false \ | |
.. | |
ninja -j $NPROC | |
ninja install | |
) | |
piplist; track various pythonbindings | |
# build support to use QT from python -- see www.riverbankcomputing.com | |
( # sip: tool to create Python bindings for C and C++ libraries. | |
SIP_VERSION=6.9.1 | |
# orig: https://files.pythonhosted.org/packages/e2/83/b23f610ef99fa23aa3c8dcd2ff8536c37b943654405ff4f45f3230327a40/sip-6.9.1.tar.gz | |
BEEHIVE=https://beehive.molgen.mpg.de/a6f939e7c1e4d1c3feb39ed56e7b2297/sip-6.9.1.tar.gz | |
test -e sip-$SIP_VERSION.tar.gz || wget -nv $BEEHIVE | |
test -d sip-$SIP_VERSION || tar -xf sip-$SIP_VERSION.tar.gz | |
cd sip-$SIP_VERSION | |
pip install . | |
) | |
# QT bindings need some python modules to build | |
install PyQt5-sip | |
install PyQt-builder | |
( | |
PYQT_VERSION=5.15.11 | |
# orig: https://files.pythonhosted.org/packages/0e/07/c9ed0bd428df6f87183fca565a79fee19fa7c88c7f00a7f011ab4379e77a/PyQt5-5.15.11.tar.gz | |
BEEHIVE=https://beehive.molgen.mpg.de/51ff7c7ccec76a5de36db3ff88140eaf/PyQt5-5.15.11.tar.gz | |
test -e PyQt5-$PYQT_VERSION.tar.gz || wget -nv $BEEHIVE | |
test -d PyQt5-$PYQT_VERSION || tar -xf PyQt5-$PYQT_VERSION.tar.gz | |
cd PyQt5-$PYQT_VERSION | |
sip-build \ | |
--confirm-license \ | |
--quiet \ | |
--api-dir $PREFIX/share/qsci/api/python \ | |
--dbus $PREFIX/include/dbus-1.0 \ | |
--no-designer-plugin \ | |
--no-qml-plugin \ | |
--jobs $NPROC | |
cd build | |
make -j $NPROC | |
make install | |
# Remove unused py2 version of uic modules | |
rm -r $PREFIX/lib/python*/site-packages/PyQt5/uic/port_v2 | |
) | |
( | |
QSCINTILLA_VERSION=2.14.1 | |
# orig: https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.14.1/QScintilla_src-2.14.1.tar.gz | |
BEEHIVE=https://beehive.molgen.mpg.de/9c9e3803e4371ebbb218682e8596af5d/QScintilla_src-2.14.1.tar.gz | |
test -e QScintilla_src-$QSCINTILLA_VERSION.tar.gz || wget -nv $BEEHIVE | |
test -d QScintilla_src-$QSCINTILLA_VERSION || tar -xf QScintilla_src-$QSCINTILLA_VERSION.tar.gz | |
cd QScintilla_src-$QSCINTILLA_VERSION | |
cd Python | |
cp -vp pyproject-qt5.toml pyproject.toml | |
sip-build \ | |
--quiet \ | |
--qsci-features-dir ../src/features \ | |
--qsci-include-dir ../src \ | |
--qsci-library-dir ../src \ | |
--api-dir $PREFIX/share/qsci/api/python \ | |
--jobs $NPROC | |
cd build | |
make -j $NPROC | |
make install | |
) | |
( | |
set -x | |
PYQTWEBENGINE_VERSION=5.15.7 | |
# see: https://pypi.org/project/PyQtWebEngine/#files | |
# orig: https://files.pythonhosted.org/packages/18/e8/19a00646866e950307f8cd73841575cdb92800ae14837d5821bcbb91392c/PyQtWebEngine-5.15.7.tar.gz | |
BEEHIVE=https://beehive.molgen.mpg.de/a3394e93d8b5077e8355f57d79c2ed58/PyQtWebEngine-5.15.7.tar.gz | |
test -e PyQtWebEngine-${PYQTWEBENGINE_VERSION}.tar.gz || wget -nv $BEEHIVE | |
test -d PyQtWebEngine-${PYQTWEBENGINE_VERSION} || tar -xf PyQtWebEngine-${PYQTWEBENGINE_VERSION}.tar.gz | |
cd PyQtWebEngine-${PYQTWEBENGINE_VERSION} | |
sip-build \ | |
--quiet \ | |
--api-dir ${PREFIX}/share/qsci/api/python \ | |
--jobs $NPROC | |
cd build | |
make -j $NPROC | |
make install | |
) | |
piplist; track qt-support-riverbankcomputing | |
# -------------------------------------------------------- Install packages | |
install Cython | |
# libxml2-python from pypi isn't up to date, cause lxml seems to be the favored binding | |
# do this early, not that some dependency tries it on its own. | |
# (btw. libxslt-python isn't ported to python3) | |
( | |
LIBXML2_VERSION=2.9.12 | |
# orig: http://xmlsoft.org/sources/libxml2-${PKGVERSION}.tar.gz | |
BEEHIVE=https://beehive.molgen.mpg.de/f433a39be087a9f0b197eb2307ad9f75/libxml2-2.9.12.tar.gz | |
test -e libxml2-$LIBXML2_VERSION.tar.gz || wget -nv $BEEHIVE | |
test -d libxml2-$LIBXML2_VERSION || tar -xf libxml2-$LIBXML2_VERSION.tar.gz libxml2-$LIBXML2_VERSION/python | |
cd libxml2-$LIBXML2_VERSION/python | |
pip install . | |
) | |
piplist; track legacy-libxml2 | |
# Install the most 'sensitive' packages first | |
install 'numpy<2' | |
install numba==0.60.0 | |
install wheel | |
# python-javabridge, problems with python 3.11 and recent cython, thus | |
# regenerate C bindings from *pxd, *pyx -- so must use github, and wheel | |
( | |
# use the fork from cellprofiler, as used in pypi | |
git clone https://github.com/CellProfiler/python-javabridge | |
cd python-javabridge | |
git checkout v4.0.3 | |
sed -ne '/^#Epatch:javabridge/ s/^#Epatch:\S* // p' $ME | patch -p1 --verbose | |
export JAVA_HOME=/pkg/openjdk-17.0.2.8-0 | |
PATH=/pkg/openjdk-17.0.2.8-0/bin:$PATH | |
pip install . | |
) | |
PACKAGES=$(sed -e s/#.*$// <<- __PKGLIST__ | |
igraph | |
keras | |
ipython[all] | |
snakemake # December 2023 brought snakemake 8, it seems to be working again | |
Pillow | |
protobuf | |
onnx | |
Sphinx | |
jedi | |
black[d] # onnx wants it, but does not install it ... | |
flask | |
SciPy | |
pandas | |
SymPy==1.13.1 # torch does not like 1.13.3 | |
nose | |
statsmodels | |
pysam | |
seaborn | |
scikit-learn | |
Mako | |
cutadapt # Helpdesk 01/24/18 16:19, S. K. | |
pygobject # Helpdesk 03/26/18 14:19, V. S. | |
blink1 # Blink1-lib 07/04/18 12:00, N. H. | |
hvplot # ont/nextflow pipelines | |
pyarrow # ont/nextflow pipelines | |
umi-tools | |
recommonmark | |
fastcluster | |
pydot | |
pygraphviz | |
deeptools | |
HTSeq | |
keras_preprocessing | |
MotifScan # A.B. 30.8.2018 | |
MAmotif | |
hic2cool # Helpdesk R. S. 17.09.2018 | |
virtualenv # Donald | |
odfpy # Donald | |
Dumper # Thomas | |
louvain # monocle3 prep for H. K. | |
selenium # 19.7.19 T.K. -> https://webxray.org/ | |
plotly | |
pyOpenCL | |
docopt | |
distro | |
ply | |
threadpoolctl | |
HiCMatrix # 17.1 -> https://github.com/deeptools/HiCMatrix/issues/47 | |
pybedtools | |
gffutils | |
jupyter | |
jupyterlab | |
jupyterlab-git # request P. A. | |
igv_jupyterlab # M. L. HD 01-04-2020 | |
igv-notebook | |
scour # https://github.molgen.mpg.de/mariux64/pkg-scripts/issues/98 | |
multiqc | |
pybind11 | |
svgwrite | |
pyomo | |
bioservices | |
SharedArray | |
pyabc # dependency for stochkit, HD 20.07.20 G. N. | |
petab | |
tadtool # HD 26.01.21 M. R. | |
pyperf # Paul sep-20 | |
umap # HD, used by M. L. | |
MACS3 | |
biopython # HD 2021-07-23 alphafold related -- cool that we have missed 'biopython' so far, GRIN | |
flatbuffers | |
contextlib2 | |
ml_collections | |
python-bioformats | |
# additions/fixups since 3.9 | |
spyder | |
spyder-kernels | |
papermill # turns jupyter notebooks into scripts [sic!] used by P.A. [who else, *grin*] | |
opencv-python | |
scikit-image | |
git-cola | |
cffi-glpk # uses /usr/lib/libglpk.so.40, see if I can get it linked statically - kreitler | |
czifile | |
triangle==20230923 | |
napari[pyqt5]==0.5.5 # always check ... | |
napari-czifile2 | |
napari-plugin-manager==0.1.3 | |
bx-python | |
leidenalg | |
scanpy # this is a MESS, you might always get broken/ugly plots ... | |
asciidoc | |
html2text | |
# additions/fixups since 3.10 | |
aicspylibczi | |
filetype | |
gmpy2 | |
shap | |
UpSetPlot | |
hypothesis | |
# nf-core / epi2me related | |
dominate | |
libsass | |
sigfig | |
whatshap | |
Truvari | |
nanopack | |
# nlp related | |
spacy | |
# appease some warnings from the load test | |
siphash24 | |
dask[dataframe] | |
__PKGLIST__ | |
) | |
for PKG in $PACKAGES; do | |
install $PKG | |
done | |
# py-torch bundled with a recent CUDA-Toolkit from meta, | |
# and then the packages that would eventually interfere with torch | |
install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 | |
install xformers | |
install xgboost | |
install pyopengl | |
# ----------------------------------------------------- Post install fixups | |
mkdir -vp $PREFIX/share/jupyter/lab/settings # try to defeat a silly error in jupyter labextension install | |
# pyopengl: Tk binding creates an error, so remove it (Expects Tk Togl installation...) | |
rm -rf ${PREFIX}/lib/python$PYTHONVER/site-packages/OpenGL/Tk | |
# --------------------------------------------------- Install misc packages | |
# these mostly bigger packages require either wheel, other treatments, | |
# or java. | |
# build CrossMap from git, https://github.com/liguowang/CrossMap/issues/67 | |
( | |
git clone https://github.com/liguowang/CrossMap | |
cd CrossMap | |
git rm src/__init__.py | |
git commit -a -m 'remove badly placed src/__init__.py' | |
# pip install . --prefix=$PREFIX | |
pip install . | |
) | |
piplist; track CrossMap | |
# GYP is a Meta-Build system: a build system that generates other build systems. https://gyp.gsrc.io/ | |
( | |
set -x | |
GYP_VERSION=20230301_c6d8b9f7 | |
# orig: https://mirror.netcologne.de/slackware/slackware64-current/source/d/gyp/ | |
BEEHIVE=https://beehive.molgen.mpg.de/ba0357be23ca55555714261afccc7aab/gyp-20230301_c6d8b9f7.tar.xz | |
test -e gyp-${GYP_VERSION}.tar.xz || wget -nv $BEEHIVE | |
test -d gyp-${GYP_VERSION} || tar -xf gyp-${GYP_VERSION}.tar.xz | |
cd gyp-${GYP_VERSION} | |
sed -ne '/^#Epatch:gyp/ s/^#Epatch:\S* // p' $ME | patch -p1 --verbose | |
pip install . | |
) | |
piplist; track gyp | |
( | |
BOOSTVERSION=1.86.0 | |
BOOSTVERSION_USCORED=${BOOSTVERSION//./_} | |
PKGCFLAGS="-O2 -fPIC" | |
# orig: https://archives.boost.io/release/1.86.0/source/boost_1_86_0.tar.gz | |
BEEHIVE=https://beehive.molgen.mpg.de/ac857d73bb754b718a039830b07b9624/boost_1_86_0.tar.gz | |
test -e boost_$BOOSTVERSION_USCORED.tar.gz || wget -nv $BEEHIVE | |
test -d boost_$BOOSTVERSION_USCORED || tar -xf boost_$BOOSTVERSION_USCORED.tar.gz | |
cd boost_$BOOSTVERSION_USCORED | |
./bootstrap.sh \ | |
--with-toolset=gcc \ | |
--with-icu \ | |
--with-python=$PREFIX/bin/python3 \ | |
--with-libraries=python,thread,filesystem,stacktrace || exit 1 | |
./b2 \ | |
$B2FLAGS \ | |
-j $NPROC \ | |
--prefix=$PREFIX \ | |
--enable-shared \ | |
--without-mpi \ | |
install | |
) | |
( | |
PYCUDAVERS=2024.1.2 | |
PYTHON_LIBNAME=boost_python${PYTHONVER/./} | |
# orig: https://files.pythonhosted.org/packages/61/69/f53a6624def08348778a7407683f44c2a9adfdb0b68b9a45f8213ff66c9d/pycuda-2024.1.2.tar.gz | |
BEEHIVE=https://beehive.molgen.mpg.de/976edb53784c528551f2faf16f14d832/pycuda-2024.1.2.tar.gz | |
test -e pycuda-${PYCUDAVERS}.tar.gz || wget -nv $BEEHIVE | |
test -d pycuda-${PYCUDAVERS} || tar -xf pycuda-${PYCUDAVERS}.tar.gz | |
cd pycuda-${PYCUDAVERS} | |
test -e siteconf.py && rm siteconf.py | |
python configure.py \ | |
--cuda-enable-gl \ | |
--cuda-root=$CUDADIR \ | |
--no-use-shipped-boost \ | |
--boost-python-libname=$PYTHON_LIBNAME \ | |
--boost-inc-dir=$PREFIX/include \ | |
--boost-lib-dir=$PREFIX/lib \ | |
--cudadrv-lib-dir='${CUDA_ROOT}/lib,${CUDA_ROOT}/lib/stubs' \ | |
--cudart-lib-dir='${CUDA_ROOT}/lib,${CUDA_ROOT}/lib/stubs' \ | |
--curand-lib-dir='${CUDA_ROOT}/lib,${CUDA_ROOT}/lib/stubs' \ | |
--ldflags=-L$PREFIX/lib | |
pip install . --prefix=$PREFIX | |
) | |
piplist; track pycuda | |
( | |
# install from git to get .so files in case | |
pip install git+https://github.com/open2c/pairtools.git@v1.1.2 --prefix=$PREFIX | |
pip install git+https://github.com/brentp/bwa-meth.git@v0.2.7 --prefix=$PREFIX | |
# versions > 1.5 will not work with pip install github | |
pip install git+https://github.com/stacked-git/stgit.git@v1.5 --prefix=$PREFIX | |
) | |
piplist; track pairtools bwa-meth stgit | |
( | |
IDR_VERSION=2.0.3 | |
# orig: https://github.com/nboley/idr/archive/2.0.3/idr-2.0.3.tar.gz # HD: T. Z., 18.3.21 | |
BEEHIVE=https://beehive.molgen.mpg.de/1bec61b526bb1dcf92a5ab99c27852d0/idr-2.0.3.tar.gz | |
test -e idr-${IDR_VERSION}.tar.gz || wget -nv $BEEHIVE | |
test -d idr-${IDR_VERSION} || tar -xf idr-${IDR_VERSION}.tar.gz | |
cd idr-${IDR_VERSION} | |
pip install . --prefix=$PREFIX | |
) | |
piplist; track IDR | |
# tidy up a bit | |
if [ -d $PREFIX/man/man1 ]; then | |
mv -v $PREFIX/man/man1/* $PREFIX/share/man/man1 || true | |
rm -rf $PREFIX/man | |
fi | |
# ------------------------------------------------------------ Sanity check | |
echo "# --------- *** SANITY CHECKS *** ---------" | |
# I guess it makes sense that files can be read by all users ... | |
echo "# 1) Check for unreadable files ..." | |
cd $PREFIX | |
for D in bin etc include lib share; do | |
find $D \! -perm -004 -exec chmod -c a+r {} + | |
done | |
# a cheap one :) | |
echo "# 2) Running pip check" | |
pip check | |
# load all packages, see warnings and spot installation errors | |
echo "# 3) Module load test." | |
export NUMEXPR_MAX_THREADS=1 | |
python -c 'help("modules")' | |
echo "# Note: reached end of load test" | |
echo "For Deeper checks:" | |
echo "cd ${BUILDDIR} ; git log --patch | grep ^[\+\-][^\+\-]" | |
exit | |
# -------------------------------------------------------- Included patches | |
#Epatch:pip # Operation 'Forever young', disable version-check per default. | |
#Epatch:pip # The option needs to be kept, because some tools make use of | |
#Epatch:pip # it and would cause pip to fail. | |
#Epatch:pip --- a/pip/_internal/cli/cmdoptions.py 2022-08-09 17:29:15.853442948 +0200 | |
#Epatch:pip +++ b/pip/_internal/cli/cmdoptions.py 2022-08-10 10:31:35.124945154 +0200 | |
#Epatch:pip @@ -892,7 +892,6 @@ | |
#Epatch:pip dest="disable_pip_version_check", | |
#Epatch:pip action="store_true", | |
#Epatch:pip - default=False, | |
#Epatch:pip - help="Don't periodically check PyPI to determine whether a new version " | |
#Epatch:pip - "of pip is available for download. Implied with --no-index.", | |
#Epatch:pip + default=True, | |
#Epatch:pip + help="Ignore this option, the version check IS disabled.", | |
#Epatch:pip ) | |
#Epatch:gyp --- a/pylib/gyp/generator/cmake.py | |
#Epatch:gyp +++ b/pylib/gyp/generator/cmake.py | |
#Epatch:gyp @@ -41,7 +41,7 @@ | |
#Epatch:gyp try: | |
#Epatch:gyp # maketrans moved to str in python3. | |
#Epatch:gyp + _maketrans = str.maketrans | |
#Epatch:gyp +except NameError: | |
#Epatch:gyp _maketrans = string.maketrans | |
#Epatch:gyp -except NameError: | |
#Epatch:gyp - _maketrans = str.maketrans | |
#Epatch:gyp generator_default_variables = { | |
#Epatch:gyp 'EXECUTABLE_PREFIX': '', | |
#Epatch:gyp @@ -283,2 +283,2 @@ | |
#Epatch:gyp if int(action.get('process_outputs_as_sources', False)): | |
#Epatch:gyp - extra_sources.extend(zip(cmake_outputs, outputs)) | |
#Epatch:gyp + extra_sources.extend(list(zip(cmake_outputs, outputs))) | |
#Epatch:gyp @@ -988,6 +988,6 @@ | |
#Epatch:gyp # XCode settings | |
#Epatch:gyp xcode_settings = config.get('xcode_settings', {}) | |
#Epatch:gyp - for xcode_setting, xcode_value in xcode_settings.viewitems(): | |
#Epatch:gyp + for xcode_setting, xcode_value in xcode_settings.items(): | |
#Epatch:gyp SetTargetProperty(output, cmake_target_name, | |
#Epatch:gyp "XCODE_ATTRIBUTE_%s" % xcode_setting, xcode_value, | |
#Epatch:gyp '' if isinstance(xcode_value, str) else ' ') | |
#Epatch:gyp diff --git a/pylib/gyp/input.py b/pylib/gyp/input.py | |
#Epatch:gyp index 4c12891..2bea334 100644 | |
#Epatch:gyp --- a/pylib/gyp/input.py | |
#Epatch:gyp +++ b/pylib/gyp/input.py | |
#Epatch:gyp @@ -1183,7 +1183,7 @@ | |
#Epatch:gyp if variable_name in variables: | |
#Epatch:gyp # If the variable is already set, don't set it. | |
#Epatch:gyp continue | |
#Epatch:gyp - if the_dict_key is 'variables' and variable_name in the_dict: | |
#Epatch:gyp + if the_dict_key == 'variables' and variable_name in the_dict: | |
#Epatch:gyp # If the variable is set without a % in the_dict, and the_dict is a | |
#Epatch:gyp # variables dict (making |variables| a varaibles sub-dict of a | |
#Epatch:gyp # variables dict), use the_dict's definition. | |
#Epatch:javabridge diff --git a/_javabridge_nomac.pyx b/_javabridge_nomac.pyx | |
#Epatch:javabridge index 9f28939..c437db0 100644 | |
#Epatch:javabridge --- a/_javabridge_nomac.pyx | |
#Epatch:javabridge +++ b/_javabridge_nomac.pyx | |
#Epatch:javabridge @@ -16,30 +16,30 @@ cdef extern from "jni.h": | |
#Epatch:javabridge jint (*AttachCurrentThreadAsDaemon)(JavaVM *vm, void *penv, void *args) nogil | |
#Epatch:javabridge jint JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args) nogil | |
#Epatch:javabridge | |
#Epatch:javabridge -cdef int MacStartVM(JavaVM **pvm, JavaVMInitArgs *pVMArgs, char *class_name) nogil: | |
#Epatch:javabridge +cdef extern int MacStartVM(JavaVM **pvm, JavaVMInitArgs *pVMArgs, char *class_name) nogil: | |
#Epatch:javabridge return -1 | |
#Epatch:javabridge | |
#Epatch:javabridge -cdef void StopVM(JavaVM *vm) nogil: | |
#Epatch:javabridge +cdef extern void StopVM(JavaVM *vm) nogil: | |
#Epatch:javabridge vm[0].DestroyJavaVM(vm) | |
#Epatch:javabridge | |
#Epatch:javabridge -cdef void MacRunLoopInit() nogil: | |
#Epatch:javabridge +cdef extern void MacRunLoopInit() nogil: | |
#Epatch:javabridge pass | |
#Epatch:javabridge | |
#Epatch:javabridge -cdef void MacRunLoopRun() nogil: | |
#Epatch:javabridge +cdef extern void MacRunLoopRun() nogil: | |
#Epatch:javabridge pass | |
#Epatch:javabridge | |
#Epatch:javabridge -cdef void MacRunLoopStop() nogil: | |
#Epatch:javabridge +cdef extern void MacRunLoopStop() nogil: | |
#Epatch:javabridge pass | |
#Epatch:javabridge | |
#Epatch:javabridge -cdef void MacRunLoopReset() nogil: | |
#Epatch:javabridge +cdef extern void MacRunLoopReset() nogil: | |
#Epatch:javabridge pass | |
#Epatch:javabridge | |
#Epatch:javabridge -cdef int MacIsMainThread() nogil: | |
#Epatch:javabridge +cdef extern int MacIsMainThread() nogil: | |
#Epatch:javabridge return 0 | |
#Epatch:javabridge | |
#Epatch:javabridge -cdef void MacRunLoopRunInMode(double timeout) nogil: | |
#Epatch:javabridge +cdef extern void MacRunLoopRunInMode(double timeout) nogil: | |
#Epatch:javabridge pass | |
#Epatch:javabridge | |
#Epatch:javabridge -cdef int CreateJavaVM(JavaVM **pvm, void **pEnv, void *args) nogil: | |
#Epatch:javabridge +cdef extern int CreateJavaVM(JavaVM **pvm, void **pEnv, void *args) nogil: | |
#Epatch:javabridge return JNI_CreateJavaVM(pvm, pEnv, args) | |
#Epatch:javabridge | |
#Epatch:javabridge diff --git a/_javabridge_mac.pyx b/_javabridge_mac.pyx | |
#Epatch:javabridge index 2e3c524..daed790 100644 | |
#Epatch:javabridge --- a/_javabridge_mac.pyx | |
#Epatch:javabridge +++ b/_javabridge_mac.pyx | |
#Epatch:javabridge @@ -31,11 +31,11 @@ cdef extern from "mac_javabridge_utils.h": | |
#Epatch:javabridge int MacIsMainThread() nogil | |
#Epatch:javabridge void MacRunLoopRunInMode(double) nogil | |
#Epatch:javabridge | |
#Epatch:javabridge -cdef void StopVM(JavaVM *vm): | |
#Epatch:javabridge +cdef extern void StopVM(JavaVM *vm): | |
#Epatch:javabridge MacStopVM() | |
#Epatch:javabridge | |
#Epatch:javabridge # | |
#Epatch:javabridge # Unused stub in Mac | |
#Epatch:javabridge # | |
#Epatch:javabridge -cdef int CreateJavaVM(JavaVM **pvm, void **pEnv, void *args): | |
#Epatch:javabridge +cdef extern int CreateJavaVM(JavaVM **pvm, void **pEnv, void *args): | |
#Epatch:javabridge return -1 | |
# -------------------------------------------------------- This is the end. | |