irqbalance: update to version 1.9.5
authorHannu Nyman <hannu.nyman@iki.fi>
Sun, 25 Jan 2026 10:56:01 +0000 (12:56 +0200)
committerHannu Nyman <hannu.nyman@iki.fi>
Sun, 25 Jan 2026 13:27:22 +0000 (15:27 +0200)
Update to version 1.9.5

* Use upstream meson.build file, as they now support meson
  * patch it locally to continue using static glib linking

* Disable numa, systemd and thermal functions via meson options

* Resurrect the patch to silence repetitive EINVAL warnings.
  (patch was used with 1.9.3, but was not needed with 1.9.4)
  Related discussion in upstream issue 336 and 349

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
utils/irqbalance/Makefile
utils/irqbalance/patches/010-meson-set-glib2-static.patch [new file with mode: 0644]
utils/irqbalance/patches/010-meson.patch [deleted file]
utils/irqbalance/patches/020-mark-EINVAL-error-permanent.patch [new file with mode: 0644]
utils/irqbalance/patches/100-remove-libncursesw-dependency.patch [deleted file]

index d84bad319b248489eac0a99198fb67c076bb1e38..558f51b596f8fcf66af2e8e15861f5595929ad89 100644 (file)
@@ -5,13 +5,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=irqbalance
-PKG_VERSION:=1.9.4
+PKG_VERSION:=1.9.5
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/Irqbalance/irqbalance.git
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
-PKG_MIRROR_HASH:=0521b15bb15ad46704ccf65f7ae683a47d54e7bae57fbe4e2a4341da6d424e58
+PKG_MIRROR_HASH:=a9d53209c5e31503cdc61518ca5887bb01cf1dab546928272a9aa7051713e4be
 
 PKG_MAINTAINER:=Hannu Nyman <hannu.nyman@iki.fi>
 PKG_LICENSE:=GPL-2.0-or-later
@@ -43,11 +43,14 @@ endef
 
 MESON_ARGS += \
        -Dcapng=disabled \
+       -Dnuma=disabled \
+       -Dsystemd=disabled \
+       -Dthermal=disabled \
        -Dui=disabled
 
 define Package/irqbalance/install
        $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/irqbalance $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/irqbalance $(1)/usr/sbin/
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/irqbalance.init $(1)/etc/init.d/irqbalance
        $(INSTALL_DIR) $(1)/etc/config
diff --git a/utils/irqbalance/patches/010-meson-set-glib2-static.patch b/utils/irqbalance/patches/010-meson-set-glib2-static.patch
new file mode 100644 (file)
index 0000000..02d58f1
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/meson.build
++++ b/meson.build
+@@ -6,7 +6,7 @@ project('irqbalance', 'c',
+ cc = meson.get_compiler('c')
+-glib_dep = dependency('glib-2.0')
++glib_dep = dependency('glib-2.0', static: true)
+ m_dep = cc.find_library('m', required: false)
+ capng_dep = dependency('libcap-ng', required: get_option('capng'))
+ ncurses_dep = dependency('curses', required: get_option('ui'))
diff --git a/utils/irqbalance/patches/010-meson.patch b/utils/irqbalance/patches/010-meson.patch
deleted file mode 100644 (file)
index 9418e1c..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-From 35072fc06b9efe923f6ac1bd73b67c33d3ae619b Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Fri, 10 Jun 2022 23:14:27 -0700
-Subject: [PATCH] add meson
-
-Signed-off-by: Rosen Penev <rosenp@gmail.com>
-
-[update version string to 1.9.4]
-
----
- meson.build       | 43 +++++++++++++++++++++++++++++++++++++++++++
- meson_options.txt | 11 +++++++++++
- 2 files changed, 54 insertions(+)
- create mode 100644 meson.build
- create mode 100644 meson_options.txt
-
---- /dev/null
-+++ b/meson.build
-@@ -0,0 +1,43 @@
-+project('irqbalance', 'c',
-+  version : '1.9.4',
-+  default_options : ['warning_level=1']
-+)
-+
-+cc = meson.get_compiler('c')
-+
-+glib_dep = dependency('glib-2.0', static: true)
-+m_dep = cc.find_library('m', required: false)
-+capng_dep = dependency('libcap-ng', required: get_option('capng'))
-+ncurses_dep = dependency('curses', required: get_option('ui'))
-+systemd_dep = dependency('libsystemd', required: get_option('systemd'))
-+
-+cdata = configuration_data()
-+cdata.set('HAVE_GETOPT_LONG', cc.has_function('getopt_long'))
-+cdata.set('HAVE_IRQBALANCEUI', ncurses_dep.found())
-+cdata.set('HAVE_NUMA_H', cc.has_header('numa.h'))
-+cdata.set('HAVE_LIBCAP_NG', capng_dep.found())
-+cdata.set('HAVE_LIBSYSTEMD', systemd_dep.found())
-+cdata.set_quoted('VERSION', meson.project_version())
-+cfile = configure_file(
-+  output: 'config.h',
-+  configuration: cdata
-+)
-+
-+if cdata.get('HAVE_IRQBALANCEUI')
-+  add_project_arguments('-D_GNU_SOURCE', language: 'c')
-+endif
-+
-+
-+executable('irqbalance',
-+  'activate.c',
-+  'bitmap.c',
-+  'classify.c',
-+  'cputree.c',
-+  'irqbalance.c',
-+  'irqlist.c',
-+  'numa.c',
-+  'placement.c',
-+  'procinterrupts.c',
-+  dependencies: [ glib_dep, m_dep, capng_dep, ncurses_dep, systemd_dep ],
-+  install : true
-+)
---- /dev/null
-+++ b/meson_options.txt
-@@ -0,0 +1,11 @@
-+option('capng', type : 'feature',
-+  description : 'Build with libcap-ng support',
-+)
-+
-+option('systemd', type : 'feature',
-+  description : 'Build with systemd support',
-+)
-+
-+option('ui', type : 'feature',
-+  description : 'Build the UI component',
-+)
diff --git a/utils/irqbalance/patches/020-mark-EINVAL-error-permanent.patch b/utils/irqbalance/patches/020-mark-EINVAL-error-permanent.patch
new file mode 100644 (file)
index 0000000..0295520
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/activate.c
++++ b/activate.c
+@@ -103,7 +103,6 @@ error:
+       switch (errsave) {
+       case EAGAIN: /* Interrupted by signal. */
+       case EBUSY: /* Affinity change already in progress. */
+-      case EINVAL: /* IRQ would be bound to no CPU. */
+       case ERANGE: /* CPU in mask is offline. */
+       case ENOMEM: /* Kernel cannot allocate CPU mask. */
+               /* Do not blacklist the IRQ on transient errors. */
diff --git a/utils/irqbalance/patches/100-remove-libncursesw-dependency.patch b/utils/irqbalance/patches/100-remove-libncursesw-dependency.patch
deleted file mode 100644 (file)
index 917a46d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -41,7 +41,7 @@ PKG_CHECK_MODULES([NCURSESW], [ncursesw]
- AS_IF([test "x$has_ncursesw" = "xyes"], [
-   AC_SUBST([NCURSESW_CFLAGS])
-   AC_SUBST([NCURSESW_LIBS])
--  LIBS="$LIBS $NCURSESW_LIBS"
-+  LIBS="$LIBS"
-   AC_SUBST([LIBS])
- ])