{"id":28522087,"url":"https://github.com/openvpn/ovpn-backports","last_synced_at":"2026-07-03T14:03:04.201Z","repository":{"id":289453175,"uuid":"968267564","full_name":"OpenVPN/ovpn-backports","owner":"OpenVPN","description":" Out-of-tree backports for the ovpn kernel module","archived":false,"fork":false,"pushed_at":"2025-07-01T14:16:47.000Z","size":230,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-07-01T15:28:47.875Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenVPN.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-17T19:35:04.000Z","updated_at":"2025-06-23T14:15:49.000Z","dependencies_parsed_at":"2025-05-09T11:33:47.641Z","dependency_job_id":"01e9122d-644d-46f0-b943-db51cab60277","html_url":"https://github.com/OpenVPN/ovpn-backports","commit_stats":null,"previous_names":["openvpn/ovpn-backports"],"tags_count":42,"template":false,"template_full_name":null,"purl":"pkg:github/OpenVPN/ovpn-backports","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVPN%2Fovpn-backports","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVPN%2Fovpn-backports/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVPN%2Fovpn-backports/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVPN%2Fovpn-backports/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenVPN","download_url":"https://codeload.github.com/OpenVPN/ovpn-backports/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVPN%2Fovpn-backports/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263483277,"owners_count":23473539,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-09T09:08:02.851Z","updated_at":"2026-07-03T14:03:04.182Z","avatar_url":"https://github.com/OpenVPN.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Out-of-tree backports for the ovpn kernel module\n\nThe ovpn kernel module is part of the Linux kernel starting from version 6.16. It enhances OpenVPN performance by offloading data channel management to the kernel. This repository contains out-of-tree backports for the ovpn kernel module, enabling its use with older kernel versions.\n\n## Branch structure\n\nThe repository consists of two main branches:\n- `main`: tracks the latest code from the `net-next` tree.\n- `net`: tracks the latest code from the `net` tree.\n\nAdditionally, there are two branches dedicated to development and testing, which may contain code not yet part of any official kernel tree:\n- `development`: code built on top of the `net-next` tree.\n- `development-net`: code built on top of the `net` tree.\n\nFinally, there are four corresponding branches for pre-patched sources:\n- `sources`: pre-patched sources for `main`.\n- `net-sources`: pre-patched sources for `net`.\n- `development-sources`: pre-patched sources for `development`.\n- `development-net-sources`: pre-patched sources for `development-net`.\n\n## Installation\n\n### Packages\n\nYou can download packages from the [OpenVPN OBS repository](https://download.opensuse.org/repositories/isv:/OpenVPN:/Snapshots/).\n\n### Pre-patched sources\n\n#### Tags\n\nA pre-patched version of the source files is available for download in the [tags](https://github.com/OpenVPN/ovpn-backports/tags) section of this repository. Generally, you’ll want to download the packages containing either 'main' or 'net' in the name, as these track the 'net-next' and 'net' trees, respectively (see [branch structure](#branch-structure)).\n\nAfter downloading and ensuring the kernel headers are installed, simply run `make \u0026\u0026 make install` to build and install the module.\n\n#### Sources branch\n\nAnother way to download the pre-patched sources is to clone the repository and check out a branch containing `sources` in the name (see [branch structure](#branch-structure)). Then, after ensuring the kernel headers are installed, simply run `make \u0026\u0026 make install` to build and install the module.\n\n### Building from source\n\n#### Preparing the build environment\n\nTo build the module, you need the kernel headers (or sources) and the ovpn source files. You can either compile the module against your currently running kernel (by ensuring the headers are installed) or against a different kernel version by providing the appropriate path to the kernel sources.\n\nThe first step is to get the latest ovpn sources through the utility script `backports-ctl.sh`:\n\n```sh\n./backports-ctl.sh get-ovpn\n```\n\nBe aware that this command temporarily downloads a full kernel tree, extracts the ovpn files from it, and applies patches. If you want the kernel repository to persist, run the command with the `--keep` (or `-k`) option. This option keeps the repository in the `kernel` directory as a shallow copy, and subsequent runs will simply update it.\n\nTo import the ovpn selftests as well, add the `--tests` (or `-t`) option.\n\nAdditionally you can restore the repository to its original state with:\n\n```sh\n./backports-ctl.sh clean\n```\n\n#### Building and installing\n\nTo build the ovpn kernel module, just type:\n\n```sh\nmake\n```\n\nin the root folder. The Makefile will autodetect your running kernel and will try to use its headers to get the code compiled.\n\nTo include debugging symbols in the module, you can run:\n\n```sh\nmake debug # or make DEBUG=1\n```\n\nIf you want to build ovpn against a kernel different from the one running on the host, run:\n\n```sh\nmake KERNEL_SRC=/path/to/the/kernel/tree\n```\n\nThe control is passed to the kernel Makefile, therefore any kernel Makefile argument can be specified on the command line and it will be passed automatically. Once done building, executing the command:\n\n```sh\nmake install\n```\n\nwill install the ovpn.ko kernel module in the updates/ subfolder of the kernel modules directory on your system. It normally means `/lib/modules/$(uname -r)/updates/`.\n\n\u003e **_NOTE:_** If Secure Boot is enabled, you need to sign the module before loading it. Check [this](https://askubuntu.com/questions/760671/could-not-load-vboxdrv-after-upgrade-to-ubuntu-16-04-and-i-want-to-keep-secur/768310#768310) tutorial on how to sign a custom kernel module.\n\n## Testing\n\nIf the selftests were imported with `backports-ctl.sh get-ovpn -t`, you can build them with:\n\n```sh\nmake selftests\n```\n\nAfter building and installing the module, run the ovpn selftests with:\n\n```sh\nmake run_tests\n```\n\n### Kernel versions\n\nThe module was compiled and tested on the following distributions:\n - Ubuntu 20.04, 22.04, 24.04\n - Debian 11, 12\n - RHEL 8, 9, 10\n - openSUSE Tumbleweed/Slowroll\n - openSUSE SLE 15\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenvpn%2Fovpn-backports","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenvpn%2Fovpn-backports","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenvpn%2Fovpn-backports/lists"}