summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/fstab_initrd_lazymnt6
-rw-r--r--etc/fstab_lazymnt3
-rw-r--r--packaging/system-plugin.spec26
-rw-r--r--scripts/mount-user.sh13
-rw-r--r--units/lazy_mount.service4
-rw-r--r--units/wait-user-mount.service11
6 files changed, 56 insertions, 7 deletions
diff --git a/etc/fstab_initrd_lazymnt b/etc/fstab_initrd_lazymnt
new file mode 100644
index 0000000..4c80e4d
--- /dev/null
+++ b/etc/fstab_initrd_lazymnt
@@ -0,0 +1,6 @@
+# In case of using MCD initrd, / and /opt is already mounted by initrd
+# Thus, this patch is temporary files for wearable.
+# Basically, initrd should consider this issue.
+# <file system> <mount point> <type> <options> <dump> <pass>
+/dev/root / ext4 defaults,noatime 0 1
+PARTLABEL=system-data /opt ext4 defaults,noatime 0 2
diff --git a/etc/fstab_lazymnt b/etc/fstab_lazymnt
new file mode 100644
index 0000000..02154dc
--- /dev/null
+++ b/etc/fstab_lazymnt
@@ -0,0 +1,3 @@
+# <file system> <mount point> <type> <options> <dump> <pass>
+/dev/root / ext4 defaults,noatime 0 1
+LABEL=system-data /opt ext4 defaults,noatime 0 2
diff --git a/packaging/system-plugin.spec b/packaging/system-plugin.spec
index 16998b3..3b7b4ae 100644
--- a/packaging/system-plugin.spec
+++ b/packaging/system-plugin.spec
@@ -1,6 +1,8 @@
#%define _unpackaged_files_terminate_build 0
#%define debug_package %{nil}
+%define temp_wait_mount 1
+
Name: system-plugin
Summary: Target specific system configuration files
Version: 0.1
@@ -152,6 +154,14 @@ mkdir -p %{buildroot}%{_sysconfdir}
install -m 644 etc/fstab %{buildroot}%{_sysconfdir}
# ugly temporary patch for initrd wearable
install -m 644 etc/fstab_initrd %{buildroot}%{_sysconfdir}
+# lazymnt
+install -m 644 etc/fstab_lazymnt %{buildroot}%{_sysconfdir}
+install -m 644 etc/fstab_initrd_lazymnt %{buildroot}%{_sysconfdir}
+%if %{temp_wait_mount}
+mkdir -p %{buildroot}%{_unitdir_user}/basic.target.wants
+install -m 644 units/wait-user-mount.service %{buildroot}%{_unitdir_user}
+ln -s ../wait-user-mount.service %{buildroot}%{_unitdir_user}/basic.target.wants/wait-user-mount.service
+%endif
# fstrim
mkdir -p %{buildroot}%{_unitdir}/graphical.target.wants
@@ -203,7 +213,7 @@ systemctl daemon-reload
%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-system\x2ddata.service
%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-user.service
%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-rootfs.service
-%{_sysconfdir}/fstab
+%{_sysconfdir}/fstab_lazymnt
%{_unitdir}/graphical.target.wants/tizen-fstrim-user.timer
%{_unitdir}/tizen-fstrim-user.timer
%{_unitdir}/tizen-fstrim-user.service
@@ -232,7 +242,10 @@ mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
# fstab for tm1
%post spreadtrum
rm %{_sysconfdir}/fstab
-mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
+mv %{_sysconfdir}/fstab_initrd_lazymnt %{_sysconfdir}/fstab
+%post n4
+rm %{_sysconfdir}/fstab
+mv %{_sysconfdir}/fstab_lazymnt %{_sysconfdir}/fstab
%files spreadtrum
%manifest %{name}.manifest
@@ -240,7 +253,7 @@ mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
/csa
%{_prefix}/lib/udev/rules.d/51-system-plugin-spreadtrum.rules
%{_unitdir}/tizen-system-env.service
-%{_sysconfdir}/fstab_initrd
+%{_sysconfdir}/fstab_initrd_lazymnt
%{_unitdir}/basic.target.wants/tizen-system-env.service
%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dpartlabel-user.service
%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dpartlabel-system\x2ddata.service
@@ -262,6 +275,11 @@ mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
%{_unitdir}/lazy_mount.path
%{_unitdir}/lazy_mount.service
%{_bindir}/mount-user.sh
+%if %{temp_wait_mount}
+%{_bindir}/test_lazymount
+%{_unitdir_user}/basic.target.wants/wait-user-mount.service
+%{_unitdir_user}/wait-user-mount.service
+%endif
%files -n liblazymount-devel
%defattr(-,root,root,-)
@@ -269,7 +287,9 @@ mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
%{_libdir}/liblazymount.so
%{_includedir}/lazymount/lazy_mount.h
%{_libdir}/pkgconfig/liblazymount.pc
+%if ! %{temp_wait_mount}
%{_bindir}/test_lazymount
+%endif
%files -n system-upgrade
%{_datadir}/upgrade
diff --git a/scripts/mount-user.sh b/scripts/mount-user.sh
index d761431..2210516 100644
--- a/scripts/mount-user.sh
+++ b/scripts/mount-user.sh
@@ -4,7 +4,17 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin
USER_DISK=`ls /dev/disk/by-partlabel/ | grep -i user`
USER_MNT=/opt/usr
-mount | grep "/opt/usr"
+if [ -f /tmp/.lazy_mount ]
+then
+rm -f /tmp/.lazy_mount
+fi
+
+if [ -f /run/.unlock_mnt ]
+then
+rm -f /run/.unlock_mnt
+fi
+
+mount | grep "$USER_MNT " > /dev/null
if [ $? = "0" ]
then
@@ -12,4 +22,5 @@ touch /run/.unlock_mnt
else
/usr/bin/mount PARTLABEL=$USER_DISK $USER_MNT
touch /run/.unlock_mnt
+chsmack -a "_" $USER_MNT
fi
diff --git a/units/lazy_mount.service b/units/lazy_mount.service
index e1f4f46..8d4d492 100644
--- a/units/lazy_mount.service
+++ b/units/lazy_mount.service
@@ -1,10 +1,8 @@
[Unit]
Description=Mount /opt/usr
-#ConditionPathIsMountPoint = !/opt/usr
[Service]
Type=oneshot
-SmackProcessLabel=System
-ExecStartPre=/usr/bin/rm -f /run/.unlock_mnt /tmp/.lazy_mount
+SmackProcessLabel=System::Privileged
ExecStart=/usr/bin/mount-user.sh
SuccessExitStatus=0
diff --git a/units/wait-user-mount.service b/units/wait-user-mount.service
new file mode 100644
index 0000000..b648197
--- /dev/null
+++ b/units/wait-user-mount.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Wait user mount
+After=starter.service
+Before=basic.target
+DefaultDependencies=no
+
+[Service]
+Type=notify
+ExecStart=/usr/bin/test_lazymount wait
+TimeoutStartSec=365d
+RemainAfterExit=yes