0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-20 12:12:15 +02:00
Commit Graph

99 Commits

Author SHA1 Message Date
James Yonan
c6a21c827b Boost dependency elimination -- final removal of Boost
dependency.  Asio is now included as a standalone,
header-only dependency.
2015-06-06 10:59:18 -06:00
James Yonan
4d660c0eca Added OUTBIN parm to build script. 2015-04-25 15:12:15 -06:00
James Yonan
a51c0bf0bf Mostly complete transition from boost::thread to std::thread. 2015-04-23 17:07:56 -06:00
James Yonan
d442e777de Updated Android build system to support ARM64:
* Updated SDK and NDK to Android 5:
    android-sdk_r24.0.2-macosx.zip
    android-ndk-r10d-darwin-x86_64.bin

* Updated build-toolchain to build both ARM
  and ARM64 toolchains.

* Added ARMv8-a architecture (64-bit) to all
  core builds.

* Patched "Page Size" issue in boost_1_57_0.
2015-02-27 09:20:35 -07:00
James Yonan
7b6533484e Added gzip compression support to ovpn3 library. 2015-02-13 14:29:09 -07:00
James Yonan
2856dc759a Build OpenSSL shared libraries on Linux. 2015-02-10 15:49:49 -07:00
James Yonan
c1c6bdb639 Don't build or include minicrypto for Android. 2015-02-05 10:22:39 -07:00
James Yonan
433f4e362d Minicrypto build fixes:
* Disable minicrypto for now in both Android and Apple builds.

* In deps/polarssl/build-polarssl, don't apply the minicrypto
  patch unless "$USE_MINICRYPTO" = "1".
2015-01-19 17:48:10 -07:00
James Yonan
031554e45a Comment out the "set -e" at the top of scripts/android/build-toolchain
as it appears to cause premature exit.
2014-10-16 11:45:28 -06:00
James Yonan
5539a22684 Repo reorganization: standardize on $O3 representing the top-level
directory that contains core and possibly other components as well.
2014-08-29 18:42:02 -06:00
James Yonan
758af9708e After git repo reorganization, updated Android build scripts for
dependencies and OpenVPN 3 shared library.
2014-08-29 11:52:16 -06:00
James Yonan
68afaf3324 Created build-extras system where other components (outside of core)
can modify build system behavior.
2014-08-28 16:06:26 -06:00
James Yonan
6ba90c9ef7 In build script, remove references to DBG_DIR_SUFFIX as it is made
obsolete by existence of vars-x-dbg files.
2014-08-28 16:04:27 -06:00
James Yonan
302046c3ea Updated build scripts for repo reorganization. 2014-08-28 13:33:14 -06:00
James Yonan
e8194fa543 In scripts/mac/build-all, don't disable SSL server functionality
when building PolarSSL for Mac OS X.
2014-08-15 22:02:56 -06:00
James Yonan
76b317e9f1 Added JsonCpp support. 2014-08-10 20:16:36 -06:00
James Yonan
d9dfc91031 In build script, don't add -fwhole-program
flag when DEBUG_BUILD == 1.
2014-08-10 20:02:25 -06:00
James Yonan
df860644e8 Built ovpn3 cli tool on Linux (gcc 4.8.2) with some
minor edits:

* Don't build OpenSSL.
* Edited ovpncli/README.txt with updated build command.
* Enabled C++11 in compiler flags, and turned off
  some spurious warnings.
* Added CXX_COMPILER_FLAGS build flag to allow
  C++-only flags to be defined.

Changes to build script as well:

* Honor OTHER_COMPILER_FLAGS and CXX_COMPILER_FLAGS
  settings.
* For debug builds, DEBUG_BUILD=1 setting should be placed
  in vars-x.  Existing build DEBUG=1 setting now only
  sets -g.
* For clang builds, don't emit -fvisibility=hidden because
  that should be placed in OTHER_COMPILER_FLAGS in vars-x.
2014-07-28 12:08:49 -06:00
James Yonan
d5e72f7806 Updated dependencies and build scripts for building with Xcode 5.1:
* Updated lib-versions:

  lzo-2.08
  lz4-r119
  polarssl-1.3.8
  openssl-1.0.1h

* Turned off Minicrypto as it is broken on polarssl-1.3.8.
2014-07-09 17:51:03 -06:00
James Yonan
11acfc6ca2 Implemented Mac connection lifecycle monitoring object
(MacLifeCycle).

Monitor connection lifecycle notifications, such as sleep, wakeup,
network-unavailable, and network-available.

