Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEniCS updates #963

Open
wants to merge 22 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
5daf4bf
petsc: fix when building with standard blas and lapack
johannesring Feb 25, 2016
a43a795
OS X fixes
johannesring Feb 25, 2016
4ffc7dc
scipy: add parameter to build with openblas
johannesring Feb 25, 2016
b549241
Merge remote-tracking branch 'upstream/master'
johannesring Feb 25, 2016
484a699
Add host packages for pip and py
johannesring Feb 26, 2016
4cb8ec1
pip: update to version 8.0.3
johannesring Feb 26, 2016
a043767
setuptools: update to version 20.1.1
johannesring Feb 26, 2016
96d8ff5
py: update to version 1.4.31
johannesring Feb 26, 2016
bbf2f77
vtk: add parameter vtk_wrap_python that build vtk without python if s…
johannesring Feb 26, 2016
3d6f803
Switch to setuptools for fenics python packages and update their depe…
johannesring Mar 4, 2016
7aa5101
pip: add 'bin' dir to PATH when build dependency
johannesring Mar 7, 2016
88716ea
Add base package for installing Python packages using pip
johannesring Mar 7, 2016
1d385d4
ffc: switch to pip_package and set UFC_DIR when build dependency
johannesring Mar 7, 2016
cdc31f1
Switch to pip_package for fiat, instant and ufl
johannesring Mar 8, 2016
246ffc6
patch for MAX_JBUFS in parmetis on OS X
minrk Apr 29, 2016
b0676af
Merge pull request #1 from minrk/parmetis
johannesring Apr 29, 2016
a7d2246
cython: use tarball from github
johannesring Jun 17, 2016
e92f0a4
Update FEniCS packages for 2016.1.0 release
johannesring Jun 23, 2016
2b3175d
Respect prologue in pip_package
johannesring Jun 29, 2016
53fd690
Merge remote-tracking branch 'upstream/master'
johannesring Jul 1, 2016
910f04e
Try to use trusty for travis and use libboost-all-dev for dolfin tests
johannesring Jul 12, 2016
ac4e52a
Automatic yes to prompts for apt-get
johannesring Jul 12, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 12 additions & 10 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,35 +17,37 @@ env:
- TEST_PROFILE="test.dolfin.yaml"
python:
- 2.7
sudo: required
dist: trusty
before_install:
- sudo apt-get update -qq
- sudo apt-get install gfortran pv
- sudo apt-get -y install gfortran pv
- if [[ "${TEST_PROFILE}" == "test.packages1.yaml" ]]; then
sudo apt-get install liblapack-dev;
sudo apt-get -y install liblapack-dev;
fi
- if [[ "${TEST_PROFILE}" == "test.packages2.yaml" ]]; then
sudo apt-get install mpich2 liblapack-dev;
sudo apt-get -y install mpich2 liblapack-dev;
fi
- if [[ "${TEST_PROFILE}" == "test.packages3.yaml" ]]; then
sudo apt-get install mpich2 liblapack-dev;
sudo apt-get -y install mpich2 liblapack-dev;
fi
- if [[ "${TEST_PROFILE}" == "test.cmake.yaml" ]]; then
sudo apt-get install mpich2;
sudo apt-get -y install mpich2;
fi
- if [[ "${TEST_PROFILE}" == "test.boost.yaml" ]]; then
sudo apt-get install mpich2;
sudo apt-get -y install mpich2;
fi
- if [[ "${TEST_PROFILE}" == "test.clawpack.gitsubmodules.yaml" ]]; then
sudo apt-get install liblapack-dev;
sudo apt-get -y install liblapack-dev;
fi
- if [[ "${TEST_PROFILE}" == "test.netcdf4.yaml" ]]; then
sudo apt-get install mpich2;
sudo apt-get -y install mpich2;
fi
- if [[ "${TEST_PROFILE}" == "test.host-scipy.yaml" ]]; then
sudo apt-get install python-scipy;
sudo apt-get -y install python-scipy;
fi
- if [[ "${TEST_PROFILE}" == "test.dolfin.yaml" ]]; then
sudo apt-get install cmake libopenmpi-dev python-dev libblas-dev liblapack-dev wget libboost-program-options1.48-dev libboost-filesystem1.48-dev libboost-serialization1.48-dev libboost-thread1.48-dev libboost-iostreams1.48-dev libboost-math1.48-dev libboost-timer1.48-dev libboost-chrono1.48-dev;
sudo apt-get -y install cmake libopenmpi-dev python-dev libblas-dev liblapack-dev wget libboost-all-dev;
fi
install:
- git clone https://github.com/hashdist/hashdist
Expand Down
3 changes: 3 additions & 0 deletions base/cmake_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ def configure(ctx, stage_args):
if stage_args.get('empty_osx_deployment_target', False):
conf_lines.append('-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=""')

if stage_args.get('cmake_osx_sysroot', False):
conf_lines.append('-DCMAKE_OSX_SYSROOT:STRING=%s' % stage_args['cmake_osx_sysroot'])

#cmake needs to be given all the dependency dirs as prefix paths
#so that we search the hashdist directories before the system directories
#CMake doesn't use the CPPFLAGS implicitly to find libraries
Expand Down
2 changes: 2 additions & 0 deletions base/cmake_package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ build_stages:
- name: configure
after: setup_builddir
debug: {{debug}}
empty_osx_deployment_target: {{empty_osx_deployment_target}}
cmake_osx_sysroot: {{cmake_osx_sysroot}}

- name: make
after: configure
Expand Down
29 changes: 29 additions & 0 deletions base/pip_package.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# pip_package.yaml
# Use for installing Python packages using pip.

extends: [base_package]

dependencies:
build: [python, pip, setuptools]
run: [python, pip, setuptools]

build_stages:
- name: install
after: prologue
handler: bash
bash: |
pip install --verbose --no-deps --upgrade --prefix=${ARTIFACT} .

profile_links:
- name: python_packages
link: 'lib/python{{pyver}}/site-packages/*'
dirs: true

- name: python_exclude
after: python_packages
before: everything
exclude: 'lib/python{{pyver}}/site-packages/**/*'

when_build_dependency:
- prepend_path: PYTHONPATH
value: '${ARTIFACT}/lib/python{{pyver}}/site-packages'
4 changes: 2 additions & 2 deletions pkgs/cython.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
extends: [distutils_package]

sources:
- key: tar.gz:lebhjlenxupgftdz3fhlfyxuvzqm5ki2
url: http://cython.org/release/Cython-0.23.3.tar.gz
- key: tar.gz:iqajqxtqrijqcfgww7vbkl7dxpgmj333
url: https://github.com/cython/cython/archive/0.23.3.tar.gz

when_build_dependency:
- prepend_path: PATH
Expand Down
8 changes: 8 additions & 0 deletions pkgs/dijitso.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
extends: [pip_package]
dependencies:
build: [mpi4py, numpy, six]
run: [mpi4py, numpy, six]

sources:
- key: tar.gz:amakzmnzx6kojxrgbznuf5jklopvcwsw
url: https://bitbucket.org/fenics-project/dijitso/downloads/dijitso-2016.1.0.tar.gz
9 changes: 6 additions & 3 deletions pkgs/dolfin/dolfin.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ dependencies:
run: [ply]

sources:
- key: tar.gz:m7vkyx7m43tr3icvtngkqqrrk346tguv
url: https://bitbucket.org/fenics-project/dolfin/downloads/dolfin-1.6.0.tar.gz
- key: tar.gz:miuljvsbqknezuzbig742il2cwlke7kz
url: https://bitbucket.org/fenics-project/dolfin/downloads/dolfin-2016.1.0.tar.gz

defaults:
# share/dolfin/DOLFINConfig.cmake contains hard-coded path
Expand Down Expand Up @@ -57,7 +57,10 @@ build_stages:
after: install
handler: bash
bash: |
# FIXME: use install_name_tool to fix rpath
for lib in ${ARTIFACT}/lib/python{{pyver}}/site-packages/dolfin/cpp/_*.so; do
install_name_tool -add_rpath ${BOOST_DIR}/lib ${lib}
install_name_tool -add_rpath ${VTK_DIR}/lib/vtk-5.10 ${lib}
done

- when: platform == 'Cygwin'
name: dll_fix
Expand Down
12 changes: 7 additions & 5 deletions pkgs/ffc.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
extends: [distutils_package]
extends: [pip_package]
dependencies:
build: [numpy, swig]
run: [fiat, instant, numpy, six, ufl]
build: [fiat, instant, numpy, six, ufl, swig]
run: [fiat, instant, numpy, six, ufl, swig]

