irqbalance: add meson
authorRosen Penev <rosenp@gmail.com>
Thu, 9 Jun 2022 22:30:40 +0000 (15:30 -0700)
committerHannu Nyman <hannu.nyman@iki.fi>
Tue, 19 Jul 2022 13:19:05 +0000 (16:19 +0300)
Fixes compilation when libiconv is missing.

Also remove pthread from glibc. No longer needed.

Cleanup Makefile for consistency between packages.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
utils/irqbalance/Makefile
utils/irqbalance/patches/010-meson.patch [new file with mode: 0644]

index 6347ee15361bca50137aea29008fc80c9b29165d..09a744a6ee6b4791413240a4a318a955dc44a7d9 100644 (file)
@@ -8,24 +8,18 @@ PKG_NAME:=irqbalance
 PKG_VERSION:=1.9.0
 PKG_RELEASE:=$(AUTORELEASE)
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/Irqbalance/irqbalance.git
-PKG_SOURCE_VERSION:=80d5fbb947debe221e4c23c0ee0f4f2b89a99443
+PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 PKG_MIRROR_HASH:=9af2e51d2696bc51400223dee2009071bee5f12b3a5050f18c7de23632e2190d
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_LICENSE:=GPLv2
 
 PKG_MAINTAINER:=Hannu Nyman <hannu.nyman@iki.fi>
-
-PKG_FIXUP:=autoreconf
-PKG_REMOVE_FILES:=autogen.sh
-
-PKG_BUILD_PARALLEL:=1
-
-include $(INCLUDE_DIR)/nls.mk
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_LICENSE_FILES:=COPYING
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/meson.mk
 
 PKG_BUILD_DEPENDS += glib2
 
@@ -43,34 +37,17 @@ define Package/irqbalance/description
  increase performance.
 endef
 
-CONFIGURE_ARGS+= \
-       --disable-numa \
-       --with-libcap_ng=no \
-       --with-systemd=no \
-       --without-irqbalance-ui \
-       --enable-static=glib2
-
-GLIB2_LIBS="$(STAGING_DIR)/usr/lib/libglib-2.0.a"
-
-ifeq ($(CONFIG_BUILD_NLS),y)
-       GLIB2_LIBS += $(INTL_LDFLAGS) -lintl
-endif
-
-ifeq ($(CONFIG_USE_GLIBC),y)
-       GLIB2_LIBS += -lpthread
-endif
-
-CONFIGURE_VARS += \
-       GLIB2_LIBS="$(GLIB2_LIBS) \
-               $(ICONV_LDFLAGS) -liconv"
-
 define Package/irqbalance/conffiles
 /etc/config/irqbalance
 endef
 
+MESON_ARGS += \
+       -Dcapng=disabled \
+       -Dui=disabled
+
 define Package/irqbalance/install
        $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/irqbalance $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/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.patch b/utils/irqbalance/patches/010-meson.patch
new file mode 100644 (file)
index 0000000..7e3ae36
--- /dev/null
@@ -0,0 +1,73 @@
+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>
+---
+ 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.0',
++  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',
++)