Note that not all platforms define a lifecycle object.  Some
platforms such as Android and iOS manage lifecycle notifications at
the service level, and they call pause(), resume(), reconnect(),
etc. as needed using the main ovpncli API.

Also, added a reason string to Pause event.
2014-03-24 17:28:46 -06:00
James Yonan
074dbafa27 Ported minicrypto lib to OS X for PolarSSL optimization.
These scripts

  scripts/mac/build-minicrypto
  scripts/mac/build-polarssl

will now build PolarSSL (on OSX) with libminicrypto linkage.
Currently, only SHA1/256/512 implementations from OpenSSL are
built in libminicrypto.  We leave the current PolarSSL AES
implementation as-is since it now implements AES-NI.

Also added portable openssl/build-openssl script.
2014-03-04 17:42:00 -07:00
James Yonan
5975b4b53c Core build script changes:
* Added new cross-platform boost/build-boost script.

* Added new LINK_MODE var (static|shared) that is
  used by Boost, PolarSSL, and OpenSSL (Linux) builds.

* More DEP_DIR flexibility:
  (a) DEP_DIR can be defined prior to call of build-all scripts.
  (b) On Linux, vars-linux script will not override DEP_DIR.
2014-03-03 14:34:39 -07:00
James Yonan
a76c67f63c On Mac OS X, build now defaults to utun-only and
BOOST_ASIO_DISABLE_KQUEUE is left undefined.  To enable
fallback to Mac TunTap driver, MAC_TUNTAP_FALLBACK
and BOOST_ASIO_DISABLE_KQUEUE must be defined.
2014-02-27 23:05:11 -07:00
James Yonan
382f8a2828 Mac OS X build script changes to allow building "fat" 32/64-bit
binaries with minimum deployment target of OS X 10.6.
2014-02-27 17:57:38 -07:00
James Yonan
5cb4dd43bb Updated Linux build scripts including adding a new script
to build lz4.
2014-02-09 03:12:33 -07:00
James Yonan
b02bfa8e2e In build scripts, standardize on $DL referring to downloads
directory and pointing to ~/Downloads by default.
2014-02-09 03:10:02 -07:00
James Yonan
a6ab17fde0 Android: build two versions of OpenVPN core library (libovpncli.so)
for different ARM platforms:

1. armeabi
2. armeabi-v7a

Android build script will package both versions of libovpncli.so
in the .apk, where the correct version should be automatically
chosen by Android on install.
2014-01-14 16:40:25 -07:00
James Yonan
f9660fe8ae Minor fixes to iOS build scripts:
* build-all can be run from any directory, will still use
  ~/src/mac to write products.

* to make sure that scripts don't trigger a false error exit
  by their caller, add "exit 0" to last line of all scripts
  called by build-all.
2014-01-13 17:51:19 -07:00
James Yonan
7e0490f647 Updated Android SDK, NDK, and build scripts:
SDK: adt-bundle-mac-x86_64-20131030
NDK: android-ndk-r9c
2014-01-13 17:48:37 -07:00
James Yonan
2cbe310f35 OpenVPN 1.0.4 build 114 (iOS)
Dusted off LZ4 implementation and enabled in iOS
and cli.cpp builds.

Tested LZ4 as well with OpenVPN 3 acting as the client,
with a hacked AS and OpenVPN 2.3 (JY) acting as the server
(see lz4hack patches).
2013-12-27 22:21:22 -07:00
James Yonan
1481327d72 OpenVPN 1.0.2 build 98 (iOS)
Ported iOS client and OpenVPN 3 core to ARM-64.
Now building a "fat binary" with Xcode 5.0.1 that
targets arm7, arm7s, and arm64.

Outstanding issues:

* IPv6 doesn't route through tunnel on iOS7
* Client doesn't install on iOS 5.1.1.
2013-11-11 12:33:35 -07:00
James Yonan
f290f9feee Extended IP.Addr class to handle extents as IP.Addr objects. This
extends the IP.Addr class to act more-or-less as a generic 128-bit
unsigned integer class.
2013-07-29 05:48:03 +00:00
James Yonan
0f17a169fc Added notes (doc/README.txt) describing OpenVPN 3 build process on
Mac OS X that is intended to be used with openvpn3.tar.gz
distribution.
2013-06-28 04:17:27 +00:00
James Yonan
7fe6fad18a Added crypto self test capability to core.
Added polarssl/bignum-arm.patch to resolve issue where
asm-optimized bignum code would crash on iOS.
2013-06-14 00:34:49 +00:00
James Yonan
dc10d6f541 Added scripts/linux/build-polarssl-ovpn2 to build OpenVPN 2.x with
PolarSSL.
2013-06-11 05:46:58 +00:00
James Yonan
f48aed317a Refactored polar-openssl.patch to make it easier for PolarSSL
team to merge.
2013-05-31 20:42:49 +00:00
James Yonan
413498ae4f Android 1.1.10 build 39
iOS 1.0.1 build 73

Updated to PolarSSL 1.1.6
2013-03-14 07:15:28 +00:00
James Yonan
32e9c62db7 Support usage such as this:
remote foo.bar 1194 tcp-client
2013-02-19 06:54:12 +00:00
James Yonan
9f18b28f86 Misc build system changes to support OpenSSL. 2012-11-27 03:05:46 +00:00
James Yonan
5ea06010c5 Get PolarSSL-based client and test builds working on Linux again. 2012-11-26 18:53:12 +00:00
James Yonan
f72aab4b40 Added support to new core for remote-cert-tls, remote-cert-ku,
and remote-cert-eku directives.
2012-10-31 14:46:40 +00:00
James Yonan
45a13bf898 Added scripts and documents for Apple submission process. 2012-10-17 00:22:26 +00:00
James Yonan
01c91a46cd Android build scripts:
* Add build-all
* Fixed build-minicrypto
2012-10-07 09:14:00 +00:00
James Yonan
1e053189f8 Added build-all script for linux. 2012-09-26 01:34:07 +00:00
James Yonan
b88790efef iOS client changes:
* Updated to Xcode 4.5 and tested client build on iOS6.

* Note that it is no longer necessary to copy the private
  SystemConfiguration header files for the VPN API into the
  Xcode tree.  The OpenVPN Xcode project file will now
  reference them directly from the ovpn3 tree.

* Note that in Xcode 4.5, the iPhoneOSProductTypes.xcspec file that
  must be edited to allow bundle signing is now a binary plist.
  Use the Mac plutil tool to convert it to JSON so it can be edited
  then convert back to binary:

  $ cp iPhoneOSProductTypes.xcspec iPhoneOSProductTypes.xcspec.backup
  $ plutil -convert json -r iPhoneOSProductTypes.xcspec
  [ edit iPhoneOSProductTypes.xcspec according to instructions in
     ovpn3/doc/Build_VPN_App_and_Plugin.pdf ]
  $ plutil -convert binary1 iPhoneOSProductTypes.xcspec

* The ARM assembler provided in Xcode 4.5 is no longer able to
  assemble the Minicrypto ASM algorithms.  As a workaround, before
  updating to Xcode 4.5, preserve the previous clang binary by
  copying it to ~/clang3/clang -- the build-minicrypto script will
  expect it to exist.  This is the version of clang that must be used:

  $ ~/clang3/clang --version
  Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)
  Target: x86_64-apple-darwin11.4.2
  Thread model: posix

* Make sure to update your PATH to include the new Xcode 4.5 clang and
  rebuild all libraries.  I found that updating to Xcode 4.5 left the
  old clang in /usr/bin.  The Xcode 4.5 clang should show this version
  info:

  $ clang --version
  Apple clang version 4.1 (tags/Apple/clang-421.11.65) (based on LLVM 3.1svn)
  Target: x86_64-apple-darwin11.4.2
  Thread model: posix

* Added $O3/scripts/mac/build-all script to build all Mac/iOS
  dependencies.
2012-09-25 21:04:27 +00:00
James Yonan
0f12ca75e2 Minor fix to Mac build PolarSSL script. 2012-09-15 19:10:02 +00:00
James Yonan
dcd62a79e6 Allow test/ssl/proto.cpp to be run on Mac OS X with PolarSSL
used as both client and server implementation.

Added DH support to PolarSSL.

Added CLIENT_NO_RENEG and SERVER_NO_RENEG flags to test code
in proto.cpp to allow scenarios to be tested where either
the server, client, or both initiate renegotiation.

Updated test/ovpncli/cli.cpp with new command line options
and will now run on Mac OS X.

Updated Android and iOS build systems to no longer include
any LZO support, and to include Snappy support instead.
2012-09-15 06:56:18 +00:00
James Yonan
0df25d9f75 Minor changes to Linux build system to incorporate "linux"
subtarget in dependency build dir.
2012-09-12 00:14:07 +00:00
James Yonan
54a534d347 Fixed build script to work again on OS X.
Implement our own wrapper around ::system().
2012-09-11 23:51:37 +00:00
James Yonan
d50d359acb Added ARM compression benchmark results.
Added a platform argument to scripts/linux/build-openssl
2012-09-11 18:23:07 +00:00