sources:
- key: tar.gz:haxhoe76owljjzpqoudlcrho5llidylj
url: https://bitbucket.org/fenics-project/ffc/downloads/ffc-1.6.0.tar.gz
- key: tar.gz:kjbqzzgh2v6odoa6wx5tasmser6jis6g
url: https://bitbucket.org/fenics-project/ffc/downloads/ffc-2016.1.0.tar.gz

defaults:
# share/ufc/UFCConfig.cmake contains hard-coded path
Expand All @@ -14,3 +14,5 @@ defaults:
when_build_dependency:
- prepend_path: PATH
value: '${ARTIFACT}/bin'
- set: UFC_DIR
value: '${ARTIFACT}'
8 changes: 4 additions & 4 deletions pkgs/fiat.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
extends: [setuptools_package]
extends: [pip_package]
dependencies:
build: []
build: [numpy, sympy]
run: [numpy, sympy]

sources:
- key: tar.gz:qwhkh2jwvu5tkwfuot74zlukpoo53ovp
url: https://bitbucket.org/fenics-project/fiat/downloads/fiat-1.6.0.tar.gz
- key: tar.gz:qulsgetkog6bvyw4jllosmyl3g2u2uw3
url: https://bitbucket.org/fenics-project/fiat/downloads/fiat-2016.1.0.tar.gz
10 changes: 10 additions & 0 deletions pkgs/host-pip.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
build_stages:
- handler: bash
bash: |
mkdir -p ${ARTIFACT}/{{python_site_packages_rel}}
ln -s {{python_host_packages}}/pip ${ARTIFACT}/{{python_site_packages_rel}}

profile_links:
- name: python_packages
link: '{{python_site_packages_rel}}/*'
dirs: true
10 changes: 10 additions & 0 deletions pkgs/host-py.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
build_stages:
- handler: bash
bash: |
mkdir -p ${ARTIFACT}/{{python_site_packages_rel}}
ln -s {{python_host_packages}}/py ${ARTIFACT}/{{python_site_packages_rel}}

profile_links:
- name: python_packages
link: '{{python_site_packages_rel}}/*'
dirs: true
7 changes: 4 additions & 3 deletions pkgs/instant.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
extends: [distutils_package]
extends: [pip_package]
dependencies:
build: [numpy]
run: [cmake, flufl_lock, numpy, swig]

sources:
- key: tar.gz:end6aiuvggljbfmrd7nr3yyl2555274b
url: https://bitbucket.org/fenics-project/instant/downloads/instant-1.6.0.tar.gz
- key: tar.gz:ppydzct3mh6r4qzlr45aibkbbltirexl
url: https://bitbucket.org/fenics-project/instant/downloads/instant-2016.1.0.tar.gz
4 changes: 2 additions & 2 deletions pkgs/mshr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ dependencies:
build: [python, boost, dolfin, gmp, mpfr, mpi, swig, {{build_with}}]

sources:
- key: tar.gz:afm2l4z7m53oxkxxf4dsfxmth4jnxmsg
url: https://bitbucket.org/fenics-project/mshr/downloads/mshr-1.6.0.tar.gz
- key: tar.gz:5ehq6cmiyeclibycpkxslq2h7jxjtrf7
url: https://bitbucket.org/fenics-project/mshr/downloads/mshr-2016.1.0.tar.gz

defaults:
# lib/CMake/mshr/mshr-config.cmake contains hard-coded path
Expand Down
5 changes: 4 additions & 1 deletion pkgs/parmetis/parmetis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,10 @@ build_stages:
before: configure
handler: bash
bash: |
CMAKE_FLAGS="${CMAKE_FLAGS} -DCMAKE_MACOSX_RPATH:BOOL=ON"
CMAKE_FLAGS="
${CMAKE_FLAGS}
-DCMAKE_MACOSX_RPATH:BOOL=ON
-DCMAKE_OSX_SYSROOT:STRING=/"

- name: configure
after: cmake-flags
Expand Down
4 changes: 2 additions & 2 deletions pkgs/petsc/petsc.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ def configure(ctx, stage_args):
# Special case, no meaningful BLAS/LAPACK directories when using Accelerate

if ctx.parameters['platform'] != 'Darwin':
conf_lines.append('--with-blas-dir=$BLAS_DIR')
conf_lines.append('--with-lapack-dir=$LAPACK_DIR')
conf_lines.append('--with-blas-lib=$BLAS_DIR/lib/libblas.so')
conf_lines.append('--with-lapack-lib=$LAPACK_DIR/lib/liblapack.so')

