platform/core/system/sessiond.git
44 hours agoReduce privileges of generate cache service 15/325615/1 accepted/tizen_unified accepted/tizen_unified_x tizen accepted/tizen/unified/20250613.040703 accepted/tizen/unified/x/20250613.044726
Karol Lewandowski [Thu, 12 Jun 2025 09:54:35 +0000 (11:54 +0200)]
Reduce privileges of generate cache service

root should not be needed accoring to dbus policy.

Change-Id: I2e0633b3108df5dcf5a711c76319e7ea2a919a78

2 days agosessiond-generate-cache: List SmackProcessLabel explicitly for security-config to... 49/325549/2
Karol Lewandowski [Wed, 11 Jun 2025 14:12:36 +0000 (16:12 +0200)]
sessiond-generate-cache: List SmackProcessLabel explicitly for security-config to detect it

Change-Id: Ie59a11683ae97325ae811fbdafa4517c27090c00

2 days agopackaging: Do not rewrite sessiond.service on tv profile 48/325548/2
Karol Lewandowski [Wed, 11 Jun 2025 14:10:12 +0000 (16:10 +0200)]
packaging: Do not rewrite sessiond.service on tv profile

resize2fs will be used if detected at run time.

Change-Id: I314c063942b5b272214ab4d0845f4f6a20fa67b4

3 days agoRelease 10.3.0 02/325302/15 accepted/tizen/unified/20250612.024605 accepted/tizen/unified/x/20250612.025253
Karol Lewandowski [Fri, 6 Jun 2025 12:58:34 +0000 (14:58 +0200)]
Release 10.3.0

Drop leading 0. in the version as it does not seem to serve any purpose.

Change-Id: I212f4076850369d01e9f050afe29f829095a9c1c

3 days agoHandle fsck.ext4 returning successfull, but nonzero error code 83/325483/2
Karol Lewandowski [Tue, 10 Jun 2025 17:57:02 +0000 (19:57 +0200)]
Handle fsck.ext4 returning successfull, but nonzero error code

Change-Id: I3b89f1ab26b7a492b7e686169ca9eb99381543d7

3 days agoSplit switchuser API test into chunks 82/325482/2
Michal Bloch [Tue, 10 Jun 2025 18:27:53 +0000 (20:27 +0200)]
Split switchuser API test into chunks

Helps timeouts and is generally a good idea.

Also fixes the "callback always fails because there
is no callback at all" nonsense.

Change-Id: I2a35398673dc35d713007fb8580107b9c63e9c93
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 days agoTemporarly disable Requires causing mic to fail the build 77/325477/4
Karol Lewandowski [Tue, 10 Jun 2025 12:53:59 +0000 (14:53 +0200)]
Temporarly disable Requires causing mic to fail the build

Change-Id: I91f1eef14b5df59cdcb3be4d221639130a40e1d3

3 days agoDetect resize2fs existence at run time 53/325353/6
Karol Lewandowski [Mon, 9 Jun 2025 17:33:05 +0000 (19:33 +0200)]
Detect resize2fs existence at run time

It will be actually better to have one version that could support resize2fs
if it's added to to system.

Change-Id: I3473e71471bde300f38b521ad62c2e3844735a82

3 days agoGetCurrentUser reads from a file where possible 55/325355/5
Michal Bloch [Mon, 9 Jun 2025 19:58:58 +0000 (21:58 +0200)]
GetCurrentUser reads from a file where possible

Change-Id: Ie75bd8c118d2ad5ba4eac485974501ebe52a0819

4 days agoExtract lib main dir getter 54/325354/1
Michal Bloch [Mon, 9 Jun 2025 19:51:15 +0000 (21:51 +0200)]
Extract lib main dir getter

Change-Id: Ie61debc1763c73776a6720d5cd65f892abe7f44e

4 days agoMisc code cleanup 12/325312/3
Michal Bloch [Fri, 6 Jun 2025 19:36:30 +0000 (21:36 +0200)]
Misc code cleanup

Change-Id: Icd3fd6448c8824ddfe26144d6370e9b0dab01298

4 days agotests: Also wait for fixed image to be created 16/325116/7
Karol Lewandowski [Tue, 3 Jun 2025 15:37:14 +0000 (17:37 +0200)]
tests: Also wait for fixed image to be created

The process can take very long on low-end hardware, print progress.

Change-Id: I8dfb7c98fe99b1269e583c7c7e07c201ced7c614

