From 87679d1c76b77129f153d14a641eed496881e46b Mon Sep 17 00:00:00 2001 From: David McKinney Date: Fri, 9 Oct 2020 09:02:46 -0400 Subject: [PATCH] Made changes to support the new Citadel installer UI and backend --- .../citadel-config/citadel-config.bb | 23 +++- .../files/citadel-installer-ui.desktop | 8 ++ .../files/citadel-installer.desktop | 6 + .../files/citadel-installer.json | 9 ++ .../files/citadel-installer.session | 6 + .../systemd/citadel-installer-backend.service | 13 +++ .../installer-session-switcher.service | 17 +++ .../citadel-tools/citadel-tools_0.1.0.bb | 106 +++++++++++++----- 8 files changed, 154 insertions(+), 34 deletions(-) create mode 100644 meta-citadel/recipes-citadel/citadel-config/files/citadel-installer-ui.desktop create mode 100644 meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.desktop create mode 100644 meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.json create mode 100644 meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.session create mode 100644 meta-citadel/recipes-citadel/citadel-config/files/systemd/citadel-installer-backend.service create mode 100644 meta-citadel/recipes-citadel/citadel-config/files/systemd/installer-session-switcher.service diff --git a/meta-citadel/recipes-citadel/citadel-config/citadel-config.bb b/meta-citadel/recipes-citadel/citadel-config/citadel-config.bb index 65bb572..79657b0 100644 --- a/meta-citadel/recipes-citadel/citadel-config/citadel-config.bb +++ b/meta-citadel/recipes-citadel/citadel-config/citadel-config.bb @@ -39,7 +39,6 @@ SRC_URI = "\ file://fstab \ file://sudo-citadel \ file://citadel-ifconfig.sh \ - file://citadel-setpassword.sh \ file://00-storage-tmpfiles.conf \ file://NetworkManager.conf \ file://share/dot.bashrc \ @@ -47,11 +46,16 @@ SRC_URI = "\ file://share/dot.vimrc \ file://polkit/citadel.rules \ file://iptables-flush.sh \ + file://citadel-installer.session \ + file://citadel-installer.json \ + file://citadel-installer.desktop \ + file://citadel-installer-ui.desktop \ file://systemd/zram-swap.service \ file://systemd/iptables.service \ file://systemd/sway-session-switcher.service \ file://systemd/x11-session-switcher.service \ - file://systemd/citadel-setpassword.service \ + file://systemd/citadel-installer-backend.service \ + file://systemd/installer-session-switcher.service \ file://skel/profile \ file://skel/bashrc \ file://skel/vimrc \ @@ -73,7 +77,7 @@ RDEPENDS_${PN} = "bash wireless-regdb-static" inherit allarch systemd useradd -SYSTEMD_SERVICE_${PN} = "zram-swap.service watch-run-user.path iptables.service sway-session-switcher.service x11-session-switcher.service citadel-setpassword.service" +SYSTEMD_SERVICE_${PN} = "zram-swap.service watch-run-user.path iptables.service sway-session-switcher.service x11-session-switcher.service citadel-installer-backend.service installer-session-switcher.service" do_install() { install -m 0755 -d ${D}/storage @@ -93,6 +97,10 @@ do_install() { install -m 0700 -d ${D}${localstatedir}/lib/NetworkManager install -m 0700 -d ${D}${localstatedir}/lib/NetworkManager/system-connections install -m 0755 -d ${D}${datadir}/citadel + install -m 0755 -d ${D}${datadir}/gnome-session/sessions + install -m 0755 -d ${D}${datadir}/gnome-shell/modes + install -m 0755 -d ${D}${datadir}/applications + install -m 0755 -d ${D}${datadir}/wayland-sessions install -m 0644 ${WORKDIR}/locale.conf ${D}${sysconfdir}/locale.conf install -m 0644 ${WORKDIR}/environment.sh ${D}${sysconfdir}/profile.d/environment.sh @@ -107,7 +115,8 @@ do_install() { install -m 644 ${WORKDIR}/systemd/sway-session-switcher.service ${D}${systemd_system_unitdir} install -m 644 ${WORKDIR}/systemd/x11-session-switcher.service ${D}${systemd_system_unitdir} - install -m 644 ${WORKDIR}/systemd/citadel-setpassword.service ${D}${systemd_system_unitdir} + install -m 644 ${WORKDIR}/systemd/citadel-installer-backend.service ${D}${systemd_system_unitdir} + install -m 644 ${WORKDIR}/systemd/installer-session-switcher.service ${D}${systemd_system_unitdir} install -m 644 ${WORKDIR}/systemd/watch-run-user.path ${D}${systemd_system_unitdir} install -m 644 ${WORKDIR}/systemd/watch-run-user.service ${D}${systemd_system_unitdir} @@ -123,11 +132,15 @@ do_install() { install -m 0644 ${WORKDIR}/udev/citadel-network.rules ${D}${sysconfdir}/udev/rules.d/ install -m 0755 ${WORKDIR}/citadel-ifconfig.sh ${D}${libexecdir} - install -m 0754 ${WORKDIR}/citadel-setpassword.sh ${D}${libexecdir} install -m 0644 ${WORKDIR}/udev/pci-pm.rules ${D}${sysconfdir}/udev/rules.d/ install -m 0644 ${WORKDIR}/udev/scsi-alpm.rules ${D}${sysconfdir}/udev/rules.d/ + install -m 0644 ${WORKDIR}/citadel-installer.session ${D}${datadir}/gnome-session/sessions/ + install -m 0644 ${WORKDIR}/citadel-installer.json ${D}${datadir}/gnome-shell/modes/ + install -m 0644 ${WORKDIR}/citadel-installer-ui.desktop ${D}${datadir}/applications/ + install -m 0644 ${WORKDIR}/citadel-installer.desktop ${D}${datadir}/wayland-sessions/ + install -m 0644 ${WORKDIR}/iptables/iptables.rules ${D}${datadir}/iptables/ install -m 0644 ${WORKDIR}/iptables/empty-filter.rules ${D}${datadir}/iptables/ install -m 0644 ${WORKDIR}/iptables-flush.sh ${D}${datadir}/iptables/ diff --git a/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer-ui.desktop b/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer-ui.desktop new file mode 100644 index 0000000..c635492 --- /dev/null +++ b/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer-ui.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Citadel Installer +Comment=This session logs you into the Citadel Installer +Exec=/usr/libexec/citadel-installer-ui +TryExec=/usr/libexec/citadel-installer-ui +Icon= +Type=Application + diff --git a/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.desktop b/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.desktop new file mode 100644 index 0000000..cc80634 --- /dev/null +++ b/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Application +Name=Citadel Installer sessions +Comment=Session for the Citadel Installer +Exec=gnome-session --session=citadel-installer diff --git a/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.json b/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.json new file mode 100644 index 0000000..96279bd --- /dev/null +++ b/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.json @@ -0,0 +1,9 @@ +{ + "hasWindows": true, + "components": ["networkAgent"], + "panel": { "left": [], + "center": [], + "right": ["a11yGreeter", "keyboard", "aggregateMenu"] + } +} + diff --git a/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.session b/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.session new file mode 100644 index 0000000..25b5f14 --- /dev/null +++ b/meta-citadel/recipes-citadel/citadel-config/files/citadel-installer.session @@ -0,0 +1,6 @@ +# /usr/share/gnome-session/sessions/citadel-installer.session +[GNOME Session] +Name=Citadel Installer +RequiredComponents=citadel-installer-ui;org.gnome.SettingsDaemon.XSettings; + + diff --git a/meta-citadel/recipes-citadel/citadel-config/files/systemd/citadel-installer-backend.service b/meta-citadel/recipes-citadel/citadel-config/files/systemd/citadel-installer-backend.service new file mode 100644 index 0000000..8c9586a --- /dev/null +++ b/meta-citadel/recipes-citadel/citadel-config/files/systemd/citadel-installer-backend.service @@ -0,0 +1,13 @@ +[Unit] +Description=Citadel Installer Backend + +ConditionKernelCommandLine=|citadel.install +ConditionKernelCommandLine=|citadel.live + +[Service] + +ExecStart=/usr/libexec/citadel-install-backend + +[Install] +WantedBy=graphical.target + diff --git a/meta-citadel/recipes-citadel/citadel-config/files/systemd/installer-session-switcher.service b/meta-citadel/recipes-citadel/citadel-config/files/systemd/installer-session-switcher.service new file mode 100644 index 0000000..ed4f2b2 --- /dev/null +++ b/meta-citadel/recipes-citadel/citadel-config/files/systemd/installer-session-switcher.service @@ -0,0 +1,17 @@ +[Unit] +Description=Citadel Installer Session Switcher +After=accounts-daemon.service +Wants=accounts-daemon.service + +ConditionKernelCommandLine=|citadel.installer +ConditionKernelCommandLine=|citadel.live + +[Service] +Type=oneshot +RemainAfterExit=no + +ExecStart=/usr/bin/busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User SetXSession s "citadel-installer" + +[Install] +WantedBy=graphical.target + diff --git a/meta-citadel/recipes-core/citadel-tools/citadel-tools_0.1.0.bb b/meta-citadel/recipes-core/citadel-tools/citadel-tools_0.1.0.bb index a59eaaf..6606786 100644 --- a/meta-citadel/recipes-core/citadel-tools/citadel-tools_0.1.0.bb +++ b/meta-citadel/recipes-core/citadel-tools/citadel-tools_0.1.0.bb @@ -7,7 +7,7 @@ inherit cargo systemd # # Update this when changes are pushed to github # -SRCREV = "695dc9da2115f5f3f731b711b4b127b45d7a137f" +SRCREV = "ac46b45f05fb2a6f0ff3a233152b8840b6e22469" GIT_URI = "git://github.com/brl/citadel-tools.git;protocol=https" @@ -23,28 +23,37 @@ SRC_URI += " \ crate://crates.io/addr2line/0.12.1 \ crate://crates.io/adler32/1.1.0 \ crate://crates.io/ansi_term/0.11.0 \ +crate://crates.io/anyhow/1.0.33 \ crate://crates.io/arc-swap/0.4.7 \ crate://crates.io/array-macro/1.0.3 \ -crate://crates.io/atk-sys/0.9.1 \ -crate://crates.io/atk/0.8.0 \ +crate://crates.io/atk-sys/0.10.0 \ +crate://crates.io/atk/0.9.0 \ crate://crates.io/atty/0.2.14 \ crate://crates.io/autocfg/1.0.0 \ crate://crates.io/backtrace/0.3.49 \ crate://crates.io/bincode/1.2.1 \ crate://crates.io/bitflags/1.2.1 \ +crate://crates.io/block-buffer/0.9.0 \ +crate://crates.io/block-cipher/0.7.1 \ +crate://crates.io/block-padding/0.2.0 \ +crate://crates.io/blowfish/0.5.0 \ crate://crates.io/byteorder/1.3.4 \ -crate://crates.io/cairo-rs/0.8.1 \ -crate://crates.io/cairo-sys-rs/0.9.2 \ +crate://crates.io/cairo-rs/0.9.1 \ +crate://crates.io/cairo-sys-rs/0.10.0 \ crate://crates.io/cc/1.0.54 \ crate://crates.io/cfg-if/0.1.10 \ crate://crates.io/chrono/0.4.11 \ crate://crates.io/clap/2.33.1 \ +crate://crates.io/cpuid-bool/0.1.2 \ crate://crates.io/crc32fast/1.2.0 \ crate://crates.io/crossbeam-channel/0.3.9 \ crate://crates.io/crossbeam-utils/0.6.6 \ +crate://crates.io/crypto-mac/0.8.0 \ crate://crates.io/cursive/0.11.0 \ crate://crates.io/dbus/0.6.5 \ crate://crates.io/dbus/0.8.4 \ +crate://crates.io/digest/0.9.0 \ +crate://crates.io/either/1.6.1 \ crate://crates.io/enum-map-derive/0.4.3 \ crate://crates.io/enum-map-internals/0.1.3 \ crate://crates.io/enum-map/0.5.0 \ @@ -53,36 +62,46 @@ crate://crates.io/enumset_derive/0.3.2 \ crate://crates.io/failure/0.1.8 \ crate://crates.io/failure_derive/0.1.8 \ crate://crates.io/filetime/0.2.10 \ -crate://crates.io/futures-channel/0.3.5 \ -crate://crates.io/futures-core/0.3.5 \ -crate://crates.io/futures-executor/0.3.5 \ -crate://crates.io/futures-io/0.3.5 \ -crate://crates.io/futures-macro/0.3.5 \ -crate://crates.io/futures-task/0.3.5 \ -crate://crates.io/futures-util/0.3.5 \ -crate://crates.io/fuzzy-matcher/0.3.4 \ -crate://crates.io/gdk-pixbuf-sys/0.9.1 \ -crate://crates.io/gdk-pixbuf/0.8.0 \ -crate://crates.io/gdk-sys/0.9.1 \ -crate://crates.io/gdk/0.12.1 \ +crate://crates.io/futures/0.3.6 \ +crate://crates.io/futures-channel/0.3.6 \ +crate://crates.io/futures-core/0.3.6 \ +crate://crates.io/futures-executor/0.3.6 \ +crate://crates.io/futures-io/0.3.6 \ +crate://crates.io/futures-macro/0.3.6 \ +crate://crates.io/futures-sink/0.3.6 \ +crate://crates.io/futures-task/0.3.6 \ +crate://crates.io/futures-util/0.3.6 \ +crate://crates.io/fuzzy-matcher/0.3.7 \ +crate://crates.io/generic-array/0.14.4 \ +crate://crates.io/getrandom/0.1.15 \ +crate://crates.io/gdk-pixbuf-sys/0.10.0 \ +crate://crates.io/gdk-pixbuf/0.9.0 \ +crate://crates.io/gdk-sys/0.10.0 \ +crate://crates.io/gdk/0.13.2 \ crate://crates.io/gimli/0.21.0 \ -crate://crates.io/gio-sys/0.9.1 \ -crate://crates.io/gio/0.8.1 \ -crate://crates.io/glib-sys/0.9.1 \ -crate://crates.io/glib/0.9.3 \ -crate://crates.io/gobject-sys/0.9.1 \ -crate://crates.io/gtk-sys/0.9.2 \ -crate://crates.io/gtk/0.8.1 \ +crate://crates.io/gio-sys/0.10.1 \ +crate://crates.io/gio/0.9.1 \ +crate://crates.io/glib-sys/0.10.1 \ +crate://crates.io/glib/0.10.2 \ +crate://crates.io/glib-macros/0.10.1 \ +crate://crates.io/gobject-sys/0.10.0 \ +crate://crates.io/gtk-sys/0.10.0 \ +crate://crates.io/gtk/0.9.2 \ crate://crates.io/hermit-abi/0.1.14 \ +crate://crates.io/heck/0.3.1 \ crate://crates.io/hex/0.4.2 \ +crate://crates.io/hmac/0.8.1 \ crate://crates.io/inotify-sys/0.1.3 \ crate://crates.io/inotify/0.8.3 \ +crate://crates.io/itertools/0.9.0 \ crate://crates.io/lazy_static/1.4.0 \ crate://crates.io/libc/0.2.71 \ crate://crates.io/libdbus-sys/0.2.1 \ crate://crates.io/libflate/0.1.27 \ crate://crates.io/libsodium-sys/0.2.5 \ crate://crates.io/log/0.4.8 \ +crate://crates.io/md-5/0.9.1 \ +crate://crates.io/memchr/2.3.3 \ crate://crates.io/miniz_oxide/0.3.7 \ crate://crates.io/nix/0.17.0 \ crate://crates.io/num-complex/0.2.4 \ @@ -94,19 +113,30 @@ crate://crates.io/num/0.2.1 \ crate://crates.io/numtoa/0.1.0 \ crate://crates.io/object/0.20.0 \ crate://crates.io/once_cell/1.4.0 \ +crate://crates.io/opaque-debug/0.2.3 \ +crate://crates.io/opaque-debug/0.3.0 \ crate://crates.io/owning_ref/0.4.1 \ -crate://crates.io/pango-sys/0.9.1 \ -crate://crates.io/pango/0.8.0 \ +crate://crates.io/pango-sys/0.10.0 \ +crate://crates.io/pango/0.9.1 \ crate://crates.io/pin-project-internal/0.4.22 \ crate://crates.io/pin-project/0.4.22 \ crate://crates.io/pin-utils/0.1.0 \ crate://crates.io/pkg-config/0.3.17 \ +crate://crates.io/ppv-lite86/0.2.9 \ +crate://crates.io/proc-macro-crate/0.1.5 \ +crate://crates.io/proc-macro-error/1.0.4 \ +crate://crates.io/proc-macro-error-attr/1.0.4 \ crate://crates.io/proc-macro-hack/0.5.16 \ crate://crates.io/proc-macro-nested/0.1.6 \ crate://crates.io/proc-macro2/0.4.30 \ crate://crates.io/proc-macro2/1.0.18 \ +crate://crates.io/pwhash/0.3.1 \ crate://crates.io/quote/0.6.13 \ crate://crates.io/quote/1.0.7 \ +crate://crates.io/rand/0.7.3 \ +crate://crates.io/rand_chacha/0.2.2 \ +crate://crates.io/rand_core/0.5.1 \ +crate://crates.io/rand_hc/0.2.0 \ crate://crates.io/redox_syscall/0.1.56 \ crate://crates.io/redox_termios/0.1.1 \ crate://crates.io/rle-decode-fast/1.0.1 \ @@ -115,35 +145,47 @@ crate://crates.io/rustc-demangle/0.1.16 \ crate://crates.io/same-file/1.0.6 \ crate://crates.io/serde/1.0.112 \ crate://crates.io/serde_derive/1.0.112 \ +crate://crates.io/sha-1/0.9.1 \ +crate://crates.io/sha2/0.9.1 \ crate://crates.io/signal-hook-registry/1.2.0 \ crate://crates.io/signal-hook/0.1.16 \ crate://crates.io/slab/0.4.2 \ crate://crates.io/sodiumoxide/0.2.5 \ crate://crates.io/stable_deref_trait/1.1.1 \ crate://crates.io/strsim/0.8.0 \ +crate://crates.io/strum/0.18.0 \ +crate://crates.io/strum_macros/0.18.0 \ +crate://crates.io/subtle/2.3.0 \ crate://crates.io/syn/0.15.44 \ crate://crates.io/syn/1.0.31 \ crate://crates.io/synstructure/0.12.4 \ +crate://crates.io/system-deps/1.3.2 \ crate://crates.io/take_mut/0.2.2 \ crate://crates.io/tar/0.4.29 \ crate://crates.io/termion/1.5.5 \ crate://crates.io/textwrap/0.11.0 \ crate://crates.io/thread_local/1.0.1 \ +crate://crates.io/thiserror/1.0.21 \ +crate://crates.io/thiserror-impl/1.0.21 \ crate://crates.io/time/0.1.43 \ crate://crates.io/toml/0.4.10 \ crate://crates.io/toml/0.5.6 \ +crate://crates.io/typenum/1.12.0 \ crate://crates.io/unicode-segmentation/1.6.0 \ crate://crates.io/unicode-width/0.1.7 \ crate://crates.io/unicode-xid/0.1.0 \ crate://crates.io/unicode-xid/0.2.0 \ crate://crates.io/vcpkg/0.2.10 \ crate://crates.io/vec_map/0.8.2 \ +crate://crates.io/version-compare/0.0.10 \ +crate://crates.io/version_check/0.9.2 \ crate://crates.io/void/1.0.2 \ crate://crates.io/walkdir/2.3.1 \ +crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ crate://crates.io/winapi-util/0.1.5 \ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \ -crate://crates.io/winapi/0.3.8 \ +crate://crates.io/winapi/0.3.9 \ crate://crates.io/xattr/0.2.2 \ crate://crates.io/xi-unicode/0.1.0 \ " @@ -162,9 +204,11 @@ FILES_${PN} = "\ ${libexecdir}/citadel-boot \ ${libexecdir}/citadel-run \ ${libexecdir}/citadel-install \ + ${libexecdir}/citadel-install-backend \ ${libexecdir}/citadel-desktop-sync \ - ${libexecdir}/citadel-realmsd\ - ${libexecdir}/citadel-realms-ui\ + ${libexecdir}/citadel-realmsd \ + ${libexecdir}/citadel-realms-ui \ + ${libexecdir}/citadel-installer-ui \ ${bindir}/citadel-image \ ${bindir}/citadel-realmfs \ ${bindir}/citadel-update \ @@ -196,6 +240,9 @@ do_install() { # citadel-realms-ui install -m 755 ${TARGET_BIN}/citadel-realms-ui ${D}${libexecdir} + # citadel-installer-ui + install -m 755 ${TARGET_BIN}/citadel-installer-ui ${D}${libexecdir} + install -m 644 ${B}/data/com.subgraph.installer.Manager.conf ${D}${sysconfdir}/dbus-1/system.d # /usr/libexec/citadel-tool install -m 755 ${TARGET_BIN}/citadel-tool ${D}${libexecdir} @@ -205,6 +252,7 @@ do_install() { ln ${D}${libexecdir}/citadel-tool ${D}${libexecdir}/citadel-boot ln ${D}${libexecdir}/citadel-tool ${D}${libexecdir}/citadel-install + ln ${D}${libexecdir}/citadel-tool ${D}${libexecdir}/citadel-install-backend ln ${D}${libexecdir}/citadel-tool ${D}${libexecdir}/citadel-desktop-sync ln ${D}${libexecdir}/citadel-tool ${D}${libexecdir}/citadel-run ln ${D}${libexecdir}/citadel-tool ${D}${bindir}/citadel-image