summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 9bac663aae79a5b5a860d6acf12735bee6d3dea2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Maintainer: Daniel Bermond <dbermond@archlinux.org>

pkgbase=lightway-core
pkgname=('lightway-core' 'lightway-core-doc')
pkgver=1.17.8
pkgrel=1
_ruby_ver=3.1.6
_ceedling_ver=0.31.1
pkgdesc='A VPN protocol by ExpressVPN'
arch=('x86_64')
url='https://www.expressvpn.com/lightway/'
license=('GPL-2.0-or-later')
makedepends=('git' 'cmake' 'doxygen' 'graphviz')
source=("https://github.com/expressvpn/lightway-core/archive/v${pkgver}/${pkgbase}-${pkgver}.tar.gz"
        'git+https://github.com/wolfSSL/wolfssl.git'
        "https://cache.ruby-lang.org/pub/ruby/${_ruby_ver%.*}/ruby-${_ruby_ver}.tar.xz"
        '010-lightway-core-disable-werror-on-wolfssl.patch')
sha256sums=('808954d5d25b196fa0b39203f6b42082513f837f87e1e4804119788107980fb3'
            'SKIP'
            '597bd1849f252d8a6863cb5d38014ac54152b508c36dca156f6356a9e63c6102'
            'fd82affc9e605a7963e5b4908d8decc877980ac007f9ba5aabeccf9019cf5727')

prepare() {
    local _wolfssl_tag
    _wolfssl_tag="$(awk '/HE_WOLFSSL_TAG/ { print $3 }' "${pkgbase}-${pkgver}/3rd_party_deps.yml")"
    git -C wolfssl config --local advice.detachedHead false
    git -C wolfssl checkout --quiet "$_wolfssl_tag"
    
    patch -d wolfssl -Np1 -i "${srcdir}/010-lightway-core-disable-werror-on-wolfssl.patch"
    
    mkdir -p "${pkgbase}-${pkgver}/third_party"
    cp -af wolfssl "${pkgbase}-${pkgver}/third_party"
}

build() {
    local _ruby_root="${srcdir}/ruby/${_ruby_ver}"
    export GEM_HOME="$_ruby_root"
    export GEM_PATH="$_ruby_root"
    export PATH="${_ruby_root}/bin${PATH:+":${PATH}"}"
    cd "ruby-${_ruby_ver}"
    ./configure --prefix="$_ruby_root" --enable-shared
    make install
    gem install --no-user-install --install-dir "$_ruby_root" ceedling -v "$_ceedling_ver"
    
    export CFLAGS+=' -ffat-lto-objects'
    [ -z "$LC_ALL" ] && export LC_ALL='C'
    cd "../${pkgbase}-${pkgver}"
    ceedling release project:linux
    doxygen
}

check() {
    local _ruby_root="${srcdir}/ruby/${_ruby_ver}"
    export GEM_HOME="$_ruby_root"
    export GEM_PATH="$_ruby_root"
    export PATH="${_ruby_root}/bin${PATH:+":${PATH}"}"
    
    cd "${pkgbase}-${pkgver}"
    ceedling test project:linux
}

package_lightway-core() {
    install -D -m644 "${pkgbase}-${pkgver}/build/release"/*.a -t "${pkgdir}/usr/lib"
    install -d -m755 "${pkgdir}/usr/include"
    cp -dr --no-preserve='ownership' "${pkgbase}-${pkgver}/public" "${pkgdir}/usr/include/libhelium"
}

package_lightway-core-doc() {
    pkgdesc+=' (documentation)'
    arch=('any')
    
    install -d -m755 "${pkgdir}/usr/share/doc"
    cp -dr --no-preserve='ownership' "${pkgbase}-${pkgver}/html" "${pkgdir}/usr/share/doc/${pkgbase}"
}