4 days agotests: Ensure test sessions are cleaned up 03/325303/6
Karol Lewandowski [Tue, 3 Jun 2025 23:09:45 +0000 (01:09 +0200)]
tests: Ensure test sessions are cleaned up

Change-Id: Ib9dda199ce2556bd3706dda461d8f94ac37e8d0b

4 days agoSplit up the add/removal test into cases 09/325309/4
Michal Bloch [Fri, 6 Jun 2025 18:08:00 +0000 (20:08 +0200)]
Split up the add/removal test into cases

Helps vs the timeout stacking and is generally a good idea.

Change-Id: I0fe34e6b751872a09fa9d33c47e351bd3479bb92

4 days agoKeep the last session file fresh whenever possible 08/325308/3
Michal Bloch [Fri, 6 Jun 2025 16:10:14 +0000 (18:10 +0200)]
Keep the last session file fresh whenever possible

Change-Id: I89fc04e74d7f18e92b554bf4d3517a48e033b89e

4 days agoRework how cached templates are generated 77/325277/5
Karol Lewandowski [Thu, 5 Jun 2025 23:59:55 +0000 (01:59 +0200)]
Rework how cached templates are generated

Instead of generating templates during sessiond bringup, which may
happen early in boot sequence do it when system is fully started in
delayed.target.

This commit also adds dbus api to request cache regeneration via
dbus and respective service file that calls it from delayed.target.

Change-Id: Ic9e951a084a7ebc3c693fa14d7f81b972eb0ff9c

4 days agoUse tizen's global user as default 76/325276/4
Karol Lewandowski [Thu, 5 Jun 2025 22:20:46 +0000 (00:20 +0200)]
Use tizen's global user as default

Change-Id: I54e3e5d046c677c75acab61d31f21213562ca75d

8 days agoExtract some functions 65/325265/1
Michal Bloch [Wed, 4 Jun 2025 17:34:51 +0000 (19:34 +0200)]
Extract some functions

For easy replacement.

Change-Id: Ic1437fe0d2cb8b8a6c25b7442a295f27676b2e88

9 days agoUse traditional path to the utilities 11/325211/1
Karol Lewandowski [Wed, 4 Jun 2025 10:50:12 +0000 (12:50 +0200)]
Use traditional path to the utilities

fsck.ext4 & others are actually provided in /usr/sbin, but due to
/sbin -> /usr/sbin symlink the /sbin/ path is valid too.

Change the path to /sbin due to compatibility issues with legacy
systems.

Change-Id: Iac17169e75a8dfb391c173ddbfd0141052ae30d4

11 days agoMerge changes from topic "sessiond-optimize-add" into tizen
Karol Lewandowski [Mon, 2 Jun 2025 22:28:12 +0000 (22:28 +0000)]
Merge changes from topic "sessiond-optimize-add" into tizen

* changes:
  Release 0.10.2.0
  Clearly mark version without resize2fs
  service: Regenerate template after 5s of dbus inactivity
  service: Ensure fsck is called for templated user add (image)
  service: Do not fail the whole program if template generation fails
  Make regular dir subsessiond from a template.
  Create fixed-size subsessions via template copy
  Add OS::do_resize2fs
  Create templates at sessiond start
  Add a basic benchmark for subsession_add variants
  Fix integration tests perms checks

11 days agoMerge "Mount image sessions immediately." into tizen
Karol Lewandowski [Mon, 2 Jun 2025 22:28:12 +0000 (22:28 +0000)]
Merge "Mount image sessions immediately." into tizen

11 days agoMerge "Remove the 'unmount at switch' optional feature" into tizen
Karol Lewandowski [Mon, 2 Jun 2025 22:28:12 +0000 (22:28 +0000)]
Merge "Remove the 'unmount at switch' optional feature" into tizen

11 days agoMerge "Remount image-based subsessions at boot" into tizen
Karol Lewandowski [Mon, 2 Jun 2025 22:28:12 +0000 (22:28 +0000)]
Merge "Remount image-based subsessions at boot" into tizen

11 days agoMerge "Extract uid/username getting from sessiond restoration" into tizen
Karol Lewandowski [Mon, 2 Jun 2025 22:28:12 +0000 (22:28 +0000)]
Merge "Extract uid/username getting from sessiond restoration" into tizen

