33# Exit on error, unset variable, or pipe failure
44set -euo pipefail
55
6- # This will be empty for nightly test, and we will clone master branch
7- FLUX_RELEASE_VERSION=${FLUX_RELEASE_VERSION:- 0.78.0}
8- FLUX_VERSION=${FLUX_VERSION:- 0.78.0}
6+ # This must be set
7+ PYTHON_VERSION=${1:- py311}
8+
9+ # These will be empty for nightly test, and we will clone master branch
10+ FLUX_RELEASE_VERSION=${2:- 0.78.0}
11+ FLUX_VERSION=${3:- 0.78.0}
912
1013if [[ " $( uname) " == " Darwin" ]]; then
1114 brew install \
@@ -18,35 +21,26 @@ if [[ "$(uname)" == "Darwin" ]]; then
1821 libev \
1922 zeromq \
2023 jansson \
21- lz4 \
2224 libarchive \
23- hwloc \
24- sqlite \
25- lua \
26- luarocks \
27- cffi \
28- libyaml \
29- jq
25+ hwloc
3026
3127 # Possibility - install munge with MacPorts
3228 # sudo port install munge
3329 eval " $( /opt/homebrew/bin/brew shellenv) "
3430
3531 # Set the dynamic library path variable for macOS
3632 export DYLD_LIBRARY_PATH=/usr/local/lib
37-
33+
3834 # Ensure we activate micromamabe that has a pinned version
39- PIP_INSTALL=" /opt/conda/bin/python3 -m pip install"
4035 ln -s $( which glibtoolize) /usr/local/bin/libtoolize
4136
4237 CPPFLAGS=" -I${HOMEBREW_PREFIX} /include/lua"
4338 CPPFLAGS=" -I$( brew --prefix libev) /include ${CPPFLAGS} "
4439 CPPFLAGS=" -I$( brew --prefix epoll-shim) /include/libepoll-shim ${CPPFLAGS} "
45- # LDFLAGS=-L${HOMEBREW_PREFIX}/lib
40+
4641 PKG_CONFIG_PATH=$( pkg-config --variable pc_path pkg-config)
4742 PKG_CONFIG_PATH=$( brew --prefix libarchive) /lib/pkgconfig:${PKG_CONFIG_PATH}
4843 PATH=$( brew --prefix libtool) /libexec/gnubin:$PATH
49- export LD_LIBRARY_PATH=" /opt/conda/envs/build/lib:/opt/conda/envs/build/lib64"
5044
5145# Linux block!
5246else
7670 libs3-dev \
7771 libevent-dev \
7872 libarchive-dev \
79- python3-sphinx \
80- python3-cffi \
8173 libtool \
8274 git \
8375 build-essential \
8678 sudo rm -rf /var/lib/apt/lists/*
8779 sudo ldconfig
8880
89- # Set the dynamic library path variable for Linux. The conda path is for the container.
90- export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/opt/conda/envs/build/lib
81+ # Set the dynamic library path variable for Linux.
82+ export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib
83+ echo " LD_LIBRARY_PATH: ${LD_LIBRARY_PATH} "
9184fi
9285
93- # Ensure we find micromamba environment first
94- # mamba init commands are intolerable so let's do basics ourselves.
95- PIP_INSTALL=" /opt/conda/envs/build/bin/python3 -m pip install"
96- export PATH=" /opt/conda/envs/build/bin:$PATH "
97- export PYTHONPATH=$( find /opt/conda/envs/build -name site-packages)
98- export PYTHON=/opt/conda/envs/build/bin/python3
99- export PYTHON_PREFIX=${PYTHONPATH}
100- export PYTHON_EXEC_PREFIX=${PYTHONPATH}
101- # export LIBS="-L/opt/conda/envs/build/lib:/opt/conda/envs/build/lib64"
102-
10386echo " Found Python $( which python3) "
104- echo " PYTHONPATH: ${PATH} "
10587echo " PATH: ${PATH} "
106- echo " LD_LIBRARY_PATH: ${LD_LIBRARY_PATH} "
10788
10889# Here we can start common setup (we hope)
10990echo " Flux Version for pypi is ${FLUX_VERSION} "
11091if [[ " $( uname) " == " Darwin" ]]; then
92+ PIXI_ROOT=/Users/runner/work/flux-python/flux-python/.pixi
11193 sed -i ' ' " s/package_version = \" develop\" /package_version = \" $FLUX_VERSION \" /" setup.py
94+ echo $( find /Users/runner/ -name python3) || echo $( find /Users/runner/ -name python)
95+ export PYTHON=${PIXI_ROOT} /envs/${PYTHON_VERSION} /bin/python3
96+ # Tell where to look for lua.h
97+ CPPFLAGS=" -I${PIXI_ROOT} /envs/${PYTHON_VERSION} /include ${CPPFLAGS} "
98+ export PYTHONPATH=$( find ${PIXI_ROOT} /envs/${PYTHON_VERSION} /lib/ -name site-packages)
11299else
100+ PIXI_ROOT=/home/runner/work/flux-python/flux-python/.pixi
113101 sed -i " s/package_version = \" develop\" /package_version = \" $FLUX_VERSION \" /" setup.py
102+ CPPFLAGS=" -I${PIXI_ROOT} /envs/${PYTHON_VERSION} /include"
114103fi
115104
105+ # Can we remove need for setuptools?
106+ export PYTHON=${PIXI_ROOT} /envs/${PYTHON_VERSION} /bin/python3
107+ export PYTHON_NOVERSIONCHECK=yes
108+ export LUA_CFLAGS=" -I${PIXI_ROOT} /envs/${PYTHON_VERSION} /include"
109+ export LDFLAGS=" -L$PIXI_ROOT /envs/${PYTHON_VERSION} /lib -L$PIXI_ROOT /envs/${PYTHON_VERSION} /lib64"
110+
111+ echo " Found lua.h in $( find ${PIXI_ROOT} -name lua.h) " || echo " Did not find lua.h"
112+
116113# Store current directory
117114here=$( pwd)
115+ luarocks install luaposix
118116
119- # Install Python requirements using the OS-specific pip command - allow for ubuntu to be 24.04 or not.
120- # I like how "--break-system-packages" is analogous with --i-acknowledge-i-am-a-terrible-person
121- if [[ " $( uname) " == " Darwin" ]]; then
122- echo " Installing python requirements for MacOS"
123- ${PIP_INSTALL} IPython setuptools ply sphinx cffi pyyaml
124- ${PIP_INSTALL} -r .github/scripts/requirements-dev.txt
125- else
126- echo " Installing python requirements for Linux"
127- ${PIP_INSTALL} IPython pyyaml || ${PIP_INSTALL} IPython --break-system-packages pyyaml
128- ${PIP_INSTALL} -r .github/scripts/requirements-dev.txt || ${PIP_INSTALL} -r .github/scripts/requirements-dev.txt --break-system-packages
129-
130- # Flux Security --
131- # Does not have a variant for Mac
117+ # Flux Security --
118+ # Does not have a variant for Mac
119+ if [[ " $( uname) " != " Darwin" ]]; then
132120 git clone https://github.com/flux-framework/flux-security ~ /security
133121 cd ~ /security
134122 ./autogen.sh
135- PYTHON_PREFIX=PYTHON_EXEC_PREFIX= ${PYTHON_PREFIX} PYTHON=/opt/conda/bin/python3 ./configure --prefix=/usr/local
123+ ./configure --prefix=/usr/local
136124 make
137125 sudo make install
138126 sudo ldconfig
@@ -149,11 +137,11 @@ chmod +x etc/gen-cmdhelp.py
149137./autogen.sh || echo " No autogen here"
150138
151139if [[ " $( uname) " == " Darwin" ]]; then
152- CPPFLAGS=" $CPPFLAGS " PKG_CONFIG_PATH=$PKG_CONFIG_PATH ./configure --prefix=/usr/local
140+ CPPFLAGS=" $CPPFLAGS " CFLAGS= " ${CPPFLAGS} " LDFLAGS= " ${LDFLAGS} " PKG_CONFIG_PATH=$PKG_CONFIG_PATH ./configure --prefix=/usr/local
153141 ls ./scripts
154142 ./scripts/check-macos.sh || echo " No check-macos.sh"
155143else
156- ./configure --prefix=/usr/local
144+ ./configure CPPFLAGS= " $CPPFLAGS " CFLAGS= " ${CPPFLAGS} " LDFLAGS= " ${LDFLAGS} " --prefix=/usr/local
157145 make VERBOSE=1
158146 sudo make install || true
159147 sudo make install
0 commit comments