Vagrant/Fabric setup for testing Ubuntu, FreeBSD
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
target
|
*.pyc
|
||||||
Cargo.lock
|
Cargo.lock
|
||||||
rust-bindgen
|
rust-bindgen
|
||||||
|
target
|
||||||
|
|||||||
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
## Mac OS X
|
## Mac OS X
|
||||||
|
|
||||||
|
[Homebrew](http://brew.sh) is the easiest way to install everything on Mac.
|
||||||
|
|
||||||
1. Install Xcode
|
1. Install Xcode
|
||||||
1. Install Homebrew
|
1. Install Homebrew
|
||||||
1. Install Git
|
|
||||||
1. Install Rust and Cargo
|
1. Install Rust and Cargo
|
||||||
1. Install ImageMagick
|
1. Install ImageMagick
|
||||||
|
|
||||||
```
|
```
|
||||||
$ xcode-select --install
|
$ xcode-select --install
|
||||||
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||||
$ brew install git
|
|
||||||
$ brew install rust
|
$ brew install rust
|
||||||
$ brew install imagemagick
|
$ brew install imagemagick
|
||||||
```
|
```
|
||||||
@ -20,51 +20,21 @@ Then build in the usual manner, as shown in the `README.md` file (i.e. `cargo bu
|
|||||||
|
|
||||||
## FreeBSD
|
## FreeBSD
|
||||||
|
|
||||||
1. Install Git
|
|
||||||
1. Install Rust
|
1. Install Rust
|
||||||
1. Install Cargo
|
1. Install Cargo
|
||||||
1. Install ImageMagick
|
1. Install ImageMagick
|
||||||
1. Install the Clang libraries
|
1. Install the Clang libraries
|
||||||
|
|
||||||
```
|
See the FreeBSD `fabfile.py` for an example of how to install everything. In particular, note that it may be necessary to set `LIBCLANG_PATH` to the path containing the `libclang.so` library.
|
||||||
$ sudo pkg install -y git
|
|
||||||
$ sudo pkg install -y rust
|
|
||||||
$ sudo pkg install -y cargo
|
|
||||||
$ sudo pkg install -y ImageMagick-nox11
|
|
||||||
$ sudo pkg install -y clang-devel
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building
|
Then build in the usual manner, as shown in the `README.md` file (i.e. `cargo build` and `cargo test`).
|
||||||
|
|
||||||
The rust-bindgen tool (or one of its dependencies) needs a little help finding the Clang library during the build process, so set `LIBCLANG_PATH` to the path of `libclang.so`. The steps below work for FreeBSD 10.2.
|
|
||||||
|
|
||||||
```
|
|
||||||
$ setenv LIBCLANG_PATH /usr/local/llvm-devel/lib
|
|
||||||
$ cargo build
|
|
||||||
$ cargo test
|
|
||||||
```
|
|
||||||
|
|
||||||
## Ubuntu Linux
|
## Ubuntu Linux
|
||||||
|
|
||||||
1. Install Git
|
|
||||||
1. Install Rust and Cargo
|
1. Install Rust and Cargo
|
||||||
1. Install ImageMagick
|
1. Install ImageMagick
|
||||||
1. Install the Clang libraries
|
1. Install the Clang libraries
|
||||||
|
|
||||||
These steps are known to work for Ubuntu Linux 14.04 LTS.
|
See the Ubuntu `fabfile.py` for an example of how to install everything.
|
||||||
|
|
||||||
```
|
Then build in the usual manner, as shown in the `README.md` file (i.e. `cargo build` and `cargo test`). If running the tests fails because the MagickWand library cannot be found, try rebuilding the ldconfig cache (`sudo ldconfig`).
|
||||||
$ sudo apt-get install git
|
|
||||||
$ curl -sSf https://static.rust-lang.org/rustup.sh | sh
|
|
||||||
$ sudo apt-get build-dep imagemagick
|
|
||||||
$ wget http://www.imagemagick.org/download/ImageMagick.tar.gz
|
|
||||||
$ tar zxf ImageMagick.tar.gz
|
|
||||||
$ cd ImageMagick-*
|
|
||||||
$ ./configure
|
|
||||||
$ make
|
|
||||||
$ sudo make install
|
|
||||||
$ cd ..
|
|
||||||
$ sudo apt-get install libclang-dev
|
|
||||||
```
|
|
||||||
|
|
||||||
Then build in the usual manner, as shown in the `README.md` file (i.e. `cargo build` and `cargo test`).
|
|
||||||
|
|||||||
1
vagrant/freebsd10/.gitignore
vendored
Normal file
1
vagrant/freebsd10/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh_config
|
||||||
13
vagrant/freebsd10/Vagrantfile
vendored
13
vagrant/freebsd10/Vagrantfile
vendored
@ -3,7 +3,9 @@
|
|||||||
#
|
#
|
||||||
Vagrant.configure(2) do |config|
|
Vagrant.configure(2) do |config|
|
||||||
|
|
||||||
config.vm.box = "freebsd/FreeBSD-10.2-RELEASE"
|
config.ssh.shell = 'sh'
|
||||||
|
|
||||||
|
config.vm.box = 'freebsd/FreeBSD-10.2-RELEASE'
|
||||||
|
|
||||||
# this box needs a MAC address
|
# this box needs a MAC address
|
||||||
config.vm.base_mac = '0800273E2877'
|
config.vm.base_mac = '0800273E2877'
|
||||||
@ -13,11 +15,14 @@ Vagrant.configure(2) do |config|
|
|||||||
vb.memory = 2048
|
vb.memory = 2048
|
||||||
end
|
end
|
||||||
|
|
||||||
|
config.vm.synced_folder '.', '/vagrant', disabled: true
|
||||||
|
config.vbguest.auto_update = false
|
||||||
|
|
||||||
# bring the system up to date
|
# bring the system up to date
|
||||||
config.vm.provision "shell", inline: <<-SHELL
|
config.vm.provision 'shell', privileged: false, inline: <<-SHELL
|
||||||
sudo freebsd-update fetch install
|
sudo freebsd-update fetch install
|
||||||
sudo pkg update
|
sudo pkg update -q
|
||||||
sudo pkg upgrade -y
|
sudo pkg upgrade -q -y
|
||||||
sudo pkg autoremove -y
|
sudo pkg autoremove -y
|
||||||
sudo pkg clean -y
|
sudo pkg clean -y
|
||||||
SHELL
|
SHELL
|
||||||
|
|||||||
46
vagrant/freebsd10/fabfile.py
vendored
Normal file
46
vagrant/freebsd10/fabfile.py
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Nathan Fiedler
|
||||||
|
#
|
||||||
|
# This file is provided to you under the Apache License,
|
||||||
|
# Version 2.0 (the "License"); you may not use this file
|
||||||
|
# except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
"""Fabric file for installing requirements on FreeBSD."""
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from fabric.api import env, run, sudo, task
|
||||||
|
|
||||||
|
env.shell = "/bin/sh -c"
|
||||||
|
env.hosts = ["default"]
|
||||||
|
env.use_ssh_config = True
|
||||||
|
if os.path.exists("user_ssh_config"):
|
||||||
|
env.ssh_config_path = "user_ssh_config"
|
||||||
|
else:
|
||||||
|
env.ssh_config_path = "ssh_config"
|
||||||
|
|
||||||
|
|
||||||
|
@task
|
||||||
|
def all():
|
||||||
|
"""Install everything needed to build magick-rust."""
|
||||||
|
sudo("pkg install -q -y git")
|
||||||
|
sudo("pkg install -q -y rust")
|
||||||
|
sudo("pkg install -q -y cargo")
|
||||||
|
sudo("pkg install -q -y ImageMagick-nox11")
|
||||||
|
sudo("pkg install -q -y clang-devel")
|
||||||
|
# set LIBCLANG_PATH so rustc can find libclang.so in its hidden place
|
||||||
|
# (using the append operation results in 'Unmatched ".' error)
|
||||||
|
run("echo 'setenv LIBCLANG_PATH /usr/local/llvm-devel/lib' >> .cshrc")
|
||||||
1
vagrant/ubuntu14/.gitignore
vendored
Normal file
1
vagrant/ubuntu14/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh_config
|
||||||
10
vagrant/ubuntu14/Vagrantfile
vendored
10
vagrant/ubuntu14/Vagrantfile
vendored
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
Vagrant.configure(2) do |config|
|
Vagrant.configure(2) do |config|
|
||||||
|
|
||||||
config.vm.box = "ubuntu/trusty64"
|
config.vm.box = 'ubuntu/trusty64'
|
||||||
|
|
||||||
# need enough memory to build syntex_syntax crate
|
# need enough memory to build syntex_syntax crate
|
||||||
config.vm.provider 'virtualbox' do |vb|
|
config.vm.provider 'virtualbox' do |vb|
|
||||||
@ -11,10 +11,10 @@ Vagrant.configure(2) do |config|
|
|||||||
end
|
end
|
||||||
|
|
||||||
# bring the system up to date
|
# bring the system up to date
|
||||||
config.vm.provision "shell", inline: <<-SHELL
|
config.vm.provision 'shell', inline: <<-SHELL
|
||||||
sudo apt-get autoremove
|
sudo apt-get -y autoremove
|
||||||
sudo apt-get update
|
sudo apt-get -y update
|
||||||
sudo apt-get upgrade
|
sudo apt-get -y upgrade
|
||||||
SHELL
|
SHELL
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
51
vagrant/ubuntu14/fabfile.py
vendored
Normal file
51
vagrant/ubuntu14/fabfile.py
vendored
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Copyright (c) 2014-2016 Nathan Fiedler
|
||||||
|
#
|
||||||
|
# This file is provided to you under the Apache License,
|
||||||
|
# Version 2.0 (the "License"); you may not use this file
|
||||||
|
# except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
"""Fabric file for installing requirements on Ubuntu Linux."""
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from fabric.api import cd, env, run, sudo, task
|
||||||
|
|
||||||
|
env.hosts = ["default"]
|
||||||
|
env.use_ssh_config = True
|
||||||
|
if os.path.exists("user_ssh_config"):
|
||||||
|
env.ssh_config_path = "user_ssh_config"
|
||||||
|
else:
|
||||||
|
env.ssh_config_path = "ssh_config"
|
||||||
|
|
||||||
|
|
||||||
|
@task
|
||||||
|
def all():
|
||||||
|
"""Install everything needed to build magick-rust."""
|
||||||
|
run('sudo apt-get -q -y install git')
|
||||||
|
run('wget -q https://static.rust-lang.org/rustup.sh')
|
||||||
|
run('chmod +x rustup.sh')
|
||||||
|
run('./rustup.sh --yes')
|
||||||
|
run('rm -f rustup.sh')
|
||||||
|
sudo('apt-get -q -y build-dep imagemagick')
|
||||||
|
run('wget -q http://www.imagemagick.org/download/ImageMagick.tar.gz')
|
||||||
|
run('tar zxf ImageMagick.tar.gz')
|
||||||
|
with cd('ImageMagick-*'):
|
||||||
|
run('./configure')
|
||||||
|
run('make')
|
||||||
|
sudo('make install')
|
||||||
|
run('rm -rf ImageMagick*')
|
||||||
|
run('sudo apt-get -q -y install libclang-dev')
|
||||||
Reference in New Issue
Block a user