11 days agoRelease 0.10.2.0 41/325041/4 accepted/tizen/unified/20250603.182350 accepted/tizen/unified/x/20250604.024134
Michal Bloch [Fri, 30 May 2025 20:18:24 +0000 (22:18 +0200)]
Release 0.10.2.0

Optimize adding subsessions via a prepared template.

Change-Id: I0b4dff80d133e2562a68c196195a027818a98107

11 days agoClearly mark version without resize2fs 89/325089/1
Karol Lewandowski [Mon, 2 Jun 2025 11:17:04 +0000 (13:17 +0200)]
Clearly mark version without resize2fs

Change-Id: I085239d177f54a8c3edce42276859047b9bcdd23

2 weeks agoservice: Regenerate template after 5s of dbus inactivity 83/324983/6
Karol Lewandowski [Thu, 29 May 2025 10:48:05 +0000 (12:48 +0200)]
service: Regenerate template after 5s of dbus inactivity

Change-Id: I68aae84c2004d6eb17827c5141a4b1d7a85cb76d

2 weeks agoservice: Ensure fsck is called for templated user add (image) 90/324990/3
Karol Lewandowski [Thu, 29 May 2025 23:13:40 +0000 (01:13 +0200)]
service: Ensure fsck is called for templated user add (image)

Change-Id: I238fd4925f842519e29b5c49304f885df6ff0abe

2 weeks agoservice: Do not fail the whole program if template generation fails 89/324989/3
Karol Lewandowski [Thu, 29 May 2025 22:44:10 +0000 (00:44 +0200)]
service: Do not fail the whole program if template generation fails

Change-Id: Ida04e3b145b3227288f34b7dbc2db7ab998b5471

2 weeks agoMake regular dir subsessiond from a template. 80/324680/5
Michal Bloch [Thu, 22 May 2025 21:31:30 +0000 (23:31 +0200)]
Make regular dir subsessiond from a template.

Change-Id: I57d4ced4f6aa3c76abc3346b24250ae95fac8753
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2 weeks agoCreate fixed-size subsessions via template copy 52/322852/7
Michal Bloch [Thu, 22 May 2025 18:07:51 +0000 (20:07 +0200)]
Create fixed-size subsessions via template copy

Regular dirs added in the next commit.

Change-Id: I2b859f71174c690fa2c1658f2986fad60dd803e9

2 weeks agoAdd OS::do_resize2fs 54/324254/12
Karol Lewandowski [Tue, 13 May 2025 14:09:19 +0000 (16:09 +0200)]
Add OS::do_resize2fs

And the corresponding OS::have_resize2fs

Change-Id: I7558a4e2f866a3b3990124cebf803f44ee3663df

2 weeks agoCreate templates at sessiond start 79/324679/6
Michal Bloch [Thu, 22 May 2025 15:16:17 +0000 (17:16 +0200)]
Create templates at sessiond start

Will be used for a fast route to add subsessions,
since renaming a dir/image is much faster than
copying the whole skel folder hierarchy.

Change-Id: I0ff51c4126f44675445d3337a5ab51463c0aec03

2 weeks agoAdd a basic benchmark for subsession_add variants 25/324925/4
Michal Bloch [Wed, 28 May 2025 19:49:36 +0000 (21:49 +0200)]
Add a basic benchmark for subsession_add variants

Change-Id: Ib411a2ce77f27f9859476cc136fa3ec65bb0a7bf

2 weeks agoFix integration tests perms checks 21/324921/2
Michal Bloch [Wed, 28 May 2025 14:25:33 +0000 (16:25 +0200)]
Fix integration tests perms checks

 * a symlink's permissions don't matter, so as long as it points to
   the correct file it's supposed to be correct.

 * nominally, symlink permissions are always 0777 and cannot be
   changed, so in theory there is nothing to check. On VD targets
   there exist 0755 symlinks. We don't know where they come from
   or what their meaning is, although it seems harmless and we
   can't do anything about them anyway (there is no lchmod(2)).

 * also update a comment with our recent advances in understanding.

Change-Id: Icb58e3dc541813ce7070943434178ebdcdc73477

2 weeks agoAdd support for dbus on-demand activation based on kdbus 91/324791/4
Chanwoo Choi [Mon, 26 May 2025 12:22:26 +0000 (21:22 +0900)]
Add support for dbus on-demand activation based on kdbus

Add support for dbus on-demand activation based on kdbus
by adding org.tizen.sessiond.busname file.

