| Message ID | tencent_48D3734B550F356650C664773A0B33A9DF06@qq.com |
|---|---|
| State | Under Review |
| Headers | show |
| Series | [meta-oe,RESEND,v3] nethogs: add recipe | expand |
https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/4127330/raw_inline On Tue, Nov 11, 2025 at 9:24 AM <wenyang.linux@foxmail.com> wrote: > From: Wen Yang <wenyang.linux@foxmail.com> > > NetHogs is a small 'net top' tool. Instead of breaking the traffic > down per protocol or per subnet, like most tools do, it groups > bandwidth by process. > > Signed-off-by: Wen Yang <wenyang.linux@foxmail.com> > --- > ...0001-meson-cleanup-version-detection.patch | 49 +++++ > ...n-fix-build-with-libnethogs-disabled.patch | 38 ++++ > .../files/0003-meson-run-meson-format.patch | 183 ++++++++++++++++++ > .../files/0004-meson-fix-library-name.patch | 25 +++ > ...-security-flags-to-LDFLAGS-for-Linux.patch | 25 +++ > ...S-for-devices.cpp-and-libnethogs.cpp.patch | 30 +++ > .../nethogs/nethogs_git.bb | 21 ++ > 7 files changed, 371 insertions(+) > create mode 100644 > meta-oe/recipes-connectivity/nethogs/files/0001-meson-cleanup-version-detection.patch > create mode 100644 > meta-oe/recipes-connectivity/nethogs/files/0002-meson-fix-build-with-libnethogs-disabled.patch > create mode 100644 > meta-oe/recipes-connectivity/nethogs/files/0003-meson-run-meson-format.patch > create mode 100644 > meta-oe/recipes-connectivity/nethogs/files/0004-meson-fix-library-name.patch > create mode 100644 > meta-oe/recipes-connectivity/nethogs/files/0005-Add-security-flags-to-LDFLAGS-for-Linux.patch > create mode 100644 > meta-oe/recipes-connectivity/nethogs/files/0006-Include-CPPFLAGS-for-devices.cpp-and-libnethogs.cpp.patch > create mode 100644 meta-oe/recipes-connectivity/nethogs/nethogs_git.bb > > diff --git > a/meta-oe/recipes-connectivity/nethogs/files/0001-meson-cleanup-version-detection.patch > b/meta-oe/recipes-connectivity/nethogs/files/0001-meson-cleanup-version-detection.patch > new file mode 100644 > index 0000000000..797c79225d > --- /dev/null > +++ > b/meta-oe/recipes-connectivity/nethogs/files/0001-meson-cleanup-version-detection.patch > @@ -0,0 +1,49 @@ > +From 049fff5623720fcd0b4fdc92501b586addbb6b48 Mon Sep 17 00:00:00 2001 > +From: Sam James <sam@gentoo.org> > +Date: Sat, 25 Jan 2025 16:03:12 +0000 > +Subject: [PATCH 1/6] meson: cleanup version detection > + > +Tell Meson what version the project is, so that we set the right > versioning > +on libnethogs. > + > +Upstream-Status: Backport [ > https://github.com/raboof/nethogs/commit/049fff5623720fcd0b4fdc92501b586addbb6b48 > ] > +--- > + meson.build | 8 ++++---- > + 1 file changed, 4 insertions(+), 4 deletions(-) > + > +diff --git a/meson.build b/meson.build > +index 81d7b59..16e61b4 100644 > +--- a/meson.build > ++++ b/meson.build > +@@ -5,11 +5,11 @@ > + project('nethogs', > + ['c', 'cpp'], > + default_options : ['warning_level=3', > +- 'cpp_std=c++14'] > ++ 'cpp_std=c++14'], > ++ version : run_command('./determineVersion.sh').stdout().strip(), > + ) > + > + cc = meson.get_compiler('cpp') > +-version = run_command('./determineVersion.sh', check: > true).stdout().strip() > + > + ####################################### > + ## Dependencies and flags definition ## > +@@ -19,7 +19,7 @@ projectinc = [include_directories('.', 'src')] > + > + # flags > + c_args = [ > +- '-DVERSION="' + version + '"' > ++ '-DVERSION="' + meson.project_version() + '"' > + ] > + > + # dependencies > +@@ -42,5 +42,5 @@ pkgconfig = import('pkgconfig') > + pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') > + pkgconfig.generate(libnethogs, > + requires: ['libpcap'], > +- version: version > ++ version: meson.project_version() > + ) > +-- > +2.25.1 > diff --git > a/meta-oe/recipes-connectivity/nethogs/files/0002-meson-fix-build-with-libnethogs-disabled.patch > b/meta-oe/recipes-connectivity/nethogs/files/0002-meson-fix-build-with-libnethogs-disabled.patch > new file mode 100644 > index 0000000000..c9a7cf69d6 > --- /dev/null > +++ > b/meta-oe/recipes-connectivity/nethogs/files/0002-meson-fix-build-with-libnethogs-disabled.patch > @@ -0,0 +1,38 @@ > +From 5afce747f142f6df6a264ab368c99f47050d9984 Mon Sep 17 00:00:00 2001 > +From: Sam James <sam@gentoo.org> > +Date: Sat, 25 Jan 2025 16:05:20 +0000 > +Subject: [PATCH 2/6] meson: fix build with libnethogs disabled > + > +Fix `meson.build:43:19: ERROR: Unknown variable "libnethogs".`. > + > +While src/ has this correct, the top-level meson.build wasn't right. > + > +Upstream-Status: Backport [ > https://github.com/raboof/nethogs/commit/5afce747f142f6df6a264ab368c99f47050d9984 > ] > +--- > + meson.build | 14 ++++++++------ > + 1 file changed, 8 insertions(+), 6 deletions(-) > + > +diff --git a/meson.build b/meson.build > +index 16e61b4..8537718 100644 > +--- a/meson.build > ++++ b/meson.build > +@@ -38,9 +38,11 @@ subdir('src') > + ############################# > + ## Pkgconfig definition ## > + ############################# > +-pkgconfig = import('pkgconfig') > +-pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') > +-pkgconfig.generate(libnethogs, > +- requires: ['libpcap'], > +- version: meson.project_version() > +- ) > ++if get_option('enable-libnethogs').enabled() > ++ pkgconfig = import('pkgconfig') > ++ pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') > ++ pkgconfig.generate(libnethogs, > ++ requires: ['libpcap'], > ++ version: meson.project_version() > ++ ) > ++endif > +-- > +2.25.1 > diff --git > a/meta-oe/recipes-connectivity/nethogs/files/0003-meson-run-meson-format.patch > b/meta-oe/recipes-connectivity/nethogs/files/0003-meson-run-meson-format.patch > new file mode 100644 > index 0000000000..9c92a9d835 > --- /dev/null > +++ > b/meta-oe/recipes-connectivity/nethogs/files/0003-meson-run-meson-format.patch > @@ -0,0 +1,183 @@ > +From fcbde46b0082b4c571392ea9b6427f5e11941393 Mon Sep 17 00:00:00 2001 > +From: Sam James <sam@gentoo.org> > +Date: Sat, 25 Jan 2025 16:06:12 +0000 > +Subject: [PATCH 3/6] meson: run `meson format` > + > +Upstream-Status: Backport [ > https://github.com/raboof/nethogs/commit/fcbde46b0082b4c571392ea9b6427f5e11941393 > ] > +--- > + meson.build | 34 +++++++++---------- > + src/meson.build | 87 ++++++++++++++++++++++--------------------------- > + 2 files changed, 54 insertions(+), 67 deletions(-) > + > +diff --git a/meson.build b/meson.build > +index 8537718..eb9f16e 100644 > +--- a/meson.build > ++++ b/meson.build > +@@ -2,12 +2,12 @@ > + # See COPYING for more information about licensing > + # > + > +-project('nethogs', > +- ['c', 'cpp'], > +- default_options : ['warning_level=3', > +- 'cpp_std=c++14'], > +- version : run_command('./determineVersion.sh').stdout().strip(), > +- ) > ++project( > ++ 'nethogs', > ++ ['c', 'cpp'], > ++ default_options: ['warning_level=3', 'cpp_std=c++14'], > ++ version: run_command('./determineVersion.sh').stdout().strip(), > ++) > + > + cc = meson.get_compiler('cpp') > + > +@@ -18,17 +18,12 @@ cc = meson.get_compiler('cpp') > + projectinc = [include_directories('.', 'src')] > + > + # flags > +-c_args = [ > +- '-DVERSION="' + meson.project_version() + '"' > +-] > ++c_args = ['-DVERSION="' + meson.project_version() + '"'] > + > + # dependencies > + thread_dep = dependency('threads', required: true) > + libpcap_dep = dependency('libpcap', required: true) > +-project_deps = [ > +- thread_dep, > +- libpcap_dep > +-] > ++project_deps = [thread_dep, libpcap_dep] > + > + ############################# > + ## Code Compilation ## > +@@ -39,10 +34,11 @@ subdir('src') > + ## Pkgconfig definition ## > + ############################# > + if get_option('enable-libnethogs').enabled() > +- pkgconfig = import('pkgconfig') > +- pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') > +- pkgconfig.generate(libnethogs, > +- requires: ['libpcap'], > +- version: meson.project_version() > +- ) > ++ pkgconfig = import('pkgconfig') > ++ pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') > ++ pkgconfig.generate( > ++ libnethogs, > ++ requires: ['libpcap'], > ++ version: meson.project_version(), > ++ ) > + endif > +diff --git a/src/meson.build b/src/meson.build > +index 03f1b58..1329df4 100644 > +--- a/src/meson.build > ++++ b/src/meson.build > +@@ -3,65 +3,56 @@ > + # > + > + sources = [ > +- files([ > +- 'connection.cpp', > +- 'conninode.cpp', > +- 'decpcap.c', > +- 'devices.cpp', > +- 'inode2prog.cpp', > +- 'packet.cpp', > +- 'process.cpp', > +- ]) > ++ files( > ++ 'connection.cpp', > ++ 'conninode.cpp', > ++ 'decpcap.c', > ++ 'devices.cpp', > ++ 'inode2prog.cpp', > ++ 'packet.cpp', > ++ 'process.cpp', > ++ ), > + ] > + > + # --- Executable Compilation --- > + > + if get_option('enable-nethogs-app').enabled() > +- app_sources = [ > +- files([ > +- 'main.cpp', > +- 'cui.cpp', > +- ]) > +- ] > +- > +- cursespp_dep = dependency('ncurses++', required: true) > +- curses_dep = dependency('ncurses', required: true) > +- > +- executable('nethogs', > +- [app_sources + sources], > +- include_directories: [projectinc], > +- cpp_args: c_args, > +- c_args: c_args, > +- install: true, > +- dependencies : [project_deps, cursespp_dep, curses_dep] > +- ) > ++ app_sources = [files('cui.cpp', 'main.cpp')] > ++ > ++ cursespp_dep = dependency('ncurses++', required: true) > ++ curses_dep = dependency('ncurses', required: true) > ++ > ++ executable( > ++ 'nethogs', > ++ [app_sources + sources], > ++ include_directories: [projectinc], > ++ cpp_args: c_args, > ++ c_args: c_args, > ++ install: true, > ++ dependencies: [project_deps, cursespp_dep, curses_dep], > ++ ) > + endif > + > + # --- Library Compilation --- > + > + if get_option('enable-libnethogs').enabled() > +- lib_sources = [ > +- files([ > +- 'libnethogs.cpp', > +- ]) > +- ] > ++ lib_sources = [files('libnethogs.cpp')] > ++ > ++ libnethogs = shared_library( > ++ 'libnethogs' , > ++ sources + lib_sources, > ++ cpp_args: c_args, > ++ c_args: c_args, > ++ install: true, > ++ soversion: meson.project_version(), > ++ include_directories: [projectinc], > ++ dependencies: [project_deps], > ++ ) > + > +- libnethogs = shared_library('libnethogs' , > +- sources + lib_sources, > +- cpp_args: c_args, > +- c_args: c_args, > +- install: true, > +- soversion: meson.project_version(), > +- include_directories: [projectinc], > +- dependencies: [project_deps] > +- ) > +- > +- libnethogs_dep = declare_dependency(link_with: libnethogs) > ++ libnethogs_dep = declare_dependency(link_with: libnethogs) > + > +- # --- Header Installation --- > ++ # --- Header Installation --- > + > +- lib_headers = [ > +- files('libnethogs.h'), > +- ] > +- install_headers(lib_headers, subdir : 'libnethogs') > ++ lib_headers = [files('libnethogs.h')] > ++ install_headers(lib_headers, subdir: 'libnethogs') > + endif > +-- > +2.25.1 > diff --git > a/meta-oe/recipes-connectivity/nethogs/files/0004-meson-fix-library-name.patch > b/meta-oe/recipes-connectivity/nethogs/files/0004-meson-fix-library-name.patch > new file mode 100644 > index 0000000000..cc69a66748 > --- /dev/null > +++ > b/meta-oe/recipes-connectivity/nethogs/files/0004-meson-fix-library-name.patch > @@ -0,0 +1,25 @@ > +From ba25a64dcd35f4a58c4d397160e90560e9851c79 Mon Sep 17 00:00:00 2001 > +From: CAB233 <yidaduizuoye@outlook.com> > +Date: Mon, 24 Feb 2025 20:06:52 +0800 > +Subject: [PATCH 4/6] meson: fix library name > + > +Upstream-Status: Backport [ > https://github.com/raboof/nethogs/commit/ba25a64dcd35f4a58c4d397160e90560e9851c79 > ] > +--- > + src/meson.build | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/src/meson.build b/src/meson.build > +index 1329df4..7f6dcba 100644 > +--- a/src/meson.build > ++++ b/src/meson.build > +@@ -39,7 +39,7 @@ if get_option('enable-libnethogs').enabled() > + lib_sources = [files('libnethogs.cpp')] > + > + libnethogs = shared_library( > +- 'libnethogs' , > ++ 'nethogs' , > + sources + lib_sources, > + cpp_args: c_args, > + c_args: c_args, > +-- > +2.25.1 > diff --git > a/meta-oe/recipes-connectivity/nethogs/files/0005-Add-security-flags-to-LDFLAGS-for-Linux.patch > b/meta-oe/recipes-connectivity/nethogs/files/0005-Add-security-flags-to-LDFLAGS-for-Linux.patch > new file mode 100644 > index 0000000000..553b382a66 > --- /dev/null > +++ > b/meta-oe/recipes-connectivity/nethogs/files/0005-Add-security-flags-to-LDFLAGS-for-Linux.patch > @@ -0,0 +1,25 @@ > +From 42e7950db8e412160e3f1f74b6cbc7298714c587 Mon Sep 17 00:00:00 2001 > +From: Matheus Polkorny <mpolkorny@ipt.br> > +Date: Tue, 25 Mar 2025 00:47:04 -0300 > +Subject: [PATCH 5/6] Add security flags to LDFLAGS for Linux > + > +Upstream-Status: Backport [ > https://github.com/raboof/nethogs/commit/42e7950db8e412160e3f1f74b6cbc7298714c587 > ] > +--- > + src/MakeLib.mk | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/src/MakeLib.mk b/src/MakeLib.mk > +index 96ba694..1be0361 100644 > +--- a/src/MakeLib.mk > ++++ b/src/MakeLib.mk > +@@ -10,7 +10,7 @@ all: $(LIBNAME) libnethogs.a > + > + UNAME_S := $(shell uname -s) > + ifeq ($(UNAME_S),Linux) > +- LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) > ++ LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) -Wl,-z,now -Wl,-z,relro > + else ifeq ($(UNAME_S),FreeBSD) > + LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) > + else > +-- > +2.25.1 > diff --git > a/meta-oe/recipes-connectivity/nethogs/files/0006-Include-CPPFLAGS-for-devices.cpp-and-libnethogs.cpp.patch > b/meta-oe/recipes-connectivity/nethogs/files/0006-Include-CPPFLAGS-for-devices.cpp-and-libnethogs.cpp.patch > new file mode 100644 > index 0000000000..485d476c50 > --- /dev/null > +++ > b/meta-oe/recipes-connectivity/nethogs/files/0006-Include-CPPFLAGS-for-devices.cpp-and-libnethogs.cpp.patch > @@ -0,0 +1,30 @@ > +From 1407f83485c31cd6f29614402bb2a3e912a3dd34 Mon Sep 17 00:00:00 2001 > +From: Matheus Polkorny <mpolkorny@ipt.br> > +Date: Tue, 25 Mar 2025 00:48:20 -0300 > +Subject: [PATCH 6/6] Include $(CPPFLAGS) for devices.cpp and > libnethogs.cpp > + > +Upstream-Status: Backport [ > https://github.com/raboof/nethogs/commit/1407f83485c31cd6f29614402bb2a3e912a3dd34 > ] > +--- > + src/MakeLib.mk | 4 ++-- > + 1 file changed, 2 insertions(+), 2 deletions(-) > + > +diff --git a/src/MakeLib.mk b/src/MakeLib.mk > +index 1be0361..513096e 100644 > +--- a/src/MakeLib.mk > ++++ b/src/MakeLib.mk > +@@ -97,11 +97,11 @@ $(ODIR)/conninode.o: conninode.cpp nethogs.h > conninode.h > + > + $(ODIR)/devices.o: devices.cpp devices.h > + @mkdir -p $(ODIR) > +- $(CXX) $(CXXFLAGS) -o $@ -c devices.cpp > ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c devices.cpp > + > + $(ODIR)/libnethogs.o: libnethogs.cpp libnethogs.h > + @mkdir -p $(ODIR) > +- $(CXX) $(CXXFLAGS) -o $@ -c libnethogs.cpp > -DVERSION=\"$(LIBVERSION)\" > ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c libnethogs.cpp > -DVERSION=\"$(LIBVERSION)\" > + > + .PHONY: clean > + clean: > +-- > +2.25.1 > diff --git a/meta-oe/recipes-connectivity/nethogs/nethogs_git.bb > b/meta-oe/recipes-connectivity/nethogs/nethogs_git.bb > new file mode 100644 > index 0000000000..816cd9c542 > --- /dev/null > +++ b/meta-oe/recipes-connectivity/nethogs/nethogs_git.bb > @@ -0,0 +1,21 @@ > +SUMMARY = "NetHogs is a small 'net top' tool that can group bandwidth by > process" > +HOMEPAGE = "https://github.com/raboof/nethogs" > +SECTION = "console/network" > +LICENSE = "GPL-2.0-only" > +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" > + > +SRC_URI = "git://github.com/raboof/nethogs.git;branch=main;protocol=https > \ > + file://0001-meson-cleanup-version-detection.patch \ > + file://0002-meson-fix-build-with-libnethogs-disabled.patch \ > + file://0003-meson-run-meson-format.patch \ > + file://0004-meson-fix-library-name.patch \ > + file://0005-Add-security-flags-to-LDFLAGS-for-Linux.patch \ > + > file://0006-Include-CPPFLAGS-for-devices.cpp-and-libnethogs.cpp.patch \ > + " > + > +DEPENDS = "ncurses libpcap" > + > +inherit meson pkgconfig > + > +SRCREV = "632a78846eb3cc3259dc45c59a47fa9c293a2831" > +PV = "0.8.8+git" > -- > 2.25.1 > >
diff --git a/meta-oe/recipes-connectivity/nethogs/files/0001-meson-cleanup-version-detection.patch b/meta-oe/recipes-connectivity/nethogs/files/0001-meson-cleanup-version-detection.patch new file mode 100644 index 0000000000..797c79225d --- /dev/null +++ b/meta-oe/recipes-connectivity/nethogs/files/0001-meson-cleanup-version-detection.patch @@ -0,0 +1,49 @@ +From 049fff5623720fcd0b4fdc92501b586addbb6b48 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Sat, 25 Jan 2025 16:03:12 +0000 +Subject: [PATCH 1/6] meson: cleanup version detection + +Tell Meson what version the project is, so that we set the right versioning +on libnethogs. + +Upstream-Status: Backport [https://github.com/raboof/nethogs/commit/049fff5623720fcd0b4fdc92501b586addbb6b48] +--- + meson.build | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/meson.build b/meson.build +index 81d7b59..16e61b4 100644 +--- a/meson.build ++++ b/meson.build +@@ -5,11 +5,11 @@ + project('nethogs', + ['c', 'cpp'], + default_options : ['warning_level=3', +- 'cpp_std=c++14'] ++ 'cpp_std=c++14'], ++ version : run_command('./determineVersion.sh').stdout().strip(), + ) + + cc = meson.get_compiler('cpp') +-version = run_command('./determineVersion.sh', check: true).stdout().strip() + + ####################################### + ## Dependencies and flags definition ## +@@ -19,7 +19,7 @@ projectinc = [include_directories('.', 'src')] + + # flags + c_args = [ +- '-DVERSION="' + version + '"' ++ '-DVERSION="' + meson.project_version() + '"' + ] + + # dependencies +@@ -42,5 +42,5 @@ pkgconfig = import('pkgconfig') + pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') + pkgconfig.generate(libnethogs, + requires: ['libpcap'], +- version: version ++ version: meson.project_version() + ) +-- +2.25.1 diff --git a/meta-oe/recipes-connectivity/nethogs/files/0002-meson-fix-build-with-libnethogs-disabled.patch b/meta-oe/recipes-connectivity/nethogs/files/0002-meson-fix-build-with-libnethogs-disabled.patch new file mode 100644 index 0000000000..c9a7cf69d6 --- /dev/null +++ b/meta-oe/recipes-connectivity/nethogs/files/0002-meson-fix-build-with-libnethogs-disabled.patch @@ -0,0 +1,38 @@ +From 5afce747f142f6df6a264ab368c99f47050d9984 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Sat, 25 Jan 2025 16:05:20 +0000 +Subject: [PATCH 2/6] meson: fix build with libnethogs disabled + +Fix `meson.build:43:19: ERROR: Unknown variable "libnethogs".`. + +While src/ has this correct, the top-level meson.build wasn't right. + +Upstream-Status: Backport [https://github.com/raboof/nethogs/commit/5afce747f142f6df6a264ab368c99f47050d9984] +--- + meson.build | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/meson.build b/meson.build +index 16e61b4..8537718 100644 +--- a/meson.build ++++ b/meson.build +@@ -38,9 +38,11 @@ subdir('src') + ############################# + ## Pkgconfig definition ## + ############################# +-pkgconfig = import('pkgconfig') +-pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') +-pkgconfig.generate(libnethogs, +- requires: ['libpcap'], +- version: meson.project_version() +- ) ++if get_option('enable-libnethogs').enabled() ++ pkgconfig = import('pkgconfig') ++ pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') ++ pkgconfig.generate(libnethogs, ++ requires: ['libpcap'], ++ version: meson.project_version() ++ ) ++endif +-- +2.25.1 diff --git a/meta-oe/recipes-connectivity/nethogs/files/0003-meson-run-meson-format.patch b/meta-oe/recipes-connectivity/nethogs/files/0003-meson-run-meson-format.patch new file mode 100644 index 0000000000..9c92a9d835 --- /dev/null +++ b/meta-oe/recipes-connectivity/nethogs/files/0003-meson-run-meson-format.patch @@ -0,0 +1,183 @@ +From fcbde46b0082b4c571392ea9b6427f5e11941393 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Sat, 25 Jan 2025 16:06:12 +0000 +Subject: [PATCH 3/6] meson: run `meson format` + +Upstream-Status: Backport [https://github.com/raboof/nethogs/commit/fcbde46b0082b4c571392ea9b6427f5e11941393] +--- + meson.build | 34 +++++++++---------- + src/meson.build | 87 ++++++++++++++++++++++--------------------------- + 2 files changed, 54 insertions(+), 67 deletions(-) + +diff --git a/meson.build b/meson.build +index 8537718..eb9f16e 100644 +--- a/meson.build ++++ b/meson.build +@@ -2,12 +2,12 @@ + # See COPYING for more information about licensing + # + +-project('nethogs', +- ['c', 'cpp'], +- default_options : ['warning_level=3', +- 'cpp_std=c++14'], +- version : run_command('./determineVersion.sh').stdout().strip(), +- ) ++project( ++ 'nethogs', ++ ['c', 'cpp'], ++ default_options: ['warning_level=3', 'cpp_std=c++14'], ++ version: run_command('./determineVersion.sh').stdout().strip(), ++) + + cc = meson.get_compiler('cpp') + +@@ -18,17 +18,12 @@ cc = meson.get_compiler('cpp') + projectinc = [include_directories('.', 'src')] + + # flags +-c_args = [ +- '-DVERSION="' + meson.project_version() + '"' +-] ++c_args = ['-DVERSION="' + meson.project_version() + '"'] + + # dependencies + thread_dep = dependency('threads', required: true) + libpcap_dep = dependency('libpcap', required: true) +-project_deps = [ +- thread_dep, +- libpcap_dep +-] ++project_deps = [thread_dep, libpcap_dep] + + ############################# + ## Code Compilation ## +@@ -39,10 +34,11 @@ subdir('src') + ## Pkgconfig definition ## + ############################# + if get_option('enable-libnethogs').enabled() +- pkgconfig = import('pkgconfig') +- pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') +- pkgconfig.generate(libnethogs, +- requires: ['libpcap'], +- version: meson.project_version() +- ) ++ pkgconfig = import('pkgconfig') ++ pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') ++ pkgconfig.generate( ++ libnethogs, ++ requires: ['libpcap'], ++ version: meson.project_version(), ++ ) + endif +diff --git a/src/meson.build b/src/meson.build +index 03f1b58..1329df4 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -3,65 +3,56 @@ + # + + sources = [ +- files([ +- 'connection.cpp', +- 'conninode.cpp', +- 'decpcap.c', +- 'devices.cpp', +- 'inode2prog.cpp', +- 'packet.cpp', +- 'process.cpp', +- ]) ++ files( ++ 'connection.cpp', ++ 'conninode.cpp', ++ 'decpcap.c', ++ 'devices.cpp', ++ 'inode2prog.cpp', ++ 'packet.cpp', ++ 'process.cpp', ++ ), + ] + + # --- Executable Compilation --- + + if get_option('enable-nethogs-app').enabled() +- app_sources = [ +- files([ +- 'main.cpp', +- 'cui.cpp', +- ]) +- ] +- +- cursespp_dep = dependency('ncurses++', required: true) +- curses_dep = dependency('ncurses', required: true) +- +- executable('nethogs', +- [app_sources + sources], +- include_directories: [projectinc], +- cpp_args: c_args, +- c_args: c_args, +- install: true, +- dependencies : [project_deps, cursespp_dep, curses_dep] +- ) ++ app_sources = [files('cui.cpp', 'main.cpp')] ++ ++ cursespp_dep = dependency('ncurses++', required: true) ++ curses_dep = dependency('ncurses', required: true) ++ ++ executable( ++ 'nethogs', ++ [app_sources + sources], ++ include_directories: [projectinc], ++ cpp_args: c_args, ++ c_args: c_args, ++ install: true, ++ dependencies: [project_deps, cursespp_dep, curses_dep], ++ ) + endif + + # --- Library Compilation --- + + if get_option('enable-libnethogs').enabled() +- lib_sources = [ +- files([ +- 'libnethogs.cpp', +- ]) +- ] ++ lib_sources = [files('libnethogs.cpp')] ++ ++ libnethogs = shared_library( ++ 'libnethogs' , ++ sources + lib_sources, ++ cpp_args: c_args, ++ c_args: c_args, ++ install: true, ++ soversion: meson.project_version(), ++ include_directories: [projectinc], ++ dependencies: [project_deps], ++ ) + +- libnethogs = shared_library('libnethogs' , +- sources + lib_sources, +- cpp_args: c_args, +- c_args: c_args, +- install: true, +- soversion: meson.project_version(), +- include_directories: [projectinc], +- dependencies: [project_deps] +- ) +- +- libnethogs_dep = declare_dependency(link_with: libnethogs) ++ libnethogs_dep = declare_dependency(link_with: libnethogs) + +- # --- Header Installation --- ++ # --- Header Installation --- + +- lib_headers = [ +- files('libnethogs.h'), +- ] +- install_headers(lib_headers, subdir : 'libnethogs') ++ lib_headers = [files('libnethogs.h')] ++ install_headers(lib_headers, subdir: 'libnethogs') + endif +-- +2.25.1 diff --git a/meta-oe/recipes-connectivity/nethogs/files/0004-meson-fix-library-name.patch b/meta-oe/recipes-connectivity/nethogs/files/0004-meson-fix-library-name.patch new file mode 100644 index 0000000000..cc69a66748 --- /dev/null +++ b/meta-oe/recipes-connectivity/nethogs/files/0004-meson-fix-library-name.patch @@ -0,0 +1,25 @@ +From ba25a64dcd35f4a58c4d397160e90560e9851c79 Mon Sep 17 00:00:00 2001 +From: CAB233 <yidaduizuoye@outlook.com> +Date: Mon, 24 Feb 2025 20:06:52 +0800 +Subject: [PATCH 4/6] meson: fix library name + +Upstream-Status: Backport [https://github.com/raboof/nethogs/commit/ba25a64dcd35f4a58c4d397160e90560e9851c79] +--- + src/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/meson.build b/src/meson.build +index 1329df4..7f6dcba 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -39,7 +39,7 @@ if get_option('enable-libnethogs').enabled() + lib_sources = [files('libnethogs.cpp')] + + libnethogs = shared_library( +- 'libnethogs' , ++ 'nethogs' , + sources + lib_sources, + cpp_args: c_args, + c_args: c_args, +-- +2.25.1 diff --git a/meta-oe/recipes-connectivity/nethogs/files/0005-Add-security-flags-to-LDFLAGS-for-Linux.patch b/meta-oe/recipes-connectivity/nethogs/files/0005-Add-security-flags-to-LDFLAGS-for-Linux.patch new file mode 100644 index 0000000000..553b382a66 --- /dev/null +++ b/meta-oe/recipes-connectivity/nethogs/files/0005-Add-security-flags-to-LDFLAGS-for-Linux.patch @@ -0,0 +1,25 @@ +From 42e7950db8e412160e3f1f74b6cbc7298714c587 Mon Sep 17 00:00:00 2001 +From: Matheus Polkorny <mpolkorny@ipt.br> +Date: Tue, 25 Mar 2025 00:47:04 -0300 +Subject: [PATCH 5/6] Add security flags to LDFLAGS for Linux + +Upstream-Status: Backport [https://github.com/raboof/nethogs/commit/42e7950db8e412160e3f1f74b6cbc7298714c587] +--- + src/MakeLib.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/MakeLib.mk b/src/MakeLib.mk +index 96ba694..1be0361 100644 +--- a/src/MakeLib.mk ++++ b/src/MakeLib.mk +@@ -10,7 +10,7 @@ all: $(LIBNAME) libnethogs.a + + UNAME_S := $(shell uname -s) + ifeq ($(UNAME_S),Linux) +- LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) ++ LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) -Wl,-z,now -Wl,-z,relro + else ifeq ($(UNAME_S),FreeBSD) + LDFLAGS:= -shared -Wl,-soname,$(SO_NAME) + else +-- +2.25.1 diff --git a/meta-oe/recipes-connectivity/nethogs/files/0006-Include-CPPFLAGS-for-devices.cpp-and-libnethogs.cpp.patch b/meta-oe/recipes-connectivity/nethogs/files/0006-Include-CPPFLAGS-for-devices.cpp-and-libnethogs.cpp.patch new file mode 100644 index 0000000000..485d476c50 --- /dev/null +++ b/meta-oe/recipes-connectivity/nethogs/files/0006-Include-CPPFLAGS-for-devices.cpp-and-libnethogs.cpp.patch @@ -0,0 +1,30 @@ +From 1407f83485c31cd6f29614402bb2a3e912a3dd34 Mon Sep 17 00:00:00 2001 +From: Matheus Polkorny <mpolkorny@ipt.br> +Date: Tue, 25 Mar 2025 00:48:20 -0300 +Subject: [PATCH 6/6] Include $(CPPFLAGS) for devices.cpp and libnethogs.cpp + +Upstream-Status: Backport [https://github.com/raboof/nethogs/commit/1407f83485c31cd6f29614402bb2a3e912a3dd34] +--- + src/MakeLib.mk | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/MakeLib.mk b/src/MakeLib.mk +index 1be0361..513096e 100644 +--- a/src/MakeLib.mk ++++ b/src/MakeLib.mk +@@ -97,11 +97,11 @@ $(ODIR)/conninode.o: conninode.cpp nethogs.h conninode.h + + $(ODIR)/devices.o: devices.cpp devices.h + @mkdir -p $(ODIR) +- $(CXX) $(CXXFLAGS) -o $@ -c devices.cpp ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c devices.cpp + + $(ODIR)/libnethogs.o: libnethogs.cpp libnethogs.h + @mkdir -p $(ODIR) +- $(CXX) $(CXXFLAGS) -o $@ -c libnethogs.cpp -DVERSION=\"$(LIBVERSION)\" ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c libnethogs.cpp -DVERSION=\"$(LIBVERSION)\" + + .PHONY: clean + clean: +-- +2.25.1 diff --git a/meta-oe/recipes-connectivity/nethogs/nethogs_git.bb b/meta-oe/recipes-connectivity/nethogs/nethogs_git.bb new file mode 100644 index 0000000000..816cd9c542 --- /dev/null +++ b/meta-oe/recipes-connectivity/nethogs/nethogs_git.bb @@ -0,0 +1,21 @@ +SUMMARY = "NetHogs is a small 'net top' tool that can group bandwidth by process" +HOMEPAGE = "https://github.com/raboof/nethogs" +SECTION = "console/network" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/raboof/nethogs.git;branch=main;protocol=https \ + file://0001-meson-cleanup-version-detection.patch \ + file://0002-meson-fix-build-with-libnethogs-disabled.patch \ + file://0003-meson-run-meson-format.patch \ + file://0004-meson-fix-library-name.patch \ + file://0005-Add-security-flags-to-LDFLAGS-for-Linux.patch \ + file://0006-Include-CPPFLAGS-for-devices.cpp-and-libnethogs.cpp.patch \ + " + +DEPENDS = "ncurses libpcap" + +inherit meson pkgconfig + +SRCREV = "632a78846eb3cc3259dc45c59a47fa9c293a2831" +PV = "0.8.8+git"