summaryrefslogtreecommitdiff
path: root/add-install-section-in-src-CMakeList.txt-and-module-Makefile.patch
diff options
context:
space:
mode:
Diffstat (limited to 'add-install-section-in-src-CMakeList.txt-and-module-Makefile.patch')
-rw-r--r--add-install-section-in-src-CMakeList.txt-and-module-Makefile.patch103
1 files changed, 103 insertions, 0 deletions
diff --git a/add-install-section-in-src-CMakeList.txt-and-module-Makefile.patch b/add-install-section-in-src-CMakeList.txt-and-module-Makefile.patch
new file mode 100644
index 0000000..7d7f577
--- /dev/null
+++ b/add-install-section-in-src-CMakeList.txt-and-module-Makefile.patch
@@ -0,0 +1,103 @@
+From 5f14b328ea78ea7b375c775d894dd987ce707fdb Mon Sep 17 00:00:00 2001
+From: wangxiaomeng <wangxiaomeng@kylinos.cn>
+Date: Thu, 23 May 2024 14:57:12 +0800
+Subject: [PATCH] add install section in src/CMakeList.txt and module/Makefile
+
+---
+ module/Makefile | 30 ++++++++++++++++++++++++------
+ src/CMakeLists.txt | 27 +++++++++++++++++++++++++++
+ 2 files changed, 51 insertions(+), 6 deletions(-)
+
+diff --git a/module/Makefile b/module/Makefile
+index 8030152..0ca0f86 100644
+--- a/module/Makefile
++++ b/module/Makefile
+@@ -3,19 +3,37 @@
+ # Author: xuchunmei
+ # Create: 2018-12-15
+
++KERNELVER?=$(shell uname -r)
++
+ obj-m += sysmonitor.o
+ sysmonitor-objs := sysmonitor_main.o signo_catch.o fdstat.o monitor_netdev.o
+-KERNELDIR ?= /lib/modules/$(shell uname -r)/build
++KERNELDIR ?= /lib/modules/$(KERNELVER)/build
+ PWD := $(shell pwd)
+ EXTRA_CFLAGS += -Wall -Werror
+
+-modules:
++default:
+ $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
+
+-modules_install:
+- $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
+-
+ clean:
+ $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) clean
++ rm -f *.ko *.o *.mod.o *.mod.c *.symvers *.order .sysmonitor* .mo* .Module* .signo* sysmonitor.mod .fdstat.*
++
++install:
++ install -d -m 750 /lib/modules/sysmonitor
++ install -m 640 sysmonitor.ko /lib/modules/sysmonitor
++ lsmod | grep -qw sysmonitor && modprobe -r sysmonitor || true
++ if [ -e "/lib/modules/sysmonitor/sysmonitor.ko" ];then \
++ /sbin/depmod -aeF /boot/System.map-$(KERNELVER) $(KERNELVER) > /dev/null;\
++ insmod /lib/modules/sysmonitor/sysmonitor.ko 2>/dev/null 1>/dev/null;\
++ if [ $$? -ne 0 ];then { echo "sysmonitor.ko modprobe is failed.";exit 0;} fi;\
++ else\
++ echo "The /lib/modules/sysmonitor/sysmonitor.ko file does not exist in the sysmonitor rpm package";\
++ exit 0; \
++ fi
+
+-.PHONY: modules modules_install clean
++uninstall:
++ if [ $(id -u) -ne 0 ]; then { echo "root permission is required to uninstall sysmonitor";exit 0;} fi
++ ps h -C sysmonitor -o pid && killall sysmonitor || true
++ lsmod | grep -qw sysmonitor && modprobe -r sysmonitor || true
++ rm -rf /lib/modules/sysmonitor
++ /sbin/depmod -aeF /boot/System.map-$(KERNELVER) $(KERNELVER) > /dev/null
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index e5af612..4943c8f 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -6,6 +6,12 @@
+ project(sysmonitor)
+
+ set(CMAKE_C_FLAGS "-Wall -Werror -D_FORTIFY_SOURCE=2 -O2 -fPIE -fstack-protector-strong -g")
++set(CMAKE_INSTALL_SYSCONFDIR "/etc")
++set(CMAKE_INSTALL_LIBEXECDIR "/usr/libexec")
++set(CMAKE_INSTALL_SYSLOGDIR "/etc/rsyslog.d")
++set(CMAKE_INSTALL_SBINDIR "/usr/sbin")
++set(CMAKE_INSTALL_BINDIR "/usr/bin")
++set(SYSTEMD_SERVICEDIR "/usr/lib/systemd/system/")
+
+ if (VERSION)
+ add_compile_options(-D ${VERSION})
+@@ -18,3 +24,24 @@ endif(CUSTOM)
+ add_executable(sysmonitor common.c custom.c disk.c fsmonitor.c filemonitor.c process.c sys_resources.c sys_event.c sysmonitor.c zombie.c monitor_thread.c)
+ set_target_properties(sysmonitor PROPERTIES LINK_FLAGS "-Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,now -Wtrampolines -pie")
+ target_link_libraries(sysmonitor boundscheck pthread)
++install(TARGETS sysmonitor DESTINATION ${CMAKE_INSTALL_BINDIR})
++install(DIRECTORY ../conf/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/sysmonitor PATTERN "rsyslog.d " EXCLUDE PATTERN "clock_transition" EXCLUDE PATTERN "io_monitor" EXCLUDE PATTERN "logind_monitor" EXCLUDE PATTERN "sysmonitor" EXCLUDE PATTERN "io_monitor" EXCLUDE)
++install(FILES ../conf/rsyslog.d/sysmonitor.conf DESTINATION ${CMAKE_INSTALL_SYSLOGDIR})
++install(FILES ../conf/logrotate.d/sysmonitor-logrotate DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/sysmonitor)
++install(FILES ../conf/clock_transition DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/sysmonitor.d)
++install(FILES ../conf/io_monitor DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/sysmonitor.d)
++install(FILES ../conf/logind_monitor DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/sysmonitor.d)
++install(FILES ../conf/sysmonitor DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/sysconfig)
++
++install(DIRECTORY ../script/ DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/sysmonitor PATTERN "iomonitor_daemon" EXCLUDE)
++install(PROGRAMS ../script/iomonitor_daemon DESTINATION ${CMAKE_INSTALL_SBINDIR})
++install(FILES ../conf/io_monitor DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/sysmonitor.d)
++install(FILES ../service/sysmonitor.service DESTINATION ${SYSTEMD_SERVICEDIR})
++
++add_custom_target(uninstall
++ COMMAND rm -rf /etc/sysmonitor /usr/libexec/sysmonitor /etc/rsyslog.d/sysmonitor.conf /etc/sysmonitor.d/
++ COMMAND rm -rf /usr/lib/systemd/system/sysmonitor.service
++ COMMAND rm -rf /usr/sbin/iomonitor_daemon /usr/bin/sysmonitor
++ COMMENT "Uninstall sysmonitor"
++ VERBATIM
++)
+--
+2.43.0
+