When systemd-dbus1-generator creates the org.tizen.sessiond.busname
automatically by using /usr/share/dbus-1/system-services/org.tizen.system.sessiond.service
source file, it doesn't work properly on kdbus with following log.
Add *.busname file manually and add 'DefaultDependencies=no'
into sessiond.service, this issue is resolved.

[Example of that buxton2 execute libsessdiond at the early boot of TV]
(snip) org.tizen.sessdiond.busname: Not runnable by sysinit.target (After)

Change-Id: I7cf0ff239ae94359edf2bb74da17fccda224cc2d
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
3 weeks agoMount image sessions immediately. 70/324670/2
Michal Bloch [Thu, 22 May 2025 12:18:27 +0000 (14:18 +0200)]
Mount image sessions immediately.

Change-Id: Id86481e508ef8659b51be3595f4954d07b891f0d

3 weeks agoRemove the 'unmount at switch' optional feature 69/324669/2
Michal Bloch [Thu, 22 May 2025 11:38:32 +0000 (13:38 +0200)]
Remove the 'unmount at switch' optional feature

Keeping sessions mounted is mandatory for sessiond
to work correctly, the macro was dangerous.

Change-Id: Ib0c0466848f88909eaa0f5e837356d39cfca83cd

3 weeks agoRemount image-based subsessions at boot 68/324668/2
Michal Bloch [Thu, 22 May 2025 11:24:04 +0000 (13:24 +0200)]
Remount image-based subsessions at boot

Change-Id: Iffe5bbe3affb2945ef6c24173eee2daddf0c5110

3 weeks agoExtract uid/username getting from sessiond restoration 67/324667/2
Michal Bloch [Thu, 22 May 2025 11:07:15 +0000 (13:07 +0200)]
Extract uid/username getting from sessiond restoration

Will be used for image remounting as well.

Change-Id: I78a740a9089ba280344aa2dab4ab196234c19607

3 weeks agoMerge changes into tizen
Karol Lewandowski [Thu, 22 May 2025 13:47:48 +0000 (13:47 +0000)]
Merge changes  into tizen

3 weeks agoMerge changes into tizen
Karol Lewandowski [Thu, 22 May 2025 13:47:48 +0000 (13:47 +0000)]
Merge changes  into tizen

3 weeks agoMerge changes from topic "sessiond-optimize-add" into tizen
Karol Lewandowski [Thu, 22 May 2025 13:47:48 +0000 (13:47 +0000)]
Merge changes from topic "sessiond-optimize-add" into tizen

* changes:
  Fixed-size dir: reuse dirs via rename where possible
  Add some extra logs.

3 weeks agoMerge "Allow force-replacement when creating a subsession" into tizen
Karol Lewandowski [Thu, 22 May 2025 13:47:48 +0000 (13:47 +0000)]
Merge "Allow force-replacement when creating a subsession" into tizen

3 weeks agoFixed-size dir: reuse dirs via rename where possible 59/324259/2
Karol Lewandowski [Wed, 14 May 2025 14:06:58 +0000 (16:06 +0200)]
Fixed-size dir: reuse dirs via rename where possible

Change-Id: I181244f0cc16efcd1a22a1b35b8c0b13e2f6a609

3 weeks agoAdd some extra logs. 96/324496/2
Michal Bloch [Mon, 19 May 2025 15:07:17 +0000 (17:07 +0200)]
Add some extra logs.

Change-Id: Id34eb705667edd27fcbcd5c08c9bce1532d8a8a1

3 weeks agoExtract main subsessions dir creation 55/324255/4
Karol Lewandowski [Wed, 14 May 2025 09:14:51 +0000 (11:14 +0200)]
Extract main subsessions dir creation

Any exception handling for the "inner" handler will now
be able to assume that the main subdir exists.

This will come in handy in one of the next patches.

Change-Id: I80540e7e8e0b6ef1ea1df15d0eb7d79f387bf423

3 weeks agoAllow force-replacement when creating a subsession 56/324256/4
Karol Lewandowski [Wed, 14 May 2025 10:23:15 +0000 (12:23 +0200)]
Allow force-replacement when creating a subsession

Overrides any existent data. This will not be used for
regular subsession creation, but for creating templates
which is to be introduced in a further patch.

Change-Id: I718c4fa644038a1f89417123b875e5e52295662c

3 weeks agoEnsure needed utilities are actually installed 99/324499/2
Karol Lewandowski [Mon, 19 May 2025 20:53:35 +0000 (22:53 +0200)]
Ensure needed utilities are actually installed

Change-Id: Ie3d13d983fafa3f0cf3a8bbe48b0257e252b4bac

3 weeks agoRelease 0.10.1.1: add debug logs to execl calls 39/324339/3
Michal Bloch [Thu, 15 May 2025 11:29:50 +0000 (13:29 +0200)]
Release 0.10.1.1: add debug logs to execl calls

Change-Id: Id71e6487fe0f9e14dced82f597ad63e3f175a648

4 weeks agoUnmounting session done via ifdef instead of getenv 81/324081/1
Michal Bloch [Mon, 12 May 2025 09:03:32 +0000 (11:03 +0200)]
Unmounting session done via ifdef instead of getenv

Change-Id: Ic1424b7b8ba782801d3924367355205a4e0183c4

5 weeks agoAvoid string copy in get_current_subsession 80/324080/1
Michal Bloch [Fri, 9 May 2025 16:37:44 +0000 (18:37 +0200)]
Avoid string copy in get_current_subsession

Change-Id: Ief02671502873fa1785f212a5397e3a7a3653fd8
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
5 weeks agoFix some comments. 79/324079/1
Michal Bloch [Fri, 9 May 2025 16:30:06 +0000 (18:30 +0200)]
Fix some comments.

Change-Id: Id1139f2484a6d5aed991e6d2425d4f32cd6d771d

5 weeks agoExtract `do_touch` and make it more like touch(1) 78/324078/1
Michal Bloch [Fri, 9 May 2025 14:34:42 +0000 (16:34 +0200)]
Extract `do_touch` and make it more like touch(1)

Compared to previous:
 * flags +NOCTTY +NONBLOCK -TRUNC
 * permissions -x

Change-Id: I5929338e4795f7723b675474d6a7f09fd2fbd4b4

5 weeks agoMove coreutils-like functions to OS namespace 77/324077/1
Michal Bloch [Fri, 9 May 2025 13:16:45 +0000 (15:16 +0200)]
Move coreutils-like functions to OS namespace

Change-Id: Iabcd0491e114f5c19b55dca2b818858d49aad943

5 weeks agoFix strncpy() missing null character coverity issue 33/323933/1 accepted/tizen/unified/20250512.133259 accepted/tizen/unified/x/20250513.034802
Yunhee Seo [Fri, 9 May 2025 01:31:01 +0000 (10:31 +0900)]
Fix strncpy() missing null character coverity issue

If the strncpy gets the exact length of destination,
null character can be missed.
To fix up this, null character setting explicitly is added.

Change-Id: I8537e53df5e82e63a46898363003d9734bcd731f
Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
5 weeks agoRelease 0.10.1.0 16/323816/1 sandbox/klewandowski/ext4fix
Karol Lewandowski [Wed, 7 May 2025 19:21:30 +0000 (21:21 +0200)]
Release 0.10.1.0

Change-Id: Iecfdfb10eab1b682428aed9beee358b63bce0b9e

5 weeks agoCreate space efficient ext4 filesystem without journal 15/323815/1
Karol Lewandowski [Wed, 7 May 2025 20:51:39 +0000 (22:51 +0200)]
Create space efficient ext4 filesystem without journal

Change-Id: I66b824796ed4ac0fa1a982af1e3b57f3e5c02d2a

5 weeks agoIncrease default libsessiond timeout 99/323799/2
Michal Bloch [Wed, 7 May 2025 14:16:02 +0000 (16:16 +0200)]
Increase default libsessiond timeout

Very busy systems running on garbage hardware can sometimes
fail to finish calls within the timeout. The timeout is there
mostly to avoid infinite waiting, so can be as large as we
want to accomodate this as long as it's not infinite/-1.

Change-Id: Id387f627081222edc4a111ac55c4b1a8e67f8576

5 weeks agoservice: session restore: Handle non-existing uids properly 19/323719/3
Karol Lewandowski [Tue, 6 May 2025 17:02:44 +0000 (19:02 +0200)]
service: session restore: Handle non-existing uids properly

/opt/usr/home/ can contain build artifacts like 'abuild' with no
passwd entry, causing sessiond to terminate at user->uid translation.

