forked from M-Labs/nix-scripts
70 lines
1.8 KiB
Nix
70 lines
1.8 KiB
Nix
{ pkgs, conda-llvm-or1k, version, src }:
|
|
|
|
let
|
|
condaBuilderEnv = import ./builder-env.nix { inherit pkgs; };
|
|
fake-src = pkgs.runCommand "conda-fake-source-llvmlite-artiq" { }
|
|
''
|
|
mkdir -p $out/fake-conda;
|
|
|
|
# work around yet more idiotic conda behavior - build breaks if write permissions aren't set on source files.
|
|
cp --no-preserve=mode,ownership -R ${src} workaround-conda
|
|
pushd workaround-conda
|
|
tar cf $out/src.tar .
|
|
popd
|
|
rm -rf workaround-conda
|
|
|
|
cat << EOF > $out/fake-conda/meta.yaml
|
|
package:
|
|
name: llvmlite-artiq
|
|
version: ${version}
|
|
|
|
source:
|
|
url: ../src.tar
|
|
|
|
# Again, we don't specify build dependencies since the conda garbage mistakenly thinks
|
|
# that they are not there if they have been installed from files.
|
|
requirements:
|
|
run:
|
|
- python<3.8
|
|
- ncurses [linux]
|
|
EOF
|
|
|
|
cat << EOF > $out/fake-conda/build.sh
|
|
#!/bin/bash
|
|
set -e
|
|
|
|
export LD_LIBRARY_PATH=/lib
|
|
python setup.py install \
|
|
--prefix=\$PREFIX \
|
|
--single-version-externally-managed \
|
|
--record=record.txt \
|
|
--no-compile
|
|
|
|
EOF
|
|
chmod 755 $out/fake-conda/build.sh
|
|
'';
|
|
in
|
|
pkgs.stdenv.mkDerivation {
|
|
name = "conda-llvmlite-artiq";
|
|
src = fake-src;
|
|
buildCommand =
|
|
''
|
|
HOME=`pwd`
|
|
mkdir $out
|
|
cat << EOF > conda-commands.sh
|
|
set -e
|
|
|
|
conda create --prefix ./conda_tmp ${conda-llvm-or1k}/*/*.tar.bz2
|
|
conda init
|
|
source .bashrc
|
|
conda activate ./conda_tmp
|
|
|
|
conda build --no-anaconda-upload --no-test --output-folder $out $src/fake-conda
|
|
EOF
|
|
${condaBuilderEnv}/bin/conda-builder-env conda-commands.sh
|
|
|
|
mkdir -p $out/nix-support
|
|
echo file conda $out/*/*.tar.bz2 >> $out/nix-support/hydra-build-products
|
|
'';
|
|
}
|