summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--isu/CMakeLists.txt12
-rw-r--r--isu/etc-resourced.mount2
-rw-r--r--isu/isu.cfg4
-rw-r--r--isu/resourced.service4
-rw-r--r--isu/usr-lib-resourced-plugins.mount11
-rw-r--r--packaging/resourced.spec27
-rw-r--r--src/CMakeLists.txt2
7 files changed, 57 insertions, 5 deletions
diff --git a/isu/CMakeLists.txt b/isu/CMakeLists.txt
index 6aab07c5..b45dee7f 100644
--- a/isu/CMakeLists.txt
+++ b/isu/CMakeLists.txt
@@ -1,6 +1,18 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(ISU C)
+IF("${ISU_ARCH_BIT}" STREQUAL "32")
+ OPTION(USE_32BIT "Use 32bit architecture" ON)
+ELSEIF("${ISU_ARCH_BIT}" STREQUAL "64")
+ OPTION(USE_64BIT "Use 64bit architecture" ON)
+ENDIF()
+
INSTALL(FILES isu.cfg DESTINATION /etc/isu/resourced/ PERMISSIONS OWNER_WRITE OWNER_READ)
INSTALL(FILES resourced.service DESTINATION /etc/isu/resourced/system-services/ PERMISSIONS OWNER_WRITE OWNER_READ WORLD_READ)
INSTALL(FILES etc-resourced.mount DESTINATION /etc/isu/resourced/system-services/ PERMISSIONS OWNER_WRITE OWNER_READ WORLD_READ)
+
+IF(USE_32BIT)
+ INSTALL(FILES usr-lib-resourced-plugins.mount DESTINATION /etc/isu/resourced/system-services/ PERMISSIONS OWNER_WRITE OWNER_READ WORLD_READ)
+ELSEIF(USE_64BIT)
+ INSTALL(FILES usr-lib-resourced-plugins.mount DESTINATION /etc/isu/resourced/system-services/ RENAME usr-lib64-resourced-plugins.mount PERMISSIONS OWNER_WRITE OWNER_READ WORLD_READ)
+ENDIF()
diff --git a/isu/etc-resourced.mount b/isu/etc-resourced.mount
index d1b06c0c..1595bf65 100644
--- a/isu/etc-resourced.mount
+++ b/isu/etc-resourced.mount
@@ -1,9 +1,9 @@
[Unit]
Before=local-fs.target
ConditionPathIsMountPoint=!/etc/resourced
+DefaultDependencies=no
[Mount]
What=#ISU_RUN_PATH#/resourced/rootfs/etc/resourced
Where=/etc/resourced
Options=defaults,relatime,bind,ro
-
diff --git a/isu/isu.cfg b/isu/isu.cfg
index 0cbb509f..d487584a 100644
--- a/isu/isu.cfg
+++ b/isu/isu.cfg
@@ -1,8 +1,10 @@
[isu]
name=#NAME#
version=#VERSION#
-system_service=resourced.service etc-resourced.mount
+system_service=resourced.service ##PLUGIN_MOUNT## etc-resourced.mount
[files]
/usr/bin/resourced
/etc/resourced
+-##LIBDIR##/resourced/plugins
+##LIBDIR##/libresourced-private-api.so.*
diff --git a/isu/resourced.service b/isu/resourced.service
index 95445d5c..730f3396 100644
--- a/isu/resourced.service
+++ b/isu/resourced.service
@@ -5,9 +5,9 @@ Description=Resource management daemon
# launchpad to have knowledge of all applications. The Before= line below
# refers to user-sessions, because tlm, and consequently user@.service
# starts after user-sessions are allowed.
-After=etc-resourced.mount
+After=##PLUGIN_MOUNT##
Before=systemd-user-sessions.service
-BindsTo=etc-resourced.mount
+BindsTo=##PLUGIN_MOUNT##
DefaultDependencies=no
Requires=resourced.socket
diff --git a/isu/usr-lib-resourced-plugins.mount b/isu/usr-lib-resourced-plugins.mount
new file mode 100644
index 00000000..58352e90
--- /dev/null
+++ b/isu/usr-lib-resourced-plugins.mount
@@ -0,0 +1,11 @@
+[Unit]
+Before=local-fs.target
+After=etc-resourced.mount
+BindsTo=etc-resourced.mount
+ConditionPathIsMountPoint=!##PLUGIN_LIB_DIR##
+DefaultDependencies=no
+
+[Mount]
+What=#ISU_RUN_PATH#/resourced/rootfs##PLUGIN_LIB_DIR##
+Where=##PLUGIN_LIB_DIR##
+Options=defaults,relatime,bind,ro
diff --git a/packaging/resourced.spec b/packaging/resourced.spec
index e9ca7478..a93250ec 100644
--- a/packaging/resourced.spec
+++ b/packaging/resourced.spec
@@ -101,16 +101,28 @@ Summary: watchdog module for resourced
%description watchdog-handler
%endif
-%isu_package
+%package isu
+Summary: ISU package for resourced
+Group: Application Framework/Service
+
+%description isu
+Configuration files to generate the ISU (Individual Service Upgrade) package
%prep
%setup -q
+%ifarch %{arm} %ix86
+%define ISU_ARCH_BIT 32
+%else
+%define ISU_ARCH_BIT 64
+%endif
+
%build
mkdir -p build
pushd build
%cmake .. -DFULLVER=%{version} \
-DCMAKE_BUILD_TYPE=Release \
+ -DISU_ARCH_BIT=%{ISU_ARCH_BIT} \
-DCPU_THROTTLING_MODULE=%{cpu_throttling_module} \
-DCPU_BOOSTING_MODULE=%{cpu_boosting_module} \
-DMEMORY_MODULE=%{memory_module} \
@@ -127,6 +139,15 @@ pushd build
make %{?jobs:-j%jobs}
popd
+LIB_DIR=%{_libdir}
+sed -ie s,"##LIBDIR##,$LIB_DIR,g" isu/isu.cfg
+RD_PLUGIN_PATH=%{plugindir}
+RD_PLUGIN_MOUNT_NAME=$(systemd-escape $RD_PLUGIN_PATH).mount
+RD_PLUGIN_MOUNT_NAME=$(cut -c2- <<< $RD_PLUGIN_MOUNT_NAME) > /dev/null
+sed -ie s,"##PLUGIN_MOUNT##,$RD_PLUGIN_MOUNT_NAME,g" isu/isu.cfg
+sed -ie s,"##PLUGIN_MOUNT##,$RD_PLUGIN_MOUNT_NAME,g" isu/resourced.service
+sed -ie s,"##PLUGIN_LIB_DIR##,$RD_PLUGIN_PATH,g" isu/usr-lib-resourced-plugins.mount
+
%install
rm -rf %{buildroot}
pushd build
@@ -155,6 +176,7 @@ mv %{confdir}/optimizer-profile-tv.conf %{confdir}/optimizer.conf
%manifest resourced.manifest
%{_libdir}/libresourced-private-api.so.*
%{_bindir}/resourced
+%dir %{plugindir}
%attr(-,root, root) %{_bindir}/resourced
%attr(700, root, root) %{TZ_SYS_ETC}/dump.d/module.d/dump_heart_data.sh
@@ -198,3 +220,6 @@ mv %{confdir}/optimizer-profile-tv.conf %{confdir}/optimizer.conf
%defattr(-,root,root)
%{_libdir}/resourced-tests/run_tests.sh
%{_libdir}/resourced-tests/watchdog-test
+
+%files isu
+/etc/isu/resourced/*
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9613cf16..907deb70 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -142,6 +142,8 @@ INSTALL(FILES ${RESOURCED_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/resou
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/resourced-private-api.pc.in ${CMAKE_SOURCE_DIR}/resourced-private-api.pc @ONLY)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/resourced-private-api.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+INSTALL(DIRECTORY DESTINATION ${MAKE_INSTALL_PREFIX}${RD_PLUGIN_PATH})
+
ADD_LIBRARY(plugin-resourced-process-block MODULE
${BLOCK_SOURCE_DIR}/block.c
${BLOCK_SOURCE_DIR}/block-monitor.c)