Fixes:

  I/SESSIOND(18740): main_restore.cpp: restore_all_user_sessions(135) > Restoring last session for user abuild
  E/SESSIOND(18740): main.cpp: main(46) > Exception Couldn't get Unix uid for `abuild` user - does not exist caught in top scope! Bailing out...

Change-Id: Ida7609da7a122b7f10c8ca05bf0d6b5a25e22018

5 weeks agomkfs: Pre-create empty image file to workaround obsolete mkfs.ext4 18/323718/2
Karol Lewandowski [Tue, 6 May 2025 16:58:48 +0000 (18:58 +0200)]
mkfs: Pre-create empty image file to workaround obsolete mkfs.ext4

We not only need to create empty file but also add -F (force) flag
for mkfs.ext4 to actually create filesystem.

Needed for mkfs.ext4 v1.43 from 2013.

Change-Id: I69fb57f2b1d6a8c9823d70a81c0f86f56bd33739

5 weeks agoAvoid mkfs interactive mode extra hard 16/323616/2
Michal Bloch [Wed, 30 Apr 2025 18:37:33 +0000 (20:37 +0200)]
Avoid mkfs interactive mode extra hard

Change-Id: I9b8e12abd0dd1225bc7dc7d32fa31cf7f5588e57

5 weeks agoSwitch to mkfs.ext4 56/323256/3
Karol Lewandowski [Thu, 24 Apr 2025 20:34:11 +0000 (22:34 +0200)]
Switch to mkfs.ext4

It looks like mkfs.ext2 is no longer universally available.

While mkfs.ext4 can still create ext2 filesystems,
mount won't necessarily still support mounting those.

Change-Id: I7a404b9a8feca5a281543f6fad1b50c0566cf574

6 weeks agoAdd subsession current/list getters to plugin API 15/323615/2
Michal Bloch [Wed, 30 Apr 2025 20:14:15 +0000 (22:14 +0200)]
Add subsession current/list getters to plugin API

With some usage in the example/test plugin.

Change-Id: Ieb1826b69fea90d926b7ed85e8c9cb0a2b9cf101

6 weeks agosessiond-plugin-internal.h moved from libsyscommon 22/323522/2
Michal Bloch [Tue, 29 Apr 2025 11:49:56 +0000 (13:49 +0200)]
sessiond-plugin-internal.h moved from libsyscommon

The internal functions are already provided by sessiond,
in plugin_push.cpp, so this makes sure that the header
is also provided in the same place and avoids creating
a "fake" plugin dependency on libsyscommon.

Change-Id: I54754be8612ca71ac6fb7826a828efdecdc43de2

7 weeks agoFix invocation timing of plugin function after completed add/remove/swich 31/323031/1 accepted/tizen/unified/20250429.071346 accepted/tizen/unified/x/20250429.203546
Chanwoo Choi [Tue, 22 Apr 2025 06:50:34 +0000 (15:50 +0900)]
Fix invocation timing of plugin function after completed add/remove/swich

commit b614b440a919 (Add basic event listener plugin support) has the
invocation timing issue of plugin funciton because invocating the plugin
function before add/remove/switch completion.
So that Invocate plugin function after add/remove/switch completion.

Change-Id: Ia7677c0e731829cff5a3c422f6b56d7402ba9936
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
8 weeks agoMerge "Release 0.10.0.3" into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge "Release 0.10.0.3" into tizen

8 weeks agoMerge "Advisory locks for restoration" into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge "Advisory locks for restoration" into tizen

8 weeks agoMerge "Restore last subsession at sessiond start" into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge "Restore last subsession at sessiond start" into tizen

8 weeks agoMerge changes into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge changes  into tizen

8 weeks agoMerge changes into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge changes  into tizen

8 weeks agoMerge "Add OS::get_uid_from_name" into tizen
Karol Lewandowski [Mon, 14 Apr 2025 16:14:33 +0000 (16:14 +0000)]
Merge "Add OS::get_uid_from_name" into tizen

8 weeks agoRelease 0.10.0.3 03/322703/1
Michal Bloch [Mon, 14 Apr 2025 14:58:08 +0000 (16:58 +0200)]
Release 0.10.0.3

Add subsession restoration after reboot.

Change-Id: Id0213b8768b45153283a28d1594d351f69ca63f2

8 weeks agoAdvisory locks for restoration 26/322626/3
Michal Bloch [Fri, 11 Apr 2025 17:07:33 +0000 (19:07 +0200)]
Advisory locks for restoration

