Skip to content

Add corosync qdevice#29269

Open
skirmess wants to merge 4 commits intoopenwrt:masterfrom
skirmess:add-corosync-qdevice
Open

Add corosync qdevice#29269
skirmess wants to merge 4 commits intoopenwrt:masterfrom
skirmess:add-corosync-qdevice

Conversation

@skirmess
Copy link
Copy Markdown

📦 Package Details

Maintainer: @skirmess, @sshaikh

Description:
Adds 4 new packages providing Corosync cluster infrastructure and the
corosync-qnetd quorum device daemon. These allow a 2-node Proxmox VE
(or other Corosync-based) cluster to maintain quorum when one node fails.

Packages added (in dependency order):

  • libs/libqb – high-performance IPC/logging library
  • net/kronosnet – network transport layer for Corosync (+ crypto subpackages)
  • net/corosync – cluster engine split into libcorosync + corosync
  • net/corosync-qdevice – quorum device daemon (corosync-qnetd)

🧪 Run Testing Details

  • OpenWrt Version: 25.12.2
  • OpenWrt Target/Subtarget: ath79/nand
  • OpenWrt Device: GL.iNet GL-AR300M16 (MIPS 24Kc)

✅ Formalities

  • I have reviewed the CONTRIBUTING.md file for detailed contributing guidelines.

If your PR contains a patch:

  • It can be applied using git am
  • It has been refreshed to avoid offsets, fuzzes, etc., using
    make package/<your-package>/refresh V=s
  • It is structured in a way that it is potentially upstreamable

@BKPepe BKPepe requested a review from Copilot April 28, 2026 21:11
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds new OpenWrt feed packages and supporting patches to provide Corosync clustering components (libqb, kronosnet, corosync) and the corosync-qnetd quorum device daemon for maintaining quorum in 2-node clusters.

Changes:

  • Introduce new packages: libs/libqb, net/kronosnet (+ crypto backend subpackages), net/corosync (split libcorosync + corosync), and net/corosync-qdevice.
  • Add OpenWrt-specific patches to corosync-qdevice certutil scripts (bash shebang + CA/noise-file handling).
  • Add an init script and a post-install hook to initialize the qnetd NSS DB.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
libs/libqb/Makefile New libqb package definition and install/dev-install rules.
net/kronosnet/Makefile New kronosnet package definition with crypto backend subpackages and install rules.
net/corosync/Makefile New corosync packaging split into libcorosync and corosync, with install/dev-install rules.
net/corosync-qdevice/Makefile New corosync-qdevice package, init installation, and postinst initialization of NSS DB.
net/corosync-qdevice/files/corosync-qdevice.init New procd init script to run corosync-qnetd.
net/corosync-qdevice/patches/0001-bash-path.patch Forces bash shebang for upstream certutil scripts.
net/corosync-qdevice/patches/0002-initialize-ca.patch OpenWrt adaptations: skip chown, adjust noise generation and hashing.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread net/corosync-qdevice/files/corosync-qdevice.init
Comment thread net/corosync-qdevice/Makefile
Comment thread net/corosync/Makefile Outdated
Comment thread net/corosync-qdevice/Makefile
Comment thread net/corosync-qdevice/Makefile Outdated
Comment thread libs/libqb/Makefile
Comment thread libs/libqb/Makefile Outdated
@skirmess skirmess force-pushed the add-corosync-qdevice branch 2 times, most recently from 397ccd1 to b071be8 Compare April 29, 2026 09:41
@skirmess skirmess marked this pull request as draft April 29, 2026 09:57
@skirmess skirmess force-pushed the add-corosync-qdevice branch from b071be8 to 8fa0a14 Compare April 29, 2026 10:14
@skirmess skirmess marked this pull request as ready for review April 29, 2026 10:16
Comment thread net/corosync-qdevice/Makefile Outdated
Comment thread net/corosync-qdevice/Makefile Outdated
@skirmess skirmess force-pushed the add-corosync-qdevice branch from 8fa0a14 to 95ba6ad Compare May 3, 2026 13:41
skirmess added 4 commits May 6, 2026 20:54
libqb provides high-performance, reusable features for client/server
architecture, including IPC, logging, and ringbuffer. Used by Corosync
and other cluster software.

Includes patches to remove libxml2 dependency, which was only required
for doxygen2man man page generation and not needed at runtime.

Link: https://github.com/ClusterLabs/libqb
Signed-off-by: Sven Kirmess <sven.kirmess@kzone.ch>
kronosnet (knet) is a network abstraction layer designed for High
Availability use cases. It provides multipoint-to-multipoint
communication with link aggregation, redundancy, and optional
compression/encryption. Used as the transport layer by Corosync.

Compression and crypto backends are split into separate packages:
- kronosnet-compress-lz4, lz4hc, zlib, lzo2, lzma, bzip2, zstd
- kronosnet-crypto-nss: Mozilla NSS backend
- kronosnet-crypto-openssl: OpenSSL backend

Link: https://github.com/kronosnet/kronosnet
Signed-off-by: Sven Kirmess <sven.kirmess@kzone.ch>
Corosync provides cluster infrastructure including reliable messaging,
membership, and quorum.

Split into two packages:
- libcorosync: shared libraries only
- corosync: daemon and management tools, depends on libcorosync

Link: https://corosync.github.io/corosync/
Signed-off-by: Sven Kirmess <sven.kirmess@kzone.ch>
corosync-qnetd is a daemon providing an external quorum vote for
Corosync clusters, allowing a 2-node cluster to maintain quorum when
one node fails. Commonly used with Proxmox VE clusters.

Includes two patches for musl/busybox compatibility:
- fix bash shebang path
- fix corosync-qnetd-certutil for busybox (ps, sha256sum, chown)

Link: https://github.com/corosync/corosync-qdevice
Signed-off-by: Sven Kirmess <sven.kirmess@kzone.ch>
@skirmess skirmess force-pushed the add-corosync-qdevice branch from 95ba6ad to 4920e20 Compare May 6, 2026 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants