forked from pool/gnome-branding-Aeon
Accepting request 1176548 from devel:microos:aeon
- Wait for network for all aeon-mig-firstboot tasks - Introduce aeon-mig-firstboot to help tuneup home directories after migration - Minor locale bugfixes and cleanup - Rewrite aeon-firstboot to be multi-threaded and install locales (boo#1224328, boo#1213055, boo#1208869, boo#1217466, boo#1223608) OBS-URL: https://build.opensuse.org/request/show/1176548 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gnome-branding-Aeon?expand=0&rev=3
This commit is contained in:
commit
6889527054
190
aeon-firstboot
190
aeon-firstboot
@ -1,60 +1,146 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
(
|
|
||||||
echo "# Waiting for Internet connection"
|
# SPDX-License-Identifier: MIT
|
||||||
|
# SPDX-FileCopyrightText: Copyright 2024 SUSE LLC
|
||||||
|
# SPDX-FileCopyrightText: Copyright 2024 Richard Brown
|
||||||
|
# SPDX-FileCopyrightText: Copyright 2024 Raymond Yip
|
||||||
|
|
||||||
|
installFlatpakRepo(){
|
||||||
|
/usr/bin/flatpak remote-add --user --if-not-exists flathub /usr/share/aeon/flathub.flatpakrepo
|
||||||
|
if [ "$?" != 0 ] ; then
|
||||||
|
zenity --error \
|
||||||
|
--text="Adding Flathub Repo Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
installFlatpakPackage(){
|
||||||
|
/usr/bin/flatpak install --user --noninteractive flathub $1
|
||||||
|
if [ "$?" != 0 ] ; then
|
||||||
|
zenity --error \
|
||||||
|
--text="Installing $1 Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
waitforNet(){
|
||||||
until /usr/bin/curl -s --max-time 5 https://flathub.org > /dev/null; do sleep 1; done
|
until /usr/bin/curl -s --max-time 5 https://flathub.org > /dev/null; do sleep 1; done
|
||||||
echo "10"
|
}
|
||||||
|
|
||||||
echo "# Adding Flathub Repository"
|
defaultOptions() {
|
||||||
/usr/bin/flatpak remote-add --user --if-not-exists flathub /usr/share/aeon/flathub.flatpakrepo
|
pkgs=("org.mozilla.firefox" "org.gnome.Calculator" "org.gnome.TextEditor")
|
||||||
if [ "$?" != 0 ] ; then
|
}
|
||||||
zenity --error \
|
|
||||||
--text="Adding Flathub Repo Failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "20"
|
|
||||||
|
|
||||||
echo "# Installing Firefox"
|
customizeOptions() {
|
||||||
/usr/bin/flatpak install --user --noninteractive flathub org.mozilla.firefox
|
#User has decided to customize their installed flatpaks
|
||||||
if [ "$?" != 0 ] ; then
|
selection=$(zenity --list --width=1000 --height=1025 --title="Choose software to install" \
|
||||||
zenity --error \
|
--text="Select which software you would like to install\nMore software can be found in the <b>Software</b> App" \
|
||||||
--text="Installing Firefox Failed"
|
--checklist --column="" --column="AppName" --column="Application" --column="Description" \
|
||||||
exit 1
|
--hide-column=2 \
|
||||||
fi
|
TRUE org.mozilla.firefox "Mozilla Firefox" "Default Web Browser" \
|
||||||
|
TRUE org.gnome.Calculator "Calculator" "Basic Calculator" \
|
||||||
|
TRUE org.gnome.TextEditor "Text Editor" "Basic Text Editor" \
|
||||||
|
FALSE com.mattjakeman.ExtensionManager "Extension Manager" "Shell Extensions Manager" \
|
||||||
|
FALSE com.github.tchx84.Flatseal "Flatseal" "Application Permissions Manager" \
|
||||||
|
FALSE com.valvesoftware.Steam "Steam" "Steam Games Launcher" \
|
||||||
|
FALSE org.gnome.Loupe "Image Viewer" "Basic Image Viewer" \
|
||||||
|
FALSE org.gnome.gThumb "gThumb" "Advanced Image Viewer" \
|
||||||
|
FALSE io.github.celluloid_player.Celluloid "Celluloid" "Basic Video Player" \
|
||||||
|
FALSE org.videolan.VLC "VLC" "Advanced Video Player" \
|
||||||
|
FALSE org.mozilla.Thunderbird "Thunderbird" "Mail Client" \
|
||||||
|
FALSE org.telegram.desktop "Telegram Desktop" "Telegram Messaging Client" \
|
||||||
|
FALSE org.libreoffice.LibreOffice "LibreOffice" "LibreOffice Office Suite" \
|
||||||
|
FALSE org.gimp.GIMP "GNU Image Manipulation Program" "Image Editor" \
|
||||||
|
FALSE org.gnome.Builder "Builder" "Graphical IDE" \
|
||||||
|
FALSE io.github.dvlv.boxbuddyrs "BoxBuddy" "Distrobox Container Manager" \
|
||||||
|
FALSE org.gnome.Boxes "Boxes" "Virtualisation" \
|
||||||
|
FALSE org.gnome.World.PikaBackup "Pika Backup" "Basic Backup Tool" \
|
||||||
|
FALSE org.gnome.SimpleScan "Document Scanner" "Basic Document Scanner" \
|
||||||
|
)
|
||||||
|
#the above command outputs pipe-delimeted lists of all the flathub app names people chose..eg
|
||||||
|
#org.mozilla.firefox|org.gnome.Calculator|org.gnome.TextEditor|com.github.tchx84.Flatseal|com.valvesoftware.Steam|org.telegram.desktop
|
||||||
|
#So that could be parsed to figure out the number of apps chosen and fed into flatpak —user —noninteractive flathub and allow people to pick what they install on first boot
|
||||||
|
if [[ -z "${selection}" ]]; then
|
||||||
|
#if cancel is pressed, $custom variable is empty so we go back to use the default options
|
||||||
|
defaultOptions
|
||||||
|
else
|
||||||
|
IFS='|' read -a pkgs <<< "$selection"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
echo "40"
|
firstMSG() {
|
||||||
echo "# Installing Calculator"
|
#Insert Welcome message here
|
||||||
/usr/bin/flatpak install --user --noninteractive flathub org.gnome.Calculator
|
zenity --question --icon=distributor-logo-Aeon-symbolic --no-wrap --title 'Welcome to openSUSE Aeon' \
|
||||||
if [ "$?" != 0 ] ; then
|
--text 'Almost done, there is one last step\n\nWe need to download some applications to get you started\n\nYou can add more software later using the <b>Software</b> App' \
|
||||||
zenity --error \
|
--width 300 --height 300 \
|
||||||
--text="Installing Calculator Failed"
|
--ok-label OK \
|
||||||
exit 1
|
--cancel-label Customise
|
||||||
fi
|
option=$?
|
||||||
|
if [ "$option" != 0 ]; then
|
||||||
|
#User wants to customize software
|
||||||
|
customizeOptions
|
||||||
|
else
|
||||||
|
#OK Button selected, running with defaults
|
||||||
|
defaultOptions
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
echo "60"
|
lastMSG() {
|
||||||
echo "# Installing Text Editor"
|
#Insert Welcome message here
|
||||||
/usr/bin/flatpak install --user --noninteractive flathub org.gnome.TextEditor
|
zenity --info --icon=distributor-logo-Aeon-symbolic --no-wrap --title 'Welcome to openSUSE Aeon' \
|
||||||
if [ "$?" != 0 ] ; then
|
--text 'Congratulations!\n\nYour system is ready to be used\n\nWe hope you enjoy using <b>openSUSE Aeon</b>' \
|
||||||
zenity --error \
|
--width 300 --height 300
|
||||||
--text="Installing Text Editor Failed"
|
rm ~/.config/autostart/aeon-firstboot.desktop
|
||||||
exit 1
|
}
|
||||||
fi
|
|
||||||
|
|
||||||
echo "80"
|
detectLocale() {
|
||||||
echo "# Installing Extension Manager"
|
if [[ ! "${LANG}" =~ ^en_ ]]; then
|
||||||
/usr/bin/flatpak install --user --noninteractive flathub com.mattjakeman.ExtensionManager
|
need_locale=${LANG}
|
||||||
if [ "$?" != 0 ] ; then
|
fi
|
||||||
zenity --error \
|
|
||||||
--text="Installing Extension Manager Failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "100"
|
}
|
||||||
echo "# Cleaning up"
|
|
||||||
rm ~/.config/autostart/aeon-firstboot.desktop
|
|
||||||
) |
|
|
||||||
zenity --progress --title="Aeon Firstboot" --percentage=0 --auto-close --no-cancel --width=300
|
|
||||||
|
|
||||||
if [ "$?" != 0 ] ; then
|
show_progress() {
|
||||||
zenity --error \
|
(
|
||||||
--text="Firstboot Configuration Error"
|
sleep 1
|
||||||
fi
|
echo "# Waiting for Internet connection"
|
||||||
|
waitforNet
|
||||||
|
while /usr/bin/pgrep -f '/usr/bin/flatpak|/usr/sbin/transactional-update|/usr/bin/pkexec' >/dev/null; do
|
||||||
|
echo "# Installing Packages"
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
)| zenity --progress --title="Final Setup" --width=300 --pulsate --auto-close --no-cancel
|
||||||
|
}
|
||||||
|
|
||||||
|
install_locale() {
|
||||||
|
pkexec sh -c "/usr/sbin/transactional-update -n run zypper -n aloc ${need_locale} && /usr/sbin/transactional-update -n apply"
|
||||||
|
if [ "$?" != 0 ] ; then
|
||||||
|
zenity --error \
|
||||||
|
--text="Installing Locales Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
for i in "$HOME/Desktop" "$HOME/Downloads" "$HOME/Templates" "$HOME/Public" "$HOME/Documents" "$HOME/Music" "$HOME/Pictures" "$HOME/Videos"
|
||||||
|
do
|
||||||
|
rmdir $i
|
||||||
|
done
|
||||||
|
rm $HOME/.config/user-dirs.dirs
|
||||||
|
rm $HOME/.config/user-dirs.locale
|
||||||
|
xdg-user-dirs-update --force
|
||||||
|
}
|
||||||
|
|
||||||
|
run_tasks() {
|
||||||
|
waitforNet
|
||||||
|
if [[ -n "${need_locale}" ]]; then
|
||||||
|
install_locale &
|
||||||
|
fi
|
||||||
|
installFlatpakRepo
|
||||||
|
for pkg in "${pkgs[@]}"; do
|
||||||
|
installFlatpakPackage $pkg &
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
detectLocale
|
||||||
|
firstMSG
|
||||||
|
run_tasks &
|
||||||
|
show_progress
|
||||||
|
lastMSG
|
||||||
|
60
aeon-mig-firstboot
Normal file
60
aeon-mig-firstboot
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
firstMSG() {
|
||||||
|
#Insert Welcome message here
|
||||||
|
zenity --info --icon=distributor-logo-Aeon-symbolic --no-wrap --title 'Welcome to openSUSE Aeon' \
|
||||||
|
--text 'Almost done, there is one last step\n\nWe need perform some checks to make\nsure your migration has gone smoothly\n\nPlease click <b>OK</b> to Continue' \
|
||||||
|
--width 300 --height 300
|
||||||
|
}
|
||||||
|
|
||||||
|
show_progress() {
|
||||||
|
(
|
||||||
|
sleep 1
|
||||||
|
echo "# Waiting for Internet connection"
|
||||||
|
waitforNet
|
||||||
|
while /usr/bin/pgrep -f '/usr/bin/flatpak|/usr/sbin/transactional-update|/usr/bin/pkexec' >/dev/null; do
|
||||||
|
echo "# Tuning Installation"
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
)| zenity --progress --title="Final Setup" --width=300 --pulsate --auto-close --no-cancel
|
||||||
|
}
|
||||||
|
|
||||||
|
installFlatpakRepo(){
|
||||||
|
waitforNet
|
||||||
|
/usr/bin/flatpak remote-add --user --if-not-exists flathub /usr/share/aeon/flathub.flatpakrepo
|
||||||
|
if [ "$?" != 0 ] ; then
|
||||||
|
zenity --error \
|
||||||
|
--text="Adding Flathub Repo Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_locale() {
|
||||||
|
waitforNet
|
||||||
|
pkexec sh -c "/usr/sbin/transactional-update -n run zypper -n aloc ${LANG} && /usr/sbin/transactional-update -n apply"
|
||||||
|
if [ "$?" != 0 ] ; then
|
||||||
|
zenity --error \
|
||||||
|
--text="Installing Locales Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
lastMSG() {
|
||||||
|
#Insert Welcome message here
|
||||||
|
zenity --info --icon=distributor-logo-Aeon-symbolic --no-wrap --title 'Welcome to openSUSE Aeon' \
|
||||||
|
--text 'Congratulations!\n\nYour system is ready to be used\n\nWe hope you enjoy using <b>openSUSE Aeon</b>' \
|
||||||
|
--width 300 --height 300
|
||||||
|
rm ~/.config/autostart/aeon-mig-firstboot.desktop
|
||||||
|
}
|
||||||
|
|
||||||
|
waitforNet(){
|
||||||
|
until /usr/bin/curl -s --max-time 5 https://flathub.org > /dev/null; do sleep 1; done
|
||||||
|
}
|
||||||
|
|
||||||
|
firstMSG
|
||||||
|
installFlatpakRepo &
|
||||||
|
if [[ ! "${LANG}" =~ ^en_ ]]; then
|
||||||
|
install_locale &
|
||||||
|
fi
|
||||||
|
show_progress
|
||||||
|
lastMSG
|
@ -1,3 +1,25 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 23 20:00:38 UTC 2024 - Richard Brown <rbrown@suse.com>
|
||||||
|
|
||||||
|
- Wait for network for all aeon-mig-firstboot tasks
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 23 16:05:53 UTC 2024 - Richard Brown <rbrown@suse.com>
|
||||||
|
|
||||||
|
- Introduce aeon-mig-firstboot to help tuneup home directories
|
||||||
|
after migration
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 23 15:00:50 UTC 2024 - Richard Brown <rbrown@suse.com>
|
||||||
|
|
||||||
|
- Minor locale bugfixes and cleanup
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 23 12:53:48 UTC 2024 - Richard Brown <rbrown@suse.com>
|
||||||
|
|
||||||
|
- Rewrite aeon-firstboot to be multi-threaded and install locales
|
||||||
|
(boo#1224328, boo#1213055, boo#1208869, boo#1217466, boo#1223608)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Dec 28 14:52:59 UTC 2023 - dopice <0xdopice@protonmail.com>
|
Thu Dec 28 14:52:59 UTC 2023 - dopice <0xdopice@protonmail.com>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package gnome-branding-Aeon
|
# spec file for package gnome-branding-Aeon
|
||||||
#
|
#
|
||||||
# Copyright (c) 2023 SUSE LLC
|
# Copyright (c) 2024 SUSE LLC
|
||||||
# Copyright (c) 2021 SUSE Software Solutions GmbH
|
# Copyright (c) 2021 SUSE Software Solutions GmbH
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
@ -34,6 +34,7 @@ Source8: distrobox-upgrade-all.timer
|
|||||||
Source9: 50-aeon
|
Source9: 50-aeon
|
||||||
Source10: wallpaper-branding-Aeon.xml
|
Source10: wallpaper-branding-Aeon.xml
|
||||||
Source11: 49-aeon.rules
|
Source11: 49-aeon.rules
|
||||||
|
Source12: aeon-mig-firstboot
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
BuildRequires: flatpak
|
BuildRequires: flatpak
|
||||||
BuildRequires: gio-branding-openSUSE
|
BuildRequires: gio-branding-openSUSE
|
||||||
@ -71,6 +72,7 @@ cp -a %{SOURCE8} distrobox-upgrade-all.timer
|
|||||||
cp -a %{SOURCE9} 50-aeon
|
cp -a %{SOURCE9} 50-aeon
|
||||||
cp -a %{SOURCE10} wallpaper-branding-Aeon.xml
|
cp -a %{SOURCE10} wallpaper-branding-Aeon.xml
|
||||||
cp -a %{SOURCE11} 49-aeon.rules
|
cp -a %{SOURCE11} 49-aeon.rules
|
||||||
|
cp -a %{SOURCE12} aeon-mig-firstboot
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -83,6 +85,7 @@ install -d %{buildroot}%{_sysconfdir}/skel/.config/autostart
|
|||||||
install -m0644 aeon-firstboot.desktop %{buildroot}%{_sysconfdir}/skel/.config/autostart/aeon-firstboot.desktop
|
install -m0644 aeon-firstboot.desktop %{buildroot}%{_sysconfdir}/skel/.config/autostart/aeon-firstboot.desktop
|
||||||
install -d %{buildroot}%{_bindir}
|
install -d %{buildroot}%{_bindir}
|
||||||
install -m0755 aeon-firstboot %{buildroot}%{_bindir}/aeon-firstboot
|
install -m0755 aeon-firstboot %{buildroot}%{_bindir}/aeon-firstboot
|
||||||
|
install -m0755 aeon-mig-firstboot %{buildroot}%{_bindir}/aeon-mig-firstboot
|
||||||
install -d %{buildroot}%{_prefix}%{_sysconfdir}/transactional-update.conf.d
|
install -d %{buildroot}%{_prefix}%{_sysconfdir}/transactional-update.conf.d
|
||||||
install -m644 50-desktop.conf %{buildroot}%{_prefix}%{_sysconfdir}/transactional-update.conf.d/50-desktop.conf
|
install -m644 50-desktop.conf %{buildroot}%{_prefix}%{_sysconfdir}/transactional-update.conf.d/50-desktop.conf
|
||||||
install -d %{buildroot}%{_datadir}/wallpapers
|
install -d %{buildroot}%{_datadir}/wallpapers
|
||||||
@ -120,6 +123,7 @@ install -m0444 49-aeon.rules %{buildroot}%{_datadir}/polkit-1/rules.d/49-aeon.ru
|
|||||||
%dir %{_sysconfdir}/skel/.config/autostart
|
%dir %{_sysconfdir}/skel/.config/autostart
|
||||||
%config(noreplace) %{_sysconfdir}/skel/.config/autostart/aeon-firstboot.desktop
|
%config(noreplace) %{_sysconfdir}/skel/.config/autostart/aeon-firstboot.desktop
|
||||||
%{_bindir}/aeon-firstboot
|
%{_bindir}/aeon-firstboot
|
||||||
|
%{_bindir}/aeon-mig-firstboot
|
||||||
%dir %{_prefix}%{_sysconfdir}/transactional-update.conf.d
|
%dir %{_prefix}%{_sysconfdir}/transactional-update.conf.d
|
||||||
%{_prefix}%{_sysconfdir}/transactional-update.conf.d/50-desktop.conf
|
%{_prefix}%{_sysconfdir}/transactional-update.conf.d/50-desktop.conf
|
||||||
%dir %{_datadir}/wallpapers
|
%dir %{_datadir}/wallpapers
|
||||||
|
Loading…
x
Reference in New Issue
Block a user