Change-Id: Ic394369fa3ab017503deb329e6dfee0328736f7c

2 months agoRestore last subsession at sessiond start 52/322552/4
Michal Bloch [Thu, 10 Apr 2025 19:55:32 +0000 (21:55 +0200)]
Restore last subsession at sessiond start

And add a restore-only mode in case work needs to be done
such as for fixed-size backend that needs to be remounted.

Change-Id: Iee7d831889ecac7e1a913e7acb61eb9a34ba82a5

2 months agoExtract sysconf buffer allocation 47/322547/3
Michal Bloch [Wed, 9 Apr 2025 16:20:58 +0000 (18:20 +0200)]
Extract sysconf buffer allocation

Change-Id: I931eca869f4b6354c25c5faa0b56362e069839d4

2 months agoAdd OS::get_uid_from_name 48/322548/3
Michal Bloch [Wed, 9 Apr 2025 16:21:43 +0000 (18:21 +0200)]
Add OS::get_uid_from_name

Change-Id: Ic6f5d83857689acfdc94ae88a3c158aff3cdbec8

2 months agoSave the last subsession on disk 50/322550/3
Michal Bloch [Thu, 10 Apr 2025 16:00:10 +0000 (18:00 +0200)]
Save the last subsession on disk

Change-Id: Id25e3ff5ec694aa3071052d4e3130edc9a4c794d

2 months ago`get_main_dir_by_user_id` exposed, returns fs::path 49/322549/3
Michal Bloch [Thu, 10 Apr 2025 15:11:59 +0000 (17:11 +0200)]
`get_main_dir_by_user_id` exposed, returns fs::path

Change-Id: Ic6f5d83857689acfdc94ae88a3c158aff3cdb000

2 months agoExample plugin conforms to libsyscommon interface change 08/322408/1 accepted/tizen/unified/20250412.035603 accepted/tizen/unified/x/20250413.210746
Michal Bloch [Tue, 8 Apr 2025 18:11:52 +0000 (20:11 +0200)]
Example plugin conforms to libsyscommon interface change

Change-Id: I5a5e8cb59dd16c3d287b5ed6584a00e8def63e2e

2 months agoRelease 0.10.0.2 28/322328/2
Michal Bloch [Mon, 7 Apr 2025 14:38:39 +0000 (16:38 +0200)]
Release 0.10.0.2

Hotfix printf arg ordering

Change-Id: Idbec99be804cff38b55537836750fc877f7e2ce3

2 months agoRelease 0.10.0.1 68/321968/2 accepted/tizen/unified/20250404.011642 accepted/tizen/unified/x/20250404.094524
Michal Bloch [Tue, 1 Apr 2025 17:22:17 +0000 (19:22 +0200)]
Release 0.10.0.1

Minor correctness fixes

Change-Id: I25cd31dbd56975e865e1529cb5464493481bd478

2 months agoPlugin example: stump actually fits its contents 67/321967/2
Michal Bloch [Tue, 1 Apr 2025 17:21:52 +0000 (19:21 +0200)]
Plugin example: stump actually fits its contents

Change-Id: I8a112284ef1c17a8501b241435a60bf4796f9699

2 months agoImprove plugin example commentary 66/321966/2
Michal Bloch [Tue, 1 Apr 2025 17:21:05 +0000 (19:21 +0200)]
Improve plugin example commentary

In case it actually gets used as a skeleton/example.

Change-Id: I2861c4fb72d6aaa60fac3f70525faa2816caf09a

2 months agoProper exception handling for add/remove failures 65/321965/2
Michal Bloch [Tue, 1 Apr 2025 15:34:47 +0000 (17:34 +0200)]
Proper exception handling for add/remove failures

Change-Id: I138578dda11a3f21a17c5114e3eb1c1de4fafd16

2 months agoCleanup failed fixed-size add attempts properly 64/321964/2
Michal Bloch [Tue, 1 Apr 2025 12:09:46 +0000 (14:09 +0200)]
Cleanup failed fixed-size add attempts properly

Change-Id: I624fd935c4f1a795503004befc54dd99a15aa06f
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2 months agoCheck subsession existence explicitly for Add/Remove 51/322051/1
Michal Bloch [Wed, 2 Apr 2025 17:36:04 +0000 (19:36 +0200)]
Check subsession existence explicitly for Add/Remove

Instead of relying on the actual function blowing up
and parsing the exception in the outermost scope.

