-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
master branch does not compile on kernel 6.2-rc4 #12
Comments
Hi! This is work in progress and will update the code ASAP |
if you have already some patches I am available to test it |
news ? |
Don't be pushy. It is ready when it is ready. |
gcc --version root@ghost:/usr/src/ovpn-dco# cc --version |
make |
I think you forgot to add some message? The netlink ops struct has been redesigned and it requires ovpn-dco to adapt to the new definition. Port to latest kernel will happen right after! Thanks for bearing with me |
sorry .... I tried to patch it myself with my hello.c knowledge but obviously apart from the risk of exploding or starting ww3 I haven't got much ;) |
glad none of the two events happened :-D |
@xevilstar could you give a try to the genl_split_ops branch and let me know how it goes? |
YES YES YEEEEES !!!!!!!!!!!!!
***@***.***:/usr/src/ovpn-dco# git checkout genl_split_ops
branch 'genl_split_ops' set up to track 'origin/genl_split_ops'.
Switched to a new branch 'genl_split_ops'
***@***.***:/usr/src/ovpn-dco# git branch
* genl_split_ops
master
***@***.***:/usr/src/ovpn-dco# git fetch
***@***.***:/usr/src/ovpn-dco# make
/usr/src/ovpn-dco/gen-compat-autoconf.sh /usr/src/ovpn-dco/compat-
autoconf.h
make -C /lib/modules/6.2.0-rc4/build M=/usr/src/ovpn-dco
PWD=/usr/src/ovpn-dco REVISION=0.1.20221107-4-g5e47530
CONFIG_OVPN_DCO=m INSTALL_MOD_DIR=updates/ modules
make[1]: Entering directory '/usr/src/linux-headers-6.2.0-rc4'
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/main.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/bind.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/crypto.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/ovpn.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/peer.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/sock.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/stats.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/netlink.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/crypto_aead.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/pktid.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/tcp.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/udp.o
LD [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/ovpn-dco.o
MODPOST /usr/src/ovpn-dco/Module.symvers
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/ovpn-dco.mod.o
LD [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/ovpn-dco.ko
BTF [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/ovpn-dco.ko
Skipping BTF generation for /usr/src/ovpn-dco/drivers/net/ovpn-
dco/ovpn-dco.ko due to unavailability of vmlinux
make[1]: Leaving directory '/usr/src/linux-headers-6.2.0-rc4'
***@***.***:/usr/src/ovpn-dco# make install
/usr/src/ovpn-dco/gen-compat-autoconf.sh /usr/src/ovpn-dco/compat-
autoconf.h
make -C /lib/modules/6.2.0-rc4/build M=/usr/src/ovpn-dco
PWD=/usr/src/ovpn-dco REVISION=0.1.20221107-4-g5e47530
CONFIG_OVPN_DCO=m INSTALL_MOD_DIR=updates/ modules_install
make[1]: Entering directory '/usr/src/linux-headers-6.2.0-rc4'
INSTALL /lib/modules/6.2.0-rc4/updates//drivers/net/ovpn-dco/ovpn-
dco.ko
SIGN /lib/modules/6.2.0-rc4/updates//drivers/net/ovpn-dco/ovpn-dco.ko
At main.c:167:
- SSL error:FFFFFFFF80000002:system library::No such file or directory:
../crypto/bio/bss_file.c:67
- SSL error:10000080:BIO routines::no such file:
../crypto/bio/bss_file.c:75
sign-file: ./certs/signing_key.pem
DEPMOD /lib/modules/6.2.0-rc4
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[1]: Leaving directory '/usr/src/linux-headers-6.2.0-rc4'
depmod -a
…On Fri, 2023-01-20 at 08:10 -0800, Antonio Quartulli wrote:
@xevilstar could you give a try to the genl_split_ops branch and let
me know how it goes?
Thanks!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
no [Fri Jan 20 17:32:39 2023] ovpn: can't register netlink family |
cannot modprobe cannot insmod |
Thanks for testing. This is an issue that started with 6.1. Will fix this soon too 😅 |
Let's open a specific issue for that, please |
compilation is now fixed. However, we need to come up with some non-trivial compat code that allows the new code to still compile on older kernels. |
netlink commands do not truly require all the bells and whistles from the genl_ops structure, therefore it is possible to switch to the smaller and slimmer genl_small_ops. At the same time, this structure will be easier to be maintained compatible with newer and older kernels. Fixes: #12 Fixes: #20 Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
Thanks, now ... there should be a way to make this new source get into debian dkms package ..... ;) |
Yeah, hopefully they will pull the next tag (which I plan to stamp at the end of the month) |
git clone https://github.com/OpenVPN/ovpn-dco.git
Cloning into 'ovpn-dco'...
remote: Enumerating objects: 3240, done.
remote: Counting objects: 100% (692/692), done.
remote: Compressing objects: 100% (275/275), done.
remote: Total 3240 (delta 352), reused 665 (delta 328), pack-reused 2548
Receiving objects: 100% (3240/3240), 1008.00 KiB | 3.92 MiB/s, done.
Resolving deltas: 100% (1836/1836), done.
root@ghost:/usr/src# cd ovpn-dco
root@ghost:/usr/src/ovpn-dco# make KERNEL_SRC=/usr/src/linux-6.2-rc2
/usr/src/ovpn-dco/gen-compat-autoconf.sh /usr/src/ovpn-dco/compat-autoconf.h
make -C /usr/src/linux-6.2-rc2 M=/usr/src/ovpn-dco PWD=/usr/src/ovpn-dco REVISION=0.1.20221107 CONFIG_OVPN_DCO=m INSTALL_MOD_DIR=updates/ modules
make[1]: Entering directory '/usr/src/linux-6.2-rc2'
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/main.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/bind.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/crypto.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/ovpn.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/peer.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/sock.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/stats.o
CC [M] /usr/src/ovpn-dco/drivers/net/ovpn-dco/netlink.o
/usr/src/ovpn-dco/drivers/net/ovpn-dco/netlink.c:950:21: error: initialization of 'int (*)(const struct genl_split_ops *, struct sk_buff *, struct genl_info )' from incompatible pointer type 'int ()(const struct genl_ops *, struct sk_buff *, struct genl_info )' [-Werror=incompatible-pointer-types]
950 | .pre_doit = ovpn_pre_doit,
| ^~~~~~~~~~~~~
/usr/src/ovpn-dco/drivers/net/ovpn-dco/netlink.c:950:21: note: (near initialization for 'ovpn_netlink_family.pre_doit')
/usr/src/ovpn-dco/drivers/net/ovpn-dco/netlink.c:951:22: error: initialization of 'void ()(const struct genl_split_ops *, struct sk_buff *, struct genl_info )' from incompatible pointer type 'void ()(const struct genl_ops *, struct sk_buff *, struct genl_info *)' [-Werror=incompatible-pointer-types]
951 | .post_doit = ovpn_post_doit,
| ^~~~~~~~~~~~~~
/usr/src/ovpn-dco/drivers/net/ovpn-dco/netlink.c:951:22: note: (near initialization for 'ovpn_netlink_family.post_doit')
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:252: /usr/src/ovpn-dco/drivers/net/ovpn-dco/netlink.o] Error 1
make[2]: *** [scripts/Makefile.build:504: /usr/src/ovpn-dco/drivers/net/ovpn-dco] Error 2
make[1]: *** [Makefile:2008: /usr/src/ovpn-dco] Error 2
make[1]: Leaving directory '/usr/src/linux-6.2-rc2'
make: *** [Makefile:52: all] Error 2
The text was updated successfully, but these errors were encountered: