diff --git a/.travis.yml b/.travis.yml index d6321552..c459b100 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,13 @@ language: rust env: - matrix: - - FEATURES="" - - FEATURES="tlsv1_1 tlsv1_2 aes_xts" global: secure: J4i75AV4KMrU/UQrLIzzIh35Xix40Ki0uWjm8j05oxlXVl5aPU2zB30AemDne2QXYzkN4kRG/iRnNORE/8D0lF7YipQNSNxgfiBVoOEfj/NSogvI2BftYX9vlLZJUvt+s/nbE3xa/Pyge1IPv7itDYGO7SMe8RTSqitgqyfE2Eg= -os: -- osx -- linux + - FEATURES="tlsv1_1 tlsv1_2 aes_xts" before_script: - openssl s_server -accept 15418 -www -cert test/cert.pem -key test/key.pem >/dev/null 2>&1 & script: -- (cd openssl && cargo test --features "$FEATURES") +- (cd openssl && cargo test) +- (cd openssl && cargo test --features $FEATURES) - ./.travis/build_docs.sh after_success: -- test $TRAVIS_PULL_REQUEST == "false" && test $TRAVIS_BRANCH == "master" && ./.travis/update_docs.sh +- $TRAVIS_PULL_REQUEST == "false" && test $TRAVIS_BRANCH == "master" && ./.travis/update_docs.sh diff --git a/.travis/build_docs.sh b/.travis/build_docs.sh index 4264051a..80c54ed0 100755 --- a/.travis/build_docs.sh +++ b/.travis/build_docs.sh @@ -7,5 +7,5 @@ mkdir doc for crate in $(echo openssl-sys openssl); do mkdir -p $crate/target ln -s -t $crate/target ../../doc - (cd $crate && cargo doc --no-deps) + (cd $crate && cargo doc --no-deps --features $FEATURES) done diff --git a/README.md b/README.md index cecf2c9d..f97332e7 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,10 @@ See the [rustdoc output](https://sfackler.github.io/rust-openssl/doc/openssl). Building -------- -rust-openssl needs to link against the OpenSSL devleopment libraries on your system. It's very easy to get them on Linux. -For some reason, the OpenSSL distribution for Windows is structured differently, so it's a little more involved, but it *is* possible to build rust-openssl successfully on Windows. +rust-openssl needs to link against the OpenSSL devleopment libraries on your +system. It's very easy to get them on Linux. For some reason, the OpenSSL +distribution for Windows is structured differently, so it's a little more +involved, but it *is* possible to build rust-openssl successfully on Windows. ###Linux @@ -15,26 +17,42 @@ For some reason, the OpenSSL distribution for Windows is structured differently, 2. Run `cargo build`. ###Android -1. Follow the steps [here](wiki.openssl.org/index.php/Android) to build OpenSSL for android +1. Follow the steps [here](wiki.openssl.org/index.php/Android) to build OpenSSL + for android 2. Provide the path to the libssl and libcrypto binaries via `$OPENSSL_PATH` 3. Build the package with `cargo build` ###Windows -1. Grab the latest Win32 OpenSSL installer [here][1]. At the time of this writing, it's v1.0.1i. If you're using 64-bit Rust (coming to Windows soon), then you should get the Win64 installer instead. -2. Run the installer, making note of where it's installing OpenSSL. The option to copy the libraries to the Windows system directory or `[OpenSSL folder]/bin` is your choice. The latter is probably preferable, and the default. -3. Navigate to `[OpenSSL folder]/lib/MinGW/`, and copy `libeay32.a` and `ssleay32.a` (If 64-bit, then they will have `64` instead of `32`.) to your Rust install's libs folder. The default should be: +1. Grab the latest Win32 OpenSSL installer [here][1]. At the time of this + writing, it's v1.0.1i. If you're using 64-bit Rust (coming to Windows soon), +then you should get the Win64 installer instead. +2. Run the installer, making note of where it's installing OpenSSL. The option + to copy the libraries to the Windows system directory or `[OpenSSL +folder]/bin` is your choice. The latter is probably preferable, and the +default. +3. Navigate to `[OpenSSL folder]/lib/MinGW/`, and copy `libeay32.a` and +`ssleay32.a` (If 64-bit, then they will have `64` instead of `32`.) to your +Rust install's libs folder. The default should be: * 32-bit: `C:\Program Files (x86)\Rust\bin\rustlib\i686-pc-mingw32\lib` * 64-bit: `C:\Program Files (x86)\Rust\bin\rustlib\x86_64-pc-windows-gnu\lib` -4. Rename `libeay32.a` and `ssleay32.a` to `libcrypto.a` and `libssl.a`, respectively. +4. Rename `libeay32.a` and `ssleay32.a` to `libcrypto.a` and `libssl.a`, +respectively. 5. Run `cargo build`. ###Testing -Several tests expect a local test server to be running to bounce requests off of. It's easy to do this. Open a separate terminal window and `cd` to the rust-openssl directory. Then run one of the following commands: +Several tests expect a local test server to be running to bounce requests off +of. It's easy to do this. Open a separate terminal window and `cd` to the +rust-openssl directory. Then run one of the following commands: -* Windows: `openssl s_server -accept 15418 -www -cert test/cert.pem -key test/key.pem > NUL` -* Linux: `openssl s_server -accept 15418 -www -cert test/cert.pem -key test/key.pem >/dev/null` +* Windows: `openssl s_server -accept 15418 -www -cert test/cert.pem -key + test/key.pem > NUL` +* Linux: `openssl s_server -accept 15418 -www -cert test/cert.pem -key + test/key.pem >/dev/null` -Then in the original terminal, run `cargo test`. If everything is set up correctly, all tests should pass. You might get some warnings in the `openssl s_server` window. Those aren't anything to worry about. You can stop the server using Control-C. +Then in the original terminal, run `cargo test`. If everything is set up +correctly, all tests should pass. You might get some warnings in the `openssl +s_server` window. Those aren't anything to worry about. You can stop the server +using Control-C. [1]: http://slproweb.com/products/Win32OpenSSL.html diff --git a/openssl/test/cert.pem b/test/cert.pem similarity index 100% rename from openssl/test/cert.pem rename to test/cert.pem diff --git a/openssl/test/key.pem b/test/key.pem similarity index 100% rename from openssl/test/key.pem rename to test/key.pem