# Special case, ParMETIS also provides METIS
if 'PARMETIS' in ctx.dependency_dir_vars:
Expand Down
2 changes: 1 addition & 1 deletion pkgs/petsc/petsc.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
extends: [autotools_package]
dependencies:
build: [blas, mpi, python, {{build_with}}]
build: [blas, lapack, mpi, python, {{build_with}}]

when version == '3.6.1':
sources:
Expand Down
12 changes: 6 additions & 6 deletions pkgs/pip.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
extends: [setuptools_package]

dependencies:
build: []
run: []

sources:
- key: tar.gz:zichtbxqkkgpvf22ct5z67yqmjy5jygd
url: https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz
- key: tar.gz:gd4ywzxt7yigtrjjusivs7juuhbcjjug
url: https://pypi.python.org/packages/source/p/pip/pip-8.0.3.tar.gz

when_build_dependency:
- prepend_path: PATH
value: '${ARTIFACT}/bin'
4 changes: 2 additions & 2 deletions pkgs/py.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
extends: [setuptools_package]

sources:
- url: https://pypi.python.org/packages/source/p/py/py-1.4.29.tar.gz
key: tar.gz:e6pbc4rt6ic54hsg5q3ow772lgm7dpct
- key: tar.gz:uzibsy6hex6ckvg2x7worlu2r626csoa
url: https://pypi.python.org/packages/source/p/py/py-1.4.31.tar.gz
31 changes: 28 additions & 3 deletions pkgs/scipy/scipy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,19 @@ when platform != 'linux':
when platform == 'linux':
extends: [distutils_package, libflags]
dependencies:
build: [lapack, numpy]
run: [lapack, numpy]
build: [blas, lapack, numpy]
run: [blas, lapack, numpy]

sources:
- url: http://downloads.sourceforge.net/scipy/scipy-0.13.3.tar.gz
key: tar.gz:vhrty7xamdbvzvog5y5mtzpjxo4zegox

defaults:
# Build with OpenBLAS
with_openblas: false

build_stages:
- when: platform == 'linux'
- when: platform == 'linux' and not with_openblas
name: set-lapack-paths
after: libflags
before: install
Expand All @@ -21,3 +25,24 @@ build_stages:
export ATLAS=$LAPACK_DIR
export BLAS=$LAPACK_DIR
export LAPACK=$LAPACK_DIR

- when: platform == 'linux' and with_openblas
name: set-lapack-paths
after: libflags
before: install
handler: bash
bash: |
export LDFLAGS="-shared -Wl,-rpath=${PYTHON_DIR}/lib -Wl,-rpath=${BLAS_DIR}/lib $(${PYTHON_DIR}/bin/python-config --ldflags)"
#export ATLAS=None
export LAPACK=${BLAS_DIR}/lib/libopenblas.so
export BLAS=${BLAS_DIR}/lib/libopenblas.so

# Make sure that the fortran objects are compiled with -fPIC
- when: platform == 'linux'
name: compile-fc-with-fPIC
after: setup_dirs
before: install
handler: bash
bash: |
export FFLAGS="$FFLAGS -fPIC"
export FCFLAGS="$FCFLAGS -fPIC"
8 changes: 4 additions & 4 deletions pkgs/ufl.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
extends: [distutils_package]
extends: [pip_package]
dependencies:
build: []
build: [numpy, six]
run: [numpy, six]

sources:
- key: tar.gz:y5oepapfcbcqj4kyznbm3b5m575jauxi
url: https://bitbucket.org/fenics-project/ufl/downloads/ufl-1.6.0.tar.gz
- key: tar.gz:rxgp4egreun2jcsniosmnse2xydwhebc
url: https://bitbucket.org/fenics-project/ufl/downloads/ufl-2016.1.0.tar.gz
6 changes: 3 additions & 3 deletions pkgs/uflacs.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends: [distutils_package]
extends: [setuptools_package]
dependencies:
build: []
run: [ffc, numpy, six, ufl]
build: [numpy, six, ufl]
run: [numpy, six, ufl]

sources:
- key: tar.gz:x2ybjis6ms5zjw3hodnelft2gsq32t4x
Expand Down
Loading