Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
ad35a53e
Commit
ad35a53e
authored
Jul 21, 2014
by
peastman
Browse files
Merge pull request #522 from kyleabeauchamp/vagrant
[WIP] Virtual Machine for Centos 6.5 Build
parents
f7127d33
6ddb633c
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
159 additions
and
2 deletions
+159
-2
devtools/build-vm/linux/Vagrantfile
devtools/build-vm/linux/Vagrantfile
+88
-0
devtools/build-vm/linux/build_conda_package_vagrant.sh
devtools/build-vm/linux/build_conda_package_vagrant.sh
+8
-0
devtools/build-vm/linux/setup_centos_vm.sh
devtools/build-vm/linux/setup_centos_vm.sh
+60
-0
devtools/conda-recipe/build.sh
devtools/conda-recipe/build.sh
+2
-2
devtools/conda-recipe/meta.yaml
devtools/conda-recipe/meta.yaml
+1
-0
No files found.
devtools/build-vm/linux/Vagrantfile
0 → 100644
View file @
ad35a53e
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION
=
"2"
Vagrant
.
configure
(
VAGRANTFILE_API_VERSION
)
do
|
config
|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of.
config
.
vm
.
box
=
"chef/centos-6.5"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network "private_network", ip: "192.168.33.10"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"
# If true, then any SSH connections made will enable agent forwarding.
# Default value: false
# config.ssh.forward_agent = true
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
# config.vm.provider "virtualbox" do |vb|
# # Don't boot with headless mode
# vb.gui = true
#
# # Use VBoxManage to customize the VM. For example to change memory:
# vb.customize ["modifyvm", :id, "--memory", "1024"]
# end
#
# View the documentation for the provider you're using for more
# information on available options.
# Enable provisioning with CFEngine. CFEngine Community packages are
# automatically installed. For example, configure the host as a
# policy server and optionally a policy file to run:
#
# config.vm.provision "cfengine" do |cf|
# cf.am_policy_hub = true
# # cf.run_file = "motd.cf"
# end
#
# You can also configure and bootstrap a client to an existing
# policy server:
#
# config.vm.provision "cfengine" do |cf|
# cf.policy_server_address = "10.0.2.15"
# end
# Enable provisioning with Puppet stand alone. Puppet manifests
# are contained in a directory path relative to this Vagrantfile.
# You will need to create the manifests directory and a manifest in
# the file default.pp in the manifests_path directory.
#
# config.vm.provision "puppet" do |puppet|
# puppet.manifests_path = "manifests"
# puppet.manifest_file = "site.pp"
# end
config
.
vm
.
provision
"shell"
,
inline:
"su -c 'source /vagrant/setup_centos_vm.sh' vagrant"
end
devtools/build-vm/linux/build_conda_package_vagrant.sh
0 → 100644
View file @
ad35a53e
export
PATH
=
$HOME
/miniconda/bin:
$PATH
export
SWIG_LIB
=
$HOME
/miniconda/share/swig/
export
CC
=
"clang++"
git clone
-b
vagrant https://github.com/simtk/openmm.git
cd
openmm
conda
install
--file
tools/ci/requirements-conda.txt
--yes
conda build tools/conda-recipe
devtools/build-vm/linux/setup_centos_vm.sh
0 → 100644
View file @
ad35a53e
# Prepare a vagrant CentOS 6.5 VM for building OpenMM
# Needs latest version of vagrant to auto-download the chef package
#vagrant init chef/centos-6.5
#vagrant up
#vagrant ssh
# Download and enable the EPEL RedHat EL extras repository
mkdir
~/Software
cd
Software
sudo
yum
install
wget
-y
wget http://mirror.umd.edu/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
sudo
rpm
-i
epel-release-6-8.noarch.rpm
sudo
yum update
-y
# Several of these come from the EPEL repo
sudo
yum
install
clang-3.4 cmake28 graphviz perl flex bison rpm-build texlive texlive-latex ghostscript gcc gcc-c++ git vim
-y
# Probably can't use RHEL6 version of doxygen because it's very old.
wget http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.7.src.tar.gz
rpmbuild
-ta
doxygen-1.8.7.src.tar.gz
sudo
rpm
-i
~/rpmbuild/RPMS/x86_64/doxygen-1.8.7-1.x86_64.rpm
rm
~/rpmbuild
-r
sudo
yum clean headers
sudo
yum clean packages
# Install CUDA6 for RHEL6
cd
~/Software
wget http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-6.0-37.x86_64.rpm
sudo
rpm
-i
cuda-repo-rhel6-6.0-37.x86_64.rpm
sudo
yum clean expire-cache
sudo
yum
install
cuda
-y
rm
cuda-repo-rhel6-6.0-37.x86_64.rpm
# Install Conda
cd
~/Software
wget http://repo.continuum.io/miniconda/Miniconda-3.0.5-Linux-x86_64.sh
bash Miniconda-3.0.5-Linux-x86_64.sh
-b
# So there is a bug in some versions of anaconda where the path to swig files is HARDCODED. Below is workaround. See https://github.com/ContinuumIO/anaconda-issues/issues/48
sudo ln
-s
~/miniconda/ /opt/anaconda1anaconda2anaconda3
export
PATH
=
$HOME
/miniconda/bin:
$PATH
conda config
--add
channels http://conda.binstar.org/omnia
conda
install
--yes
fftw3f jinja2 swig sphinx conda-build cmake
# Download AMD APP SDK from here, requires click agreement: http://developer.amd.com/amd-license-agreement-appsdk/
# Ideally we could cache this on AWS or something...
mkdir
~/Software/AMD
cd
~/Software/AMD
# Copy the tarball to this directory from wherever you got it.
cp
/vagrant/AMD-APP-SDK-v2.9-lnx64.tgz ./
tar
-zxvf
/vagrant/AMD-APP-SDK-v2.9-lnx64.tgz
sudo
./Install-AMD-APP.sh
devtools/conda-recipe/build.sh
View file @
ad35a53e
...
...
@@ -6,7 +6,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then
# setting the rpath so that libOpenMMPME.so finds the right libfftw3
CMAKE_FLAGS+
=
" -DCMAKE_INSTALL_RPATH=.."
CMAKE_FLAGS+
=
" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++"
#
CMAKE_FLAGS+=" -DOPENCL_LIBRARY=/opt/AMDAPP/lib/x86_64/libOpenCL.so" # TEST
CMAKE_FLAGS+
=
" -DOPENCL_LIBRARY=/opt/AMDAPP/lib/x86_64/libOpenCL.so"
# TEST
elif
[[
"
$OSTYPE
"
==
"darwin"
*
]]
;
then
export
MACOSX_DEPLOYMENT_TARGET
=
"10.7"
...
...
@@ -36,7 +36,7 @@ make install
# Run C tests.
# Exclude OpenCL tests because @peastman suspects mesa on travis implementation is broken.
# @jchodera and @pgrinaway suspect travis is working, but AMD OpenCL tests are actually failing due to a bug.
ctest
-j2
-V
-E
"[A-Za-z]+OpenCL[A-Za-z]+"
#
ctest -j2 -V -E "[A-Za-z]+OpenCL[A-Za-z]+"
# Install Python wrappers.
export
OPENMM_INCLUDE_PATH
=
$PREFIX
/include
...
...
devtools/conda-recipe/meta.yaml
View file @
ad35a53e
...
...
@@ -7,6 +7,7 @@ requirements:
-
cmake
-
python
-
fftw3f
-
swig
run
:
-
python
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment