= Introduction = '''NOTE:''' This buildsystem is the official buildsystem starting with openvpn 2.3-alpha2. The rest of this article is thus more or less outdated. This new buildsystem is available in [https://github.com/alonbl/openvpn-build GitHub]. For usage documentation, take a look [wiki:BuildingUsingGenericBuildsystem here]. '''NOTE:''' Instead of merging these patches from the mailing list, the content should be pulled from Alon's updated repositories: * https://github.com/alonbl/tap-windows * https://github.com/alonbl/easy-rsa * https://github.com/alonbl/openvpn-gui/tree/build * https://github.com/alonbl/openvpn/tree/build * includes some additional changes to the "msvc" build The commit history has been preserved. = Patchsets = == Tap-windows patchset == These messages are viewable from [http://thread.gmane.org/gmane.network.openvpn.devel/5817 here]. ||'''Patch name'''||'''ACKed by'''||'''Notes'''|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5817 tap-windows 00/11 standalone package]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5817/focus=5823 tap-windows 03/11 cleanup: remove warnings of redefinition of macros]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5817/focus=5824 tap-windows 04/11 debug: add !DbgPrint support]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5817/focus=5825 tap-windows 05/11 build: set default to newer ddk]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5817/focus=5826 tap-windows 06/11 cleanup: replace TAP-Win32->TAP-Windows]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5817/focus=5826 tap-windows 08/11 cleanup: add TAP_WIN prefix to exports]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5817/focus=5828 tap-windows 09/11 cleanup: create .gitignore]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5817/focus=5830 tap-windows 10/11 docs: add COPYING COPYRIGHT.GPL]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5817/focus=5831 tap-windows 11/11 build: initial build]|||||| == Easy-rsa patchset == These messages are viewable from [http://thread.gmane.org/gmane.network.openvpn.devel/5799 here]. ||'''Patch name'''||'''ACKed by'''||'''Notes'''|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5799 easy-rsa 0/4 standalone package]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5799/focus=5808 easy-rsa 1/4 cleanup: fix execute permission]||[http://thread.gmane.org/gmane.network.openvpn.devel/5799/focus=5937 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5799/focus=5815 easy-rsa 2/4 build: simple autotools build]||[http://thread.gmane.org/gmane.network.openvpn.devel/5799/focus=5938 samuli (feature-ACK only)]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5799/focus=5816 easy-rsa 3/4 build: doc]||[http://thread.gmane.org/gmane.network.openvpn.devel/5799/focus=5939 samuli]||ACK [http://thread.gmane.org/gmane.network.openvpn.devel/5799/focus=5939 only if] easy-rsa 2/4 was sane autotools-vise|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5799/focus=5798 easy-rsa 4/4 packaging: rpm: initial add]||[http://thread.gmane.org/gmane.network.openvpn.devel/5799/focus=5940 samuli (feature-ACK only)]|||| = OpenVPN-GUI build rewrite patchset = These messages are viewable from [http://thread.gmane.org/gmane.network.openvpn.devel/5795 here]. ||'''Patch name'''||'''ACKed by'''||'''Notes'''|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5795 openvpn-gui 0/8 build rewrite]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5795/focus=5796 openvpn-gui 1/8 cleanup: resolve unused parameter warnings]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5795/focus=5797 openvpn-gui 2/8 cleanup: resolve warnings missing malloc include]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5795/focus=5819 openvpn-gui 3/8 debug: fix debug under unicode]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5795/focus=5800 openvpn-gui 4/8 cleanup: add missing stdlib.h]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5795/focus=5802 openvpn-gui 5/8 cleanup: dos2unix res/openvpn-gui-res-fi.rc]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5795/focus=5801 openvpn-gui 6/8 cleanup: dos2unix res/openvpn-gui-res-jp.rc]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5795/focus=5840 openvpn-gui 7/8 cleanup: dos2unix OpenVPN GUI ReadMe.txt]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5795/focus=5803 openvpn-gui 8/8 build: rework build]|||||| = Build revolution patchset = These messages are viewable from [http://thread.gmane.org/gmane.network.openvpn.devel/5772 here]. ||'''Patch name'''||'''ACKed by'''||'''Notes'''|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772 PATCH 00/52 build revolution]|||||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5835 PATCH 01/52 build: version should not contain '-']||dazo||Helps with RPMs and debs don't care.|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5766 PATCH 02/52 package: rpm: strip should be handled by package managem]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5884 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5770 PATCH 03/52 cleanup: options.c: remove redundant include]||andj, samuli|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5769 PATCH 04/52 cleanup: remove C++ warnings]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5886 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5764 PATCH 05/52 cleanup: win32.c: wrong printf format]||andj, dazo||this is correct: WCHAR *cmd = wide_string (a->argv[0], &gc);|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5809 PATCH 06/52 cleanup: remove redundant ';']||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5887 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5839 PATCH 07/52 cleanup: crypto_openssl.c: remove support for pre-openss]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5888 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5768 PATCH 08/52 cleanup: tun.c: fix incorrect option in message (ip-win3]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5889 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5765 PATCH 09/52 cleanup: memcmp.c: remove unused source]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5891 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5771 PATCH 10/52 fixup: init.c: add missing conditional for ENABLE_CLIENT]||andj, dazo||forward.h was included twice, good fix|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5761 PATCH 11/52 build: correct place to alter WINVER is at build system]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5892 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5767 PATCH 12/52 Update .gitignore]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5893 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5762 PATCH 13/52 build: handle printf style format in mingw]||dazo|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5778 PATCH 14/52 build: rename plugin directory to plugins]||dazo|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5832 PATCH 15/52 build: plugins: properly use CC, CFLAGS and LDFLAGS]||andj, dazo|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5763 PATCH 16/52 build: we need the sample.ovpn in future]||dazo||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5894 Samuli's comments]. Dazo: "I'd say ACK, and we'll improve this later on"|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5773 PATCH 17/52 Remove install-win32]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5896 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5775 PATCH 18/52 Remove easy-rsa]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5895 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5783 PATCH 19/52 Remove tap-win32]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5898 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5777 PATCH 20/52 cleanup: rename tap-windows function from win32 to win]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5895 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5781 PATCH 21/52 build: remove windows specific build system]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5903 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5774 PATCH 22/52 build: split acinclude.m4 into m4/*]||andj|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5776 PATCH 23/52 build: m4/ax_varargs.m4: cleanup]||dazo|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5779 PATCH 24/52 build: m4/ax_emptyarray.m4: cleanup]||dazo|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5780 PATCH 25/52 build: m4/ax_socklen_t.m4: cleanup]||dazo|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5785 PATCH 26/52 build: autotools: first pass of trivial autotools change]||andj, dazo||Simple cleanups|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5782 PATCH 27/52 build: autoconf: remove OPENVPN_ADD_LIBS useless macro]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5919 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5784 PATCH 28/52 build: remove awk and non-standard autoconf output proce]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5920 samuli]|||| ||[https://github.com/alonbl/openvpn/commit/f26b8c6e498184eb53dd74eff40f205358e72404 PATCH 29/52 build: standard directory layout]||andj||andj: "compliments for cleaning that up"|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5813 PATCH 30/52 build: add libtool + windows resources for executables]||dazo, mattock||Fix the COMPANY_NAME and LEGAL_COPYRIGHT later|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5788 PATCH 31/52 build: autoconf: commands as environment]||andj||comments from [http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5921 samuli] and [http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5948 alon]|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5787 PATCH 32/52 build: libdl usage]||andj, dazo|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5786 PATCH 33/52 build: properly detect and use socket libs]||dazo||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5922 samuli's comments]|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5790 PATCH 34/52 build: autoconf: minor cleanups]||andj, dazo|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5792 PATCH 35/52 build: proper selinux detection and usage]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5954 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5789 PATCH 36/52 build: distribute pkg.m4]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5924 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5791 PATCH 37/52 build: proper pkcs11-helper detection and usage]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5925 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5794 PATCH 38/52 build: properly process lzo-stub]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5926 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5811 PATCH 39/52 build: proper lzo detection and usage]||andj, dazo||Discuss on the ml whether lzo should be enabled by default|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5804 PATCH 40/52 build: proper crypto detection and usage]||andj||andj: OpenSSL 0.9.6 needs to go|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5793 PATCH 41/52 build: autoconf: update defaults for options]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5927 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5814 PATCH 42/52 build: win-msvc: msbuild format]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5928 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5806 PATCH 43/52 build: move out config.h include from syshead]||dazo|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5807 PATCH 44/52 build: split out compat]||dazo||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5929 Feature-ACK from Samuli]|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5805 PATCH 45/52 build: move gettimeofday() emulation to compat]||dazo||Removes #ifdefs, cleans up the code|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5810 PATCH 46/52 build: move daemon() emulation into compat]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5930 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5833 PATCH 47/52 build: move inet_ntop(), inet_pton() emulation into comp]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5952 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5812 PATCH 48/52 cleanup: move console related function into its own modu]||cron2||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5932 Feature-ACK from samuli] || ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5822 PATCH 49/52 build: move wrappers into platform module]||cron2||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5953 Feature-ACK from samuli]|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5818 PATCH 50/52 build: windows: install version.sh to allow installer re]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5951 samuli]|||| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5821 PATCH 51/52 build: distribute samples in windows]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5935 samuli]||Provided [http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5935 this analysis] is correct|| ||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5820 PATCH 52/52 build: use tap-windows.h as external dependency]||[http://thread.gmane.org/gmane.network.openvpn.devel/5772/focus=5936 samuli]||||