Add plugins to deviced ISU configuration 70/308270/1 accepted/tizen/7.0/unified/20240322.094835
authorAdam Michalski <a.michalski2@partner.samsung.com>
Fri, 15 Mar 2024 11:12:47 +0000 (12:12 +0100)
committerAdam Michalski <a.michalski2@partner.samsung.com>
Wed, 20 Mar 2024 13:59:55 +0000 (14:59 +0100)
Additionally it adds rndis.service to ISU configuration.

Change-Id: Ic616d09d0dbe23aae56b3b2a55f2a0b99be3d861

CMakeLists.txt
isu/CMakeLists.txt
isu/deviced.service
isu/etc-deviced.mount
isu/isu.cfg
isu/rndis.service [new file with mode: 0644]
isu/usr-lib-deviced.mount [new file with mode: 0644]
packaging/deviced.spec

index bb423d4..3203872 100644 (file)
@@ -215,6 +215,7 @@ ADD_DEFINITIONS("-DLIBPATH=\"${LIB_INSTALL_DIR}\"")
 ADD_DEFINITIONS("-DENABLE_DEVICED_DLOG")
 ADD_DEFINITIONS("-DENABLE_LIBDEVICED_DLOG")
 ADD_DEFINITIONS("-DENABLE_PM_LOG")
+ADD_DEFINITIONS("-DDD_PLUGIN_PATH=\"${DD_PLUGIN_PATH}\"")
 
 IF(BATTERY_MODULE STREQUAL on)
        ADD_DEFINITIONS("-DBATTERY_MODULE")
@@ -240,6 +241,8 @@ SET(deviced_LDFLAGS ${REQUIRED_PKGS_LDFLAGS})
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${REQUIRED_PKGS_LDFLAGS} "-lrt -ldl -lm" deviced-common-private)
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
 
+INSTALL(DIRECTORY DESTINATION ${MAKE_INSTALL_PREFIX}${DD_PLUGIN_PATH})
+
 IF(POWER_MODULE STREQUAL on)
        ADD_EXECUTABLE(deviced-shutdown src/power-shutdown/shutdown.c src/shared/common.c src/shared/execute.c)
        SET(deviced-shutdown_LDFLAGS ${REQUIRED_PKGS_LDFLAGS})
index 7d4d556..21004a5 100644 (file)
@@ -1,6 +1,20 @@
 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/deviced/ PERMISSIONS OWNER_WRITE OWNER_READ)
 INSTALL(FILES deviced.service DESTINATION /etc/isu/deviced/system-services/ PERMISSIONS OWNER_WRITE OWNER_READ WORLD_READ)
 INSTALL(FILES etc-deviced.mount DESTINATION /etc/isu/deviced/system-services/ PERMISSIONS OWNER_WRITE OWNER_READ WORLD_READ)
+
+IF(USE_32BIT)
+       INSTALL(FILES usr-lib-deviced.mount DESTINATION /etc/isu/deviced/system-services/ PERMISSIONS OWNER_WRITE OWNER_READ WORLD_READ)
+ELSEIF(USE_64BIT)
+       INSTALL(FILES usr-lib-deviced.mount DESTINATION /etc/isu/deviced/system-services/ RENAME usr-lib64-deviced.mount PERMISSIONS OWNER_WRITE OWNER_READ WORLD_READ)
+ENDIF()
+
+INSTALL(FILES rndis.service DESTINATION /etc/isu/deviced/system-services/ PERMISSIONS OWNER_WRITE OWNER_READ WORLD_READ)
index 2f47472..851eafc 100644 (file)
@@ -1,7 +1,8 @@
 [Unit]
 Description=System device daemon
-After=etc-deviced.mount
-BindsTo=etc-deviced.mount
+After=##PLUGIN_MOUNT##
+BindsTo=##PLUGIN_MOUNT##
+DefaultDependencies=no
 
 # Caution: never uncomment below "Wants=" and "After=" entries.
 # Just information, deviced internally wait for /run/.wm_ready
index 4450cca..687b666 100644 (file)
@@ -6,4 +6,3 @@ ConditionPathIsMountPoint=!/etc/deviced
 What=#ISU_RUN_PATH#/deviced/rootfs/etc/deviced
 Where=/etc/deviced
 Options=defaults,relatime,bind,ro
-
index c99f369..e5ee072 100644 (file)
@@ -1,9 +1,11 @@
 [isu]
 name=#NAME#
 version=#VERSION#
-system_service=deviced.service etc-deviced.mount
+system_service=deviced.service ##PLUGIN_MOUNT## etc-deviced.mount rndis.service
 
 [files]
 /usr/bin/deviced
 /etc/deviced/
-/usr/lib*/libdeviced-common-private.so
+/usr/bin/rndis.sh
+##LIBDIR##/deviced
+##LIBDIR##/libdeviced-common-private.so
\ No newline at end of file
diff --git a/isu/rndis.service b/isu/rndis.service
new file mode 100644 (file)
index 0000000..2470a4c
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+Description=rndis service
+
+[Service]
+Type=oneshot
+User=network_fw
+Group=network_fw
+SmackProcessLabel=System
+ExecStart=#ISU_RUN_PATH#/deviced/rootfs/usr/bin/rndis.sh start
+ExecStop=#ISU_RUN_PATH#/deviced/rootfs/usr/bin/rndis.sh stop
+Capabilities=cap_net_admin=i
+SecureBits=keep-caps
+RemainAfterExit=yes
diff --git a/isu/usr-lib-deviced.mount b/isu/usr-lib-deviced.mount
new file mode 100644 (file)
index 0000000..6ac95d3
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+Before=local-fs.target
+After=etc-deviced.mount
+BindsTo=etc-deviced.mount
+ConditionPathIsMountPoint=!##PLUGIN_LIB_DIR##
+DefaultDependencies=no
+
+[Mount]
+What=#ISU_RUN_PATH#/deviced/rootfs##PLUGIN_LIB_DIR##
+Where=##PLUGIN_LIB_DIR##
+Options=defaults,relatime,bind,ro
index 2772b39..7201907 100644 (file)
@@ -13,6 +13,8 @@ Source0:    %{name}-%{version}.tar.gz
 Source1:    deviced.manifest
 Source2:    libdeviced.manifest
 
+%define plugindir %{_libdir}/deviced
+
 BuildRequires:  cmake
 BuildRequires:  gettext-devel
 BuildRequires:  pkgconfig(mount)
@@ -130,7 +132,14 @@ Requires:   %{name} = %{version}-%{release}
 %description plugin-profile-iot-headless
 Plugin libraries for IoT headless devices
 
-%isu_package
+%package isu
+Summary:    ISU package for deviced
+Group:      System/Management
+Requires:   %{name} = %{version}-%{release}
+
+%description isu
+Configuration files to generate the ISU (Individual Service Upgrade) package
+>>>>>>> 6e21e8ad... Add plugins to deviced ISU configuration
 
 %prep
 %setup -q
@@ -153,6 +162,7 @@ Plugin libraries for IoT headless devices
        -DARCH=%{ARCH} \
        -DARCH_BIT=%{ARCH_BIT} \
        -DDPMS=%{DPMS} \
+       -DDD_PLUGIN_PATH=%{plugindir} \
        -DBATTERY_MODULE=%{battery_module} \
        -DDISPLAY_MODULE=on \
        -DEXTCON_MODULE=on \
@@ -180,6 +190,15 @@ cp %{SOURCE2} .
 
 make %{?jobs:-j%jobs}
 
+LIB_DIR=%{_libdir}
+sed -ie s,"##LIBDIR##,$LIB_DIR,g" isu/isu.cfg
+DD_PLUGIN_PATH=%{plugindir}
+DD_PLUGIN_MOUNT_NAME=$(systemd-escape $DD_PLUGIN_PATH).mount
+DD_PLUGIN_MOUNT_NAME=$(cut -c2- <<< $DD_PLUGIN_MOUNT_NAME) > /dev/null
+sed -ie s,"##PLUGIN_MOUNT##,$DD_PLUGIN_MOUNT_NAME,g" isu/isu.cfg
+sed -ie s,"##PLUGIN_MOUNT##,$DD_PLUGIN_MOUNT_NAME,g" isu/deviced.service
+sed -ie s,"##PLUGIN_LIB_DIR##,$DD_PLUGIN_PATH,g" isu/usr-lib-deviced.mount
+
 %install
 rm -rf %{buildroot}
 %make_install
@@ -270,6 +289,7 @@ mv %{_libdir}/iot-headless-display.so %{_libdir}/deviced/display.so
 %{_unitdir}/multi-user.target.wants/deviced.service
 %{_unitdir}/deviced.service
 %{_datadir}/dbus-1/system-services/org.tizen.system.deviced.service
+%dir %{plugindir}
 %if %{?sdb_prestart} == on
 %{_unitdir}/sdb-prestart.service
 %{_unitdir}/basic.target.wants/sdb-prestart.service
@@ -399,3 +419,6 @@ mv %{_libdir}/iot-headless-display.so %{_libdir}/deviced/display.so
 %{_libdir}/iot-headless-display.so
 %{_unitdir}/rndis.service
 %{_bindir}/rndis.sh
+
+%files isu
+/etc/isu/deviced/*