Skip to content

Commit 050ccef

Browse files
committed
feat(gnome): Enable systemd-homed support by default
Integrates a patch to enable `systemd-homed` unconditionally across the GNOME stack. This involves: - Enabling `-Dcreate_homed=true` in `accountsservice`. - Removing `malcontent` dependencies and disabling parental controls from `gnome-control-center`, `gnome-initial-setup`, and `gnome-software`. - Configuring the live generator to set `DefaultStorage=subvolume` for homed home directories. This is a port of `gnome-build-meta!2681`.
1 parent 0fba5de commit 050ccef

1 file changed

Lines changed: 120 additions & 0 deletions

File tree

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
From efd777d188d7c40b7d920a87728b8e7c60b23f20 Mon Sep 17 00:00:00 2001
2+
From: Adrian Vovk <avovk@gnome.org>
3+
Date: Wed, 17 Jun 2026 22:01:35 -0400
4+
Subject: [PATCH] Add support for systemd-homed
5+
6+
Enable homed unconditionally: switch gnome-initial-setup to Adrian
7+
Vovk's homed fork for proper user creation; drop malcontent from
8+
gnome-control-center, gnome-initial-setup, and gnome-software;
9+
disable parental controls flags; enable -Dcreate_homed=true in
10+
accountsservice; configure the live generator to set
11+
DefaultStorage=subvolume for homed home directories.
12+
13+
Port of gnome-build-meta!2681.
14+
15+
Upstream-Status: Submitted https://gitlab.gnome.org/GNOME/gnome-build-meta/-/merge_requests/2681
16+
Exit condition: Drop after gnome-build-meta gnome-50 merges MR !2681
17+
---
18+
elements/core-deps/accountsservice.bst | 4 ++++
19+
elements/core/gnome-control-center.bst | 2 --
20+
elements/core/gnome-initial-setup.bst | 9 ++++-----
21+
elements/core/gnome-software.bst | 2 +-
22+
files/gnomeos/live/generator.c | 5 +++++
23+
5 files changed, 14 insertions(+), 8 deletions(-)
24+
25+
diff --git a/elements/core-deps/accountsservice.bst b/elements/core-deps/accountsservice.bst
26+
index dabcfa8..73f280f 100644
27+
--- a/elements/core-deps/accountsservice.bst
28+
+++ b/elements/core-deps/accountsservice.bst
29+
@@ -18,3 +18,7 @@ depends:
30+
- freedesktop-sdk.bst:components/dbus.bst
31+
- freedesktop-sdk.bst:components/polkit.bst
32+
- freedesktop-sdk.bst:public-stacks/runtime-minimal.bst
33+
+
34+
+variables:
35+
+ meson-local: >-
36+
+ -Dcreate_homed=true
37+
diff --git a/elements/core/gnome-control-center.bst b/elements/core/gnome-control-center.bst
38+
index 3e59f75..babd028 100644
39+
--- a/elements/core/gnome-control-center.bst
40+
+++ b/elements/core/gnome-control-center.bst
41+
@@ -39,7 +39,6 @@ depends:
42+
- core-deps/ibus-daemon.bst
43+
- core-deps/libgtop.bst
44+
- core-deps/libnma.bst
45+
-- core-deps/malcontent.bst
46+
- core-deps/samba.bst
47+
- core-deps/system-config-printer.bst
48+
- core-deps/udisks2.bst
49+
@@ -64,4 +63,3 @@ depends:
50+
variables:
51+
meson-local: >-
52+
-Ddocumentation=true
53+
- -Dmalcontent=true
54+
diff --git a/elements/core/gnome-initial-setup.bst b/elements/core/gnome-initial-setup.bst
55+
index d207fb4..98f1d9c 100644
56+
--- a/elements/core/gnome-initial-setup.bst
57+
+++ b/elements/core/gnome-initial-setup.bst
58+
@@ -2,9 +2,9 @@ kind: meson
59+
60+
sources:
61+
- kind: git_repo
62+
- url: gnome:gnome-initial-setup.git
63+
- track: master
64+
- ref: 50.0-65-g4472cba3e9540f75fec272fd6d6d3acd90e00d1d
65+
+ url: gnome_gitlab:AdrianVovk/gnome-initial-setup.git
66+
+ track: homed
67+
+ ref: 50.0-10-g952d28e3e3aefe67bc0dd2d37a0be964d2b69d66
68+
69+
build-depends:
70+
- freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
71+
@@ -18,7 +18,6 @@ depends:
72+
- core-deps/libgweather.bst
73+
- core-deps/libnma.bst
74+
- core-deps/librest.bst
75+
-- core-deps/malcontent.bst
76+
- core-deps/upower.bst
77+
- core/gdm.bst
78+
- core/gnome-desktop.bst
79+
@@ -34,4 +33,4 @@ depends:
80+
81+
variables:
82+
meson-local: >-
83+
- -Dparental_controls=enabled
84+
+ -Dparental_controls=disabled
85+
diff --git a/elements/core/gnome-software.bst b/elements/core/gnome-software.bst
86+
index 29e7c47..5c46b2b 100644
87+
--- a/elements/core/gnome-software.bst
88+
+++ b/elements/core/gnome-software.bst
89+
@@ -20,7 +20,6 @@ depends:
90+
- core-deps/fwupd.bst
91+
- core-deps/glib-testing.bst
92+
- core-deps/gnome-online-accounts.bst
93+
-- core-deps/malcontent.bst
94+
- core-deps/snapd-glib.bst
95+
- core/gnome-desktop.bst
96+
- sdk/adwaita-icon-theme.bst
97+
@@ -49,3 +48,4 @@ variables:
98+
-Dpackagekit=false
99+
-Dsnap=true
100+
-Dsystemd-sysupdate=true
101+
+ -Dmalcontent=false
102+
diff --git a/files/gnomeos/live/generator.c b/files/gnomeos/live/generator.c
103+
index 8fe5b0f..bf92377 100644
104+
--- a/files/gnomeos/live/generator.c
105+
+++ b/files/gnomeos/live/generator.c
106+
@@ -154,6 +154,11 @@ static bool handle_live(const char *generator_path, bool in_initrd) {
107+
fprintf(file, "[zram1]\nmount-point=/\nfs-type=btrfs\n");
108+
fclosep(&file);
109+
110+
+ mkdir("/run/systemd/homed.conf.d", 0777);
111+
+ file = fopen("/run/systemd/homed.conf.d/00-force-subvolume.conf", "w");
112+
+ fprintf(file, "[Home]\nDefaultStorage=subvolume\n");
113+
+ fclosep(&file);
114+
+
115+
if (!mark_live())
116+
return false;
117+
118+
--
119+
2.54.0
120+

0 commit comments

Comments
 (0)