Skip to content

Instantly share code, notes, and snippets.

@gsora
Last active March 4, 2020 15:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gsora/2b3e9eb31c15a356c7662b0f960e2995 to your computer and use it in GitHub Desktop.
Save gsora/2b3e9eb31c15a356c7662b0f960e2995 to your computer and use it in GitHub Desktop.
Builds OpenVPN 2.4.2 with LibreSSL 2.4.5 statically on OpenBSD 6.1
#!/bin/sh
# Originally written by https://image.rayservers.com/ssl/vpn/openvpn+libressl+musl-static-compile.sh
# Dependencies: wget
set -e
set -x
[ ! -d ~/openvpn-libressl ] && mkdir ~/openvpn-libressl
cd ~/openvpn-libressl
NPROC=3
OPENVPN_VERSION=2.4.2
LIBRESSL_VERSION=2.4.5
PWD=$(pwd)
DEST=/opt/openvpn-libressl-2.4.5-static
SRC=$PWD/src
rm -rf $DEST
mkdir $DEST
WGET="wget -c --prefer-family=IPv4"
CC=$(whereis gcc)
LDFLAGS="-L$DEST/lib -Wl,-rpath,$DEST/lib"
CPPFLAGS="-I$DEST/include:$DEST/include/bits:$DEST/include/linux:$DEST/include/sys"
CFLAGS="-D_GNU_SOURCE -D_BSD_SOURCE"
CXXFLAGS=$CFLAGS
CONFIGURE="./configure --prefix=$DEST"
MAKE="make -j$NPROC"
[ ! -d $SRC ] && mkdir -p $SRC
####### #####################################################################
# LZO # #####################################################################
####### #####################################################################
[ ! -d $SRC/lzo2 ] && mkdir $SRC/lzo2
cd $SRC/lzo2
$WGET http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
tar zxvf lzo-2.10.tar.gz
cd lzo-2.10
CC=$CC \
LDFLAGS=$LDFLAGS \
CPPFLAGS=$CPPFLAGS \
CFLAGS=$CFLAGS \
CXXFLAGS=$CXXFLAGS \
$CONFIGURE \
--enable-shared
$MAKE
make install
########### #################################################################
# LIBRESSL # #################################################################
########### #################################################################
[ ! -d $SRC/libressl ] && mkdir $SRC/libressl
cd $SRC/libressl
$WGET http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-$LIBRESSL_VERSION.tar.gz
rm -rf libressl-$LIBRESSL_VERSION
tar zxvf libressl-$LIBRESSL_VERSION.tar.gz
cd libressl-$LIBRESSL_VERSION
CC=$CC \
LDFLAGS=$LDFLAGS \
CPPFLAGS=$CPPFLAGS \
CFLAGS=$CFLAGS \
CXXFLAGS=$CXXFLAGS \
$CONFIGURE
make CC=$CC LIBS="-all-static"
make CC=$CC install
########### #################################################################
# OPENVPN # #################################################################
########### #################################################################
[ ! -d $SRC/openvpn ] && mkdir $SRC/openvpn
cd $SRC/openvpn
$WGET http://swupdate.openvpn.org/community/releases/openvpn-$OPENVPN_VERSION.tar.gz
rm -rf openvpn-$OPENVPN_VERSION
tar zxvf openvpn-$OPENVPN_VERSION.tar.gz
cd openvpn-$OPENVPN_VERSION
LZO_CFLAGS="-I$DEST/include" \
LZO_LIBS="-L$DEST/lib" \
OPENSSL_SSL_CFLAGS="-I$DEST/include" \
OPENSSL_SSL_LIBS="-L$DEST/lib" \
OPENSSL_CRYPTO_CFLAGS="-I$DEST/include" \
OPENSSL_CRYPTO_LIBS="-L$DEST/lib" \
CC=$CC \
LDFLAGS=$LDFLAGS \
CPPFLAGS=$CPPFLAGS \
CFLAGS=$CFLAGS \
CXXFLAGS=$CXXFLAGS \
$CONFIGURE \
--disable-plugin-auth-pam \
--enable-password-save
$MAKE LIBS="-all-static -lssl -lcrypto -llzo2"
make install
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment