Skip to content

Commit 8baa8d6

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 73d9f70 commit 8baa8d6

1 file changed

Lines changed: 123 additions & 0 deletions

File tree

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
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: drop malcontent from gnome-control-center,
7+
gnome-initial-setup, and gnome-software; disable parental controls flags;
8+
enable -Dcreate_homed=true in accountsservice; and configure the live
9+
generator to set DefaultStorage=subvolume for homed home directories.
10+
11+
Port of gnome-build-meta!2681.
12+
13+
Upstream-Status: Submitted https://gitlab.gnome.org/GNOME/gnome-build-meta/-/merge_requests/2681
14+
Exit condition: Drop after gnome-build-meta gnome-50 merges MR !2681
15+
---
16+
elements/core-deps/accountsservice.bst | 2 ++
17+
elements/core/gnome-control-center.bst | 2 --
18+
elements/core/gnome-initial-setup.bst | 10 +++++-----
19+
elements/core/gnome-software.bst | 2 +-
20+
files/gnomeos/live/generator.c | 6 ++++++
21+
5 files changed, 14 insertions(+), 8 deletions(-)
22+
23+
diff --git a/elements/core-deps/accountsservice.bst b/elements/core-deps/accountsservice.bst
24+
index 95adcd1..b9ed662 100644
25+
--- a/elements/core-deps/accountsservice.bst
26+
+++ b/elements/core-deps/accountsservice.bst
27+
@@ -24,3 +24,5 @@ depends:
28+
variables:
29+
local_flags: >-
30+
-Wno-error=implicit-function-declaration
31+
+ meson-local: >-
32+
+ -Dcreate_homed=true
33+
diff --git a/elements/core/gnome-control-center.bst b/elements/core/gnome-control-center.bst
34+
index 1f1df8e..e3a275d 100644
35+
--- a/elements/core/gnome-control-center.bst
36+
+++ b/elements/core/gnome-control-center.bst
37+
@@ -27,7 +27,6 @@ depends:
38+
- core-deps/ibus-daemon.bst
39+
- core-deps/libgtop.bst
40+
- core-deps/libnma.bst
41+
-- core-deps/malcontent.bst
42+
- core-deps/samba.bst
43+
- core-deps/system-config-printer.bst
44+
- core-deps/udisks2.bst
45+
@@ -52,4 +51,3 @@ depends:
46+
variables:
47+
meson-local: >-
48+
-Ddocumentation=true
49+
- -Dmalcontent=true
50+
diff --git a/elements/core/gnome-initial-setup.bst b/elements/core/gnome-initial-setup.bst
51+
index 1243705..d3f9a1c 100644
52+
--- a/elements/core/gnome-initial-setup.bst
53+
+++ b/elements/core/gnome-initial-setup.bst
54+
@@ -1,7 +1,8 @@
55+
kind: meson
56+
57+
sources:
58+
-- kind: tar
59+
- url: gnome_downloads:gnome-initial-setup/50/gnome-initial-setup-50.0.tar.xz
60+
- ref: 2da96b76a3434468a557fe481b8cfe606262f3537b00a4c20d4aa239a44e96e1
61+
+- kind: git_repo
62+
+ url: gnome_gitlab:AdrianVovk/gnome-initial-setup.git
63+
+ track: homed
64+
+ ref: 50.0-10-g952d28e3e3aefe67bc0dd2d37a0be964d2b69d66
65+
build-depends:
66+
@@ -16,7 +17,6 @@ depends:
67+
- core-deps/libgweather.bst
68+
- core-deps/libnma.bst
69+
- core-deps/librest.bst
70+
-- core-deps/malcontent.bst
71+
- core-deps/upower.bst
72+
- core/gdm.bst
73+
- core/gnome-desktop.bst
74+
@@ -33,4 +33,4 @@ depends:
75+
76+
variables:
77+
meson-local: >-
78+
- -Dparental_controls=enabled
79+
+ -Dparental_controls=disabled
80+
diff --git a/elements/core/gnome-software.bst b/elements/core/gnome-software.bst
81+
index c3d5398..86c0abc 100644
82+
--- a/elements/core/gnome-software.bst
83+
+++ b/elements/core/gnome-software.bst
84+
@@ -15,7 +15,6 @@ depends:
85+
- core-deps/glib-testing.bst
86+
- core-deps/gnome-online-accounts.bst
87+
- core-deps/liboauth.bst
88+
-- core-deps/malcontent.bst
89+
- core-deps/snapd-glib.bst
90+
- core/gnome-desktop.bst
91+
- sdk/adwaita-icon-theme.bst
92+
@@ -44,3 +43,4 @@ variables:
93+
-Dpackagekit=false
94+
-Dsnap=true
95+
-Dsystemd-sysupdate=true
96+
+ -Dmalcontent=false
97+
diff --git a/files/gnomeos/live/generator.c b/files/gnomeos/live/generator.c
98+
index b44b546..1687750 100644
99+
--- a/files/gnomeos/live/generator.c
100+
+++ b/files/gnomeos/live/generator.c
101+
@@ -107,6 +107,7 @@ static void mark_live() {
102+
103+
int main(int argc, char *argv[]) {
104+
_cleanup_(fclosep) FILE* file = NULL;
105+
+ _cleanup_(fclosep) FILE* file2 = NULL;
106+
char *in_initrd_str;
107+
int in_initrd;
108+
bool is_live;
109+
@@ -143,6 +144,11 @@ int main(int argc, char *argv[]) {
110+
fprintf(file, "[zram1]\nmount-point=/\nfs-type=btrfs\n");
111+
fclosep(&file);
112+
113+
+ mkdir("/run/systemd/homed.conf.d", 0777);
114+
+ file2 = fopen("/run/systemd/homed.conf.d/00-force-subvolume.conf", "w");
115+
+ fprintf(file2, "[Home]\nDefaultStorage=subvolume\n");
116+
+ fclosep(&file2);
117+
+
118+
mark_live();
119+
120+
if (!generate_unit(argv[1], "var-lib-gnomeos-installer\\x2desp.mount",
121+
--
122+
2.54.0
123+

0 commit comments

Comments
 (0)