OpenVPN官方跨平台编译系统之WindowsNSIS包封装

简介

Windows-NSIS这个子目录包含了NSIS构建Windows版OpenVPN(32/64)的所有依赖及脚本文件。在../generic目录的脚本是用来构建组件的。查看更多帮助可以访问OpenVPN官方帮助页面

用法

首先要配置编译环境,

可以通过编辑以下两个文件以实现永久变更

1
2
../generic/build.vars (编译配置)
build-complete.vars (包配置)

也可以通过shell变量的方式临时变更编译配置(下文中会提到)

创建一个未签名的发行包可以使用以下命令

1
./build-complete

使用shell变量的配置优先级更高

1
2
NDOWS_INSTALLER_URL=http://domain.com/tap.exe\
./build-complete

从Git源创建一个签名的快照,可以使用”build-snapshot”:

1
2
3
4
./build-snapshot --sign
--sign-pkcs12=signingkey.p12\
--sign-pkcs12-pass=yourpassphrase\
--sign-timestamp="http://timestamp.domain.com"

或者使用”build-complete”做一个发行版本的包

1
2
3
4
./build-complete --sign
--sign-pkcs12=signingkey.p12\
--sign-pkcs12-pass=yourpassphrase\
--sign-timestamp="http://timestamp.domain.com"

缓存

多数的构建时间都花在构建依赖上,所以有关依赖缓存的特性可以让你在初次构建后复用已经用过的依赖。当只有OpenVPN的components变化的时候,这样的特性可以大大减少构建时间。

注意不要盲目地使用构建的缓存特性解包而不管构建结果,包括版本和任何安装选项特性。

创建初始的包缓存,首先要运行

1
./build-complete --build-depcache

这样会创建一个针对Windows的依赖关系缓存,当然是包括32位和64位的。一旦缓存创建完毕,以后的构建就可以像下面这样重利用了:

1
./build-complete --use-depcache

这些选项没有值并且缓存目录存在../generic/这里。

本文地址: https://blog.welee.space/openvpn-client-windows/