Change-Id: Ibd9b0f587880dc5503924f0debde1ec17157f892
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2 months agoTweak exception log messages 63/321963/1
Michal Bloch [Tue, 1 Apr 2025 11:57:29 +0000 (13:57 +0200)]
Tweak exception log messages

 * remove inline \n because this produce 2 separate dlog entries
 * put the specific exception message at the end for readability

Change-Id: I556a0694d691fb324334245613b8b1456ea157cc

2 months agoMerge changes into tizen
Karol Lewandowski [Mon, 31 Mar 2025 16:50:55 +0000 (16:50 +0000)]
Merge changes  into tizen

2 months agoMerge changes from topic "sessiond-2025-03-plugins" into tizen
Karol Lewandowski [Mon, 31 Mar 2025 16:50:55 +0000 (16:50 +0000)]
Merge changes from topic "sessiond-2025-03-plugins" into tizen

* changes:
  Release 0.10.0.0
  Add an example/test plugin
  Plugin can now also push events
  Ensure sessiond service build as PIE
  Add basic event listener plugin support
  Unify validity checks
  Have a single global instance of `sessiond_context`
  Move struct defs out of main.cpp
  Extract work away from dbus method handlers

2 months agoMerge changes into tizen
Karol Lewandowski [Mon, 31 Mar 2025 16:50:55 +0000 (16:50 +0000)]
Merge changes  into tizen

2 months agoMerge changes into tizen
Karol Lewandowski [Mon, 31 Mar 2025 16:50:55 +0000 (16:50 +0000)]
Merge changes  into tizen

2 months agoRelease 0.10.0.0 26/321526/3 accepted/tizen/unified/20250403.081015 accepted/tizen/unified/x/20250403.110103
Michal Bloch [Mon, 24 Mar 2025 17:42:43 +0000 (18:42 +0100)]
Release 0.10.0.0

Added plugin support

Change-Id: Ib297d98a45c454bdc101ce9ad32bd5e40fc7d6ef

2 months agoAdd an example/test plugin 81/321681/4
Karol Lewandowski [Tue, 25 Mar 2025 13:40:22 +0000 (14:40 +0100)]
Add an example/test plugin

Co-authored-by: Michal Bloch <m.bloch@samsung.com>
Change-Id: Ifa7c7d2b773d1840449e855d9885d5c951c1b86d

2 months agoPlugin can now also push events 02/321602/4
Michal Bloch [Tue, 25 Mar 2025 19:55:29 +0000 (20:55 +0100)]
Plugin can now also push events

Change-Id: I920283dd08647ac8abce95de25315484f1e7ba43

2 months agoEnsure sessiond service build as PIE 24/321824/3
Karol Lewandowski [Fri, 28 Mar 2025 13:12:42 +0000 (14:12 +0100)]
Ensure sessiond service build as PIE

This is needed for plugins to be able to safely call sessiond exported
symbols.

Change-Id: I10eb2b8163d202f10cbdd209bffe412309da1952

2 months agoAdd basic event listener plugin support 13/321413/8
Michal Bloch [Wed, 19 Mar 2025 15:54:31 +0000 (16:54 +0100)]
Add basic event listener plugin support

Change-Id: I766a35b341c89d14eeae96f16d31ea65b91ac27e

2 months agoUnify validity checks 54/321754/1
Michal Bloch [Wed, 26 Mar 2025 18:09:14 +0000 (19:09 +0100)]
Unify validity checks

Change-Id: If3ba71927a7d182bde76b25ac655f44f3cf855bb

2 months agoHave a single global instance of `sessiond_context` 80/321680/2
Michal Bloch [Wed, 26 Mar 2025 13:55:54 +0000 (14:55 +0100)]
Have a single global instance of `sessiond_context`

This is the de facto state of affairs
and makes the plugin interface cleaner.

Change-Id: I24cb1625945fae2ef4a7dbb5b4e5e232edb6c911

2 months agoMove struct defs out of main.cpp 01/321601/2
Michal Bloch [Tue, 25 Mar 2025 20:11:10 +0000 (21:11 +0100)]
Move struct defs out of main.cpp

Plugin will want to know the context definition to call work funcs,
so the definitions need to be in a header.

Make some other header functions `inline` to allow multiple inclusion.

Change-Id: Iba0cf4c15f139a47d808ee1fdfaa38e4e64ec4e7