From 44ab0bf0cd4545cbcd21e9d98eaf05dfefd2167c Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Fri, 3 Jul 2026 22:48:22 +0900 Subject: [PATCH 01/10] Use flatpak preinstall for system Flatpak apps --- flatpak/appcenter.preinstall | 20 ++++++++++++++++++++ flatpak/flathub.preinstall | 11 +++++++++++ flatpak/meson.build | 11 +++++++++++ meson.build | 3 +++ 4 files changed, 45 insertions(+) create mode 100644 flatpak/appcenter.preinstall create mode 100644 flatpak/flathub.preinstall create mode 100644 flatpak/meson.build diff --git a/flatpak/appcenter.preinstall b/flatpak/appcenter.preinstall new file mode 100644 index 0000000..a0ce8c0 --- /dev/null +++ b/flatpak/appcenter.preinstall @@ -0,0 +1,20 @@ +[Flatpak Preinstall io.elementary.calculator] +Branch=stable + +[Flatpak Preinstall io.elementary.camera] +Branch=stable + +[Flatpak Preinstall io.elementary.capnet-assist] +Branch=stable + +[Flatpak Preinstall io.elementary.maps] +Branch=stable + +[Flatpak Preinstall io.elementary.music] +Branch=stable + +[Flatpak Preinstall io.elementary.screenshot] +Branch=stable + +[Flatpak Preinstall io.elementary.videos] +Branch=stable diff --git a/flatpak/flathub.preinstall b/flatpak/flathub.preinstall new file mode 100644 index 0000000..17f9322 --- /dev/null +++ b/flatpak/flathub.preinstall @@ -0,0 +1,11 @@ +[Flatpak Preinstall org.gnome.Epiphany] +Branch=stable + +[Flatpak Preinstall org.gnome.Evince] +Branch=stable + +[Flatpak Preinstall org.gnome.FileRoller] +Branch=stable + +[Flatpak Preinstall org.gnome.font-viewer] +Branch=stable diff --git a/flatpak/meson.build b/flatpak/meson.build new file mode 100644 index 0000000..981c249 --- /dev/null +++ b/flatpak/meson.build @@ -0,0 +1,11 @@ +preinstall_files = [ + 'appcenter.preinstall', + 'flathub.preinstall', +] + +foreach file : preinstall_files + install_data( + file, + install_dir: sysconfdir / 'flatpak' / 'preinstall.d' + ) +endforeach diff --git a/meson.build b/meson.build index 24be51b..5d3d57f 100644 --- a/meson.build +++ b/meson.build @@ -59,3 +59,6 @@ subdir('gtk') # Network settings subdir('network') + +# Flatpak preinstall files +subdir('flatpak') From c8aa9203e6b7d429aa36026ba065bd4208a90674 Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Thu, 13 Aug 2026 09:42:17 +0900 Subject: [PATCH 02/10] Import flatpak-preinstalld.service from elementary-atomic-os Improted from https://github.com/jumpyvi/elementary-atomic-os/commit/f46b8342d8189abfd0e32c65bc15a50ab78797df Co-Authored-By: JumpyVi <62212220+jumpyvi@users.noreply.github.com> --- flatpak/flatpak-preinstalld.service | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 flatpak/flatpak-preinstalld.service diff --git a/flatpak/flatpak-preinstalld.service b/flatpak/flatpak-preinstalld.service new file mode 100644 index 0000000..c6142ee --- /dev/null +++ b/flatpak/flatpak-preinstalld.service @@ -0,0 +1,22 @@ +[Unit] +Description=Preinstall Flatpaks +After=network-online.target +Wants=network-online.target +ConditionPathExists=/usr/bin/flatpak +ConditionPathExists=!/var/lib/flatpak/.preinstall-finished +Documentation=man:flatpak-preinstall(1) +StartLimitIntervalSec=600 + +[Service] +Type=oneshot +ExecStart=mkdir -p /var/lib/flatpak/ +ExecStart=/usr/bin/flatpak preinstall -y +ExecStart=touch /var/lib/flatpak/.preinstall-finished +RemainAfterExit=true +Restart=on-failure +RestartSec=30 + +StartLimitBurst=3 + +[Install] +WantedBy=multi-user.target \ No newline at end of file From 4c93b512eeb698b8081d77b82378721069da2b28 Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Thu, 13 Aug 2026 09:56:56 +0900 Subject: [PATCH 03/10] Add EOF newline --- flatpak/flatpak-preinstalld.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flatpak/flatpak-preinstalld.service b/flatpak/flatpak-preinstalld.service index c6142ee..68a6daf 100644 --- a/flatpak/flatpak-preinstalld.service +++ b/flatpak/flatpak-preinstalld.service @@ -19,4 +19,4 @@ RestartSec=30 StartLimitBurst=3 [Install] -WantedBy=multi-user.target \ No newline at end of file +WantedBy=multi-user.target From 0deaa0e7cad2ddb4888052a316adf4cc1e0c18ac Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Thu, 13 Aug 2026 09:57:20 +0900 Subject: [PATCH 04/10] Install flatpak-preinstalld.service --- flatpak/meson.build | 13 +++++++++++++ meson_options.txt | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/flatpak/meson.build b/flatpak/meson.build index 981c249..d3a6080 100644 --- a/flatpak/meson.build +++ b/flatpak/meson.build @@ -9,3 +9,16 @@ foreach file : preinstall_files install_dir: sysconfdir / 'flatpak' / 'preinstall.d' ) endforeach + +systemd_system_unit_dir = get_option('systemdsystemunitdir') +if systemd_system_unit_dir != 'no' + if systemd_system_unit_dir == '' + systemd_dep = dependency('systemd') + systemd_system_unit_dir = systemd_dep.get_variable('systemdsystemunitdir', pkgconfig_define: ['rootprefix', prefix]) + endif + + install_data( + 'flatpak-preinstalld.service', + install_dir: systemd_system_unit_dir + ) +endif diff --git a/meson_options.txt b/meson_options.txt index 3ef97b0..1407485 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -27,3 +27,8 @@ option('geoclue', type: 'boolean', value: true, description: 'Install configuration files for GeoClue') + +option('systemdsystemunitdir', + type: 'string', + value: '', + description: 'Custom directory for systemd system units, or \'no\' to disable') From b4e48fbd92bdb5a58a6c5238be83e75874e57f18 Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Thu, 13 Aug 2026 10:24:46 +0900 Subject: [PATCH 05/10] Install to /usr/share instead of /etc Make sure to match the path with elementary-atomic-os: https://github.com/jumpyvi/elementary-atomic-os/blob/00571ee5e2cc0c9f4ec53f7c810074e04b5e6061/mkosi.extra/usr/share/flatpak/preinstall.d/appcenter.preinstall --- flatpak/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flatpak/meson.build b/flatpak/meson.build index d3a6080..dea0cd2 100644 --- a/flatpak/meson.build +++ b/flatpak/meson.build @@ -6,7 +6,7 @@ preinstall_files = [ foreach file : preinstall_files install_data( file, - install_dir: sysconfdir / 'flatpak' / 'preinstall.d' + install_dir: datadir / 'flatpak' / 'preinstall.d' ) endforeach From 7e7ed68bd9745dca181f12288107387ec4bf64b6 Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Thu, 13 Aug 2026 11:46:46 +0900 Subject: [PATCH 06/10] skel: Setup system-wide remote Previously this was done in the postinst script of each dummy Debian packages. Since they're all gone, now this needs to be done explicitly. --- meson.build | 1 + skel/meson.build | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/meson.build b/meson.build index 5d3d57f..5662ee7 100644 --- a/meson.build +++ b/meson.build @@ -9,6 +9,7 @@ gnome = import('gnome') prefix = get_option('prefix') datadir = prefix / get_option('datadir') sysconfdir = get_option('sysconfdir') +sharedstatedir = get_option('sharedstatedir') schemadir = datadir / 'glib-2.0' / 'schemas' gnome.post_install(glib_compile_schemas: true) diff --git a/skel/meson.build b/skel/meson.build index e127678..9c346a9 100644 --- a/skel/meson.build +++ b/skel/meson.build @@ -2,6 +2,12 @@ skeldir = sysconfdir / 'skel' # AppCenter Flatpak Remote if get_option('appcenter-flatpak') + # remote for system-wide installation + install_subdir( + 'flatpak', + install_dir: sharedstatedir + ) + # remote for per-user installation install_subdir( 'flatpak', install_dir: skeldir / '.local' / 'share' From 128bd40098c9e2bdd7f4ecb1b25b4b0e529dd42f Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Thu, 13 Aug 2026 12:25:01 +0900 Subject: [PATCH 07/10] Install our patched version of GNOME Flatpak apps --- flatpak/appcenter.preinstall | 12 ++++++++++++ flatpak/flathub.preinstall | 11 ----------- flatpak/meson.build | 1 - 3 files changed, 12 insertions(+), 12 deletions(-) delete mode 100644 flatpak/flathub.preinstall diff --git a/flatpak/appcenter.preinstall b/flatpak/appcenter.preinstall index a0ce8c0..c8e04cc 100644 --- a/flatpak/appcenter.preinstall +++ b/flatpak/appcenter.preinstall @@ -18,3 +18,15 @@ Branch=stable [Flatpak Preinstall io.elementary.videos] Branch=stable + +[Flatpak Preinstall org.gnome.Epiphany] +Branch=stable + +[Flatpak Preinstall org.gnome.Evince] +Branch=stable + +[Flatpak Preinstall org.gnome.FileRoller] +Branch=stable + +[Flatpak Preinstall org.gnome.font-viewer] +Branch=stable diff --git a/flatpak/flathub.preinstall b/flatpak/flathub.preinstall deleted file mode 100644 index 17f9322..0000000 --- a/flatpak/flathub.preinstall +++ /dev/null @@ -1,11 +0,0 @@ -[Flatpak Preinstall org.gnome.Epiphany] -Branch=stable - -[Flatpak Preinstall org.gnome.Evince] -Branch=stable - -[Flatpak Preinstall org.gnome.FileRoller] -Branch=stable - -[Flatpak Preinstall org.gnome.font-viewer] -Branch=stable diff --git a/flatpak/meson.build b/flatpak/meson.build index dea0cd2..8ee5895 100644 --- a/flatpak/meson.build +++ b/flatpak/meson.build @@ -1,6 +1,5 @@ preinstall_files = [ 'appcenter.preinstall', - 'flathub.preinstall', ] foreach file : preinstall_files From 051c1b14c842a2caa357a33c5aa4ebc2b6503db4 Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Thu, 13 Aug 2026 12:25:54 +0900 Subject: [PATCH 08/10] meson: Remove overkilling foreach Since there are no plan to ship apps from other remotes by default, this is just overkilling. --- flatpak/meson.build | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/flatpak/meson.build b/flatpak/meson.build index 8ee5895..998b5ab 100644 --- a/flatpak/meson.build +++ b/flatpak/meson.build @@ -1,13 +1,7 @@ -preinstall_files = [ +install_data( 'appcenter.preinstall', -] - -foreach file : preinstall_files - install_data( - file, - install_dir: datadir / 'flatpak' / 'preinstall.d' - ) -endforeach + install_dir: datadir / 'flatpak' / 'preinstall.d' +) systemd_system_unit_dir = get_option('systemdsystemunitdir') if systemd_system_unit_dir != 'no' From 4c27d73a4cd9d73cc7b7dd205dca9bb0e15e2098 Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Fri, 14 Aug 2026 10:26:54 +0900 Subject: [PATCH 09/10] Actions: Add libsystemd-dev --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index d501da3..750a557 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -25,7 +25,7 @@ jobs: - name: Install Dependencies run: | apt update - apt install -y meson libaccountsservice-dev dbus libpolkit-gobject-1-dev python3 libglib2.0-bin + apt install -y meson libaccountsservice-dev dbus libpolkit-gobject-1-dev python3 libglib2.0-bin libsystemd-dev - name: Build env: DESTDIR: ${{ env.PWD }}/build/out From e9e560bd5b35793d8d84621513bc2f7beba4535e Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Fri, 14 Aug 2026 10:28:42 +0900 Subject: [PATCH 10/10] Actions: Correct package name --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 750a557..b6ea4c1 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -25,7 +25,7 @@ jobs: - name: Install Dependencies run: | apt update - apt install -y meson libaccountsservice-dev dbus libpolkit-gobject-1-dev python3 libglib2.0-bin libsystemd-dev + apt install -y meson libaccountsservice-dev dbus libpolkit-gobject-1-dev python3 libglib2.0-bin systemd-dev - name: Build env: DESTDIR: ${{ env.PWD }}/build/out