I ran into a symbol conflict when trying to build this on kernel 6.15.8, because the DCO feature definitions are now included in the kernel headers. Modifying the build()
function to add -Ddco=disabled
to the arch-meson
arguments fixes the issue by preventing a duplicate definition.
Search Criteria
Package Details: openvpn3 24.1-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/openvpn3.git (read-only, click to copy) |
---|---|
Package Base: | openvpn3 |
Description: | OpenVPN 3 Linux client |
Upstream URL: | https://codeberg.org/OpenVPN/openvpn3-linux |
Keywords: | openvpn vpn |
Licenses: | AGPL3 |
Submitter: | bhyoo |
Maintainer: | bhyoo |
Last Packager: | bhyoo |
Votes: | 23 |
Popularity: | 0.61 |
First Submitted: | 2020-07-04 06:51 (UTC) |
Last Updated: | 2025-06-04 12:05 (UTC) |
Dependencies (19)
- gdbusppAUR (gdbuspp-gitAUR)
- glib2 (glib2-gitAUR, glib2-selinuxAUR, glib2-patched-thumbnailerAUR)
- jsoncpp (jsoncpp-cmake-gitAUR, jsoncpp-cmakeAUR, jsoncpp-gitAUR)
- libcap-ng (libcap-ng-gitAUR)
- libnl (libnl-gitAUR)
- lz4 (lz4-gitAUR)
- protobuf (protobuf-gitAUR)
- python-dbus
- python-gobject
- python-systemd
- tinyxml2 (tinyxml2-gitAUR)
- util-linux-libs (util-linux-libs-aesAUR, util-linux-libs-selinuxAUR)
- meson (meson-gitAUR) (make)
- python-docutils (make)
- python-jinja (make)
- mbedtls (mbedtls-gitAUR, mbedtls-dtlsAUR) (optional) – mbed TLS version
- openssl (openssl-gitAUR, openssl-staticAUR) (optional) – OpenSSL version
- polkit (polkit-gitAUR, polkit-consolekitAUR) (optional) – for systemd-resolved integration
- repkg (optional) – Automatically rebuild the package on dependency updates
Required by (2)
- eovpn (optional)
- openvpn3-indicator-git
Sources (4)
remanifest commented on 2025-07-31 22:01 (UTC)
ehlegeth commented on 2025-06-19 00:09 (UTC) (edited on 2025-06-19 00:12 (UTC) by ehlegeth)
@ohyash, thanks for the information.
After building it again, it's fixed:
❯ ldd -d /usr/lib/openvpn3-linux/openvpn3-service-netcfg | grep libprotobuf
libprotobuf.so.31.1.0 => /usr/lib/libprotobuf.so.31.1.0 (0x00007fe92d400000)
Then I guess the root cause of this is building openvpn3 against the version specific libprotobuf library? I guess openvpn3 will not work everytime the protobuf package is upgraded. Do we have any solution to this?
ohyash commented on 2025-06-16 13:40 (UTC)
If you face tunnel error, it's usually due to protobuf version mismatch after a pacman upgrade.
openvpn3/session-start: ** ERROR ** Could not start new VPN session: New tunnel did not respond
You can verify by checking the netcfg for example:
$ /usr/lib/openvpn3-linux/openvpn3-service-netcfg
/usr/lib/openvpn3-linux/openvpn3-service-netcfg: error while loading shared libraries: libprotobuf.so.31.0.0: cannot open shared object file: No such file or directory
Solution is to rebuild this package after every protobuf upgrade. I've faced this multiple times now, maybe good to pin this comment.
Filemon commented on 2025-06-08 00:34 (UTC) (edited on 2025-06-08 00:35 (UTC) by Filemon)
I'm experiencing the following problem:
[52/156] Compiling C++ object libnetcfgmgr.a.p/src_netcfg_proxy-netcfg-device.cpp.o
FAILED: libnetcfgmgr.a.p/src_netcfg_proxy-netcfg-device.cpp.o
c++ -Ilibnetcfgmgr.a.p -I. -I../openvpn3-linux-24.1 -I../openvpn3-linux-24.1/openvpn3-core -I../openvpn3-linux-24.1/vendor/asio/asio/include -Isrc -I../openvpn3-linux-24.1/src -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/libnl3 -I/usr/include/uuid -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -std=c++17 -Wno-non-virtual-dtor -DOVPN_TINYXML2_HAS_ERROR_NAME -DOVPN_TINYXML2_HAS_ERROR_STR -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -Wno-error=non-virtual-dtor -fPIC -DPROTOBUF_USE_DLLS -DNOMINMAX -pthread -MD -MQ libnetcfgmgr.a.p/src_netcfg_proxy-netcfg-device.cpp.o -MF libnetcfgmgr.a.p/src_netcfg_proxy-netcfg-device.cpp.o.d -o libnetcfgmgr.a.p/src_netcfg_proxy-netcfg-device.cpp.o -c ../openvpn3-linux-24.1/src/netcfg/proxy-netcfg-device.cpp
In file included from /usr/include/absl/hash/internal/hash.h:33,
from /usr/include/absl/hash/hash.h:89,
from /usr/include/absl/container/internal/hash_function_defaults.h:56,
from /usr/include/absl/container/hash_container_defaults.h:19,
from /usr/include/absl/container/flat_hash_map.h:43,
from /usr/include/google/protobuf/descriptor.h:47,
from /usr/include/google/protobuf/generated_message_reflection.h:26,
from src/dco/dco-keyconfig.pb.h:26,
from ../openvpn3-linux-24.1/src/netcfg/proxy-netcfg-device.cpp:37:
/usr/include/c++/15.1.1/ciso646:46:4: error: #warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros" [-Werror=cpp]
46 | # warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros"
| ^~~~~~~
cc1plus: all warnings being treated as errors
[69/156] Compiling C++ object src/ovpn3cli/libcommandscollection.a.p/commands_init-config.cpp.o
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
Aborting...
One can circumvent this by adding -Dwerror=false \ after `build() in PKGBUILD.
schplat commented on 2025-06-03 23:13 (UTC) (edited on 2025-06-03 23:17 (UTC) by schplat)
A fix for not having to go to the older C++ version:
Let it fail to build, retry, edit the PKGBUILD and comment out the source and SHA256SUM for the package:
source=(
# "https://swupdate.openvpn.net/community/releases/${_pkgname}-${pkgver}.tar.xz"
'openvpn3.rule'
'sysusers-openvpn3.conf'
)
sha256sums=(
# '9ecf8dccdbc601c4325b0248db7cb1e39c8689e3b99f5fc801b42056d68a7256'
'ec0b8e28ae77b4b074d3eb8a084626e6dcfc587a07bef5d53fe1c6e160c0fc01'
'045e914bb6fff5a082314dfc805bb511c9a80170619fa1e94a07825fa977c90a'
)
But before continuing on, edit the following files (adjust for the cache directory of your package manager of choice):
~/.cache/trizen/sources/openvpn3/src/openvpn3-linux-24/src/log/logmetadata.hpp
~/.cache/trizen/sources/openvpn3/src/openvpn3-linux-24/subprojects/googletest-release-1.10.0/googletest/src/gtest-death-test.cc
And add in:
#include <cstdint>
On line 20 of the first file, and line 49 of the second. This should allow it to compile normally.
leonkacowicz commented on 2025-05-20 14:43 (UTC)
@ccoffey I have to rebuild this package very often too. Not sure if at every kernel update. I'd guess every time glibc is updated, I'm not sure.
ccoffey commented on 2025-05-20 13:16 (UTC)
Am I doing something wrong, or is it expected to have to rebuild and reinstall this package each time after kernel update?
a36233 commented on 2025-05-19 09:20 (UTC)
FYI: manually compiling the code with latest / testing gcc (gcc-15) also works, following the instructions from upstream: https://github.com/OpenVPN/openvpn3
Koljasha commented on 2025-05-05 08:41 (UTC)
@orenvadi, Bro, I've been blowing my brain for four days. Thanks!
lybin commented on 2025-05-05 08:39 (UTC)
@orenvadi, thanks it works. perhaps until the fix it will be nice to correct the PKGBUILD to use gcc14 for the building
Pinned Comments
bhyoo commented on 2024-07-08 11:46 (UTC) (edited on 2024-07-08 11:47 (UTC) by bhyoo)
If you have trouble with building it, please run
yay -Scc
oryay -Sc
.FYI. I replaced
gdbuspp-git
withgdbuspp
in the PKGBUILD dependency, and it seems that the build fails because the locally cached PKGBUILD is not updated.