diff options
Diffstat (limited to 'etc')
-rwxr-xr-x | etc/guix-install.sh | 175 | ||||
-rw-r--r-- | etc/news.scm | 99 | ||||
-rwxr-xr-x | etc/teams.scm | 8 |
3 files changed, 269 insertions, 13 deletions
diff --git a/etc/guix-install.sh b/etc/guix-install.sh index 982fb0a266..72b456ee7a 100755 --- a/etc/guix-install.sh +++ b/etc/guix-install.sh @@ -12,6 +12,8 @@ # Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> # Copyright © 2022 Prafulla Giri <prafulla.giri@protonmail.com> # Copyright © 2023 Andrew Tropin <andrew@trop.in> +# Copyright © 2020 David A. Redick <david.a.redick@gmail.com> +# Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org> # # This file is part of GNU Guix. # @@ -70,7 +72,9 @@ REQUIRE=( "chmod" "uname" "groupadd" + "groupdel" "useradd" + "userdel" "tail" "tr" "xz" @@ -191,6 +195,7 @@ chk_term() *) ERR="[ FAIL ] " PAS="[ PASS ] " + WAR="[ WARN ] " ;; esac fi @@ -377,6 +382,18 @@ sys_create_store() _msg "${PAS}activated root profile at ${GUIX_PROFILE}" } +sys_delete_store() +{ + _msg "${INF}removing /var/guix" + rm -rf /var/guix + + _msg "${INF}removing /gnu" + rm -rf /gnu + + _msg "${INF}removing ${ROOT_HOME}/.config/guix" + rm -rf ${ROOT_HOME}/.config/guix +} + sys_create_build_user() { # Create the group and user accounts for build users. @@ -411,6 +428,16 @@ sys_create_build_user() done } +sys_delete_build_user() +{ + for i in $(seq -w 1 10); do + userdel -f guixbuilder${i} + done + + _msg "${INF}delete group guixbuild" + groupdel -f guixbuild +} + sys_enable_guix_daemon() { # Run the daemon, and set it to automatically start on boot. @@ -500,11 +527,70 @@ sys_enable_guix_daemon() done } +sys_delete_guix_daemon() +{ # Disabled, stop and remove the various guix daemons. + + local info_path + local local_bin + local var_guix + + _debug "--- [ $FUNCNAME ] ---" + + info_path="/usr/local/share/info" + local_bin="/usr/local/bin" + + + case "$INIT_SYS" in + upstart) + _msg "${INF}stopping guix-daemon" + stop guix-daemon + _msg "${INF}removing guix-daemon" + rm /etc/init/guix-daemon.conf + ;; + + systemd) + _msg "${INF}disabling guix-daemon" + systemctl disable guix-daemon + _msg "${INF}stopping guix-daemon" + systemctl stop guix-daemon + _msg "${INF}removing guix-daemon" + rm -f /etc/systemd/system/guix-daemon.service + + if [ -x /etc/systemd/system/gnu-store.mount ]; then + _msg "${INF}disabling gnu-store.mount" + systemctl disable gnu-store.mount + _msg "${INF}stopping gnu-store.mount" + systemctl stop gnu-store.mount + _msg "${INF}removing gnu-store.mount" + rm -f /etc/systemd/system/gnu-store.mount + fi + systemctl daemon-reload + ;; + + sysv-init) + update-rc.d guix-daemon disable + service guix-daemon stop + rm -rf /etc/init.d/guix-daemon + ;; + NA|*) + _msg "${ERR}unsupported init system; disable, stop and remove the daemon manually:" + echo " ${ROOT_HOME}/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild" + ;; + esac + + + _msg "${INF}removing $local_bin/guix" + rm -f "$local_bin"/guix + + _msg "${INF}removing $info_path/guix*" + rm -f "$info_path"/guix* +} + sys_authorize_build_farms() { # authorize the public key(s) of the build farm(s) local hosts=( - ci.guix.gnu.org bordeaux.guix.gnu.org + ci.guix.gnu.org ) if prompt_yes_no "Permit downloading pre-built package binaries from the \ @@ -557,6 +643,10 @@ GUIX_LOCPATH="$GUIX_PROFILE/lib/locale:${GUIX_LOCPATH:+:}$GUIX_LOCPATH" export GUIX_LOCPATH +# Make Guix modules available +export GUILE_LOAD_PATH="$_GUIX_PROFILE/share/guile/site/3.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH" +export GUILE_LOAD_COMPILED_PATH="$_GUIX_PROFILE/lib/guile/3.0/site-ccache${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH" + EOF } @@ -623,8 +713,29 @@ sys_maybe_setup_selinux() restorecon -R /gnu /var/guix } +sys_delete_init_profile() +{ + _msg "${INF}removing /etc/profile.d/guix.sh" + rm -f /etc/profile.d/guix.sh +} + +sys_delete_user_profiles() +{ + _msg "${INF}removing ${ROOT_HOME}/.guix-profile" + rm -f ${ROOT_HOME}/.guix-profile + rm -rf ${ROOT_HOME}/.cache/guix + + _msg "${INF}removing .guix-profile, .cache/guix and .config/guix of all /home users" + for user in `ls -1 /home`; do + rm -f /home/$user/.guix-profile + rm -rf /home/$user/.cache/guix + rm -rf /home/$user/.config/guix + done +} + welcome() { + local uninstall_flag="$1" local char cat<<"EOF" ░░░ ░░░ @@ -647,10 +758,17 @@ welcome() | |__| | |\ | |__| | | |__| | |_| | |> < \_____|_| \_|\____/ \_____|\__,_|_/_/\_\ -This script installs GNU Guix on your system - https://www.gnu.org/software/guix/ EOF + + if [ '--uninstall' = "$uninstall_flag" ]; then + echo "${WARN}This script will uninstall GNU Guix from your system" + echo "To install, run this script with no parameters." + else + echo "This script installs GNU Guix on your system" + echo "To uninstall, pass in the '--uninstall' parameter." + fi + # Don't use ‘read -p’ here! It won't display when run non-interactively. echo -n "Press return to continue..."$'\r' if ! read -r char; then @@ -665,7 +783,7 @@ EOF fi } -main() +main_install() { local tmp_path welcome @@ -715,4 +833,53 @@ main() _msg "${INF}Please log out and back in to complete the installation." } +main_uninstall() +{ + welcome --uninstall + _msg "Starting uninstall process ($(date))" + + chk_term + chk_require "${REQUIRE[@]}" + # it's ok to leave the gpg key + chk_init_sys + chk_sys_arch + + _msg "${INF}system is ${ARCH_OS}" + + # stop the build, package system. + sys_delete_guix_daemon + # stop people from accessing their profiles. + sys_delete_user_profiles + # kill guix off all the guts of guix + sys_delete_store + # clean up the system + sys_delete_init_profile + sys_delete_build_user + + # these directories are created on the fly during usage. + _msg "${INF}removing /etc/guix" + rm -rf /etc/guix + _msg "${INF}removing /var/log/guix" + rm -rf /var/log/guix + + _msg "${PAS}Guix has successfully been uninstalled!" +} + +main() +{ + # expect no parameters + # or '--uninstall' + if [ 0 -eq $# ]; then + main_install + else + local uninstall_flag="$1" + if [ '--uninstall' = "${uninstall_flag}" ]; then + main_uninstall + else + echo "unsupported parameters: $@" + exit 1 + fi + fi +} + main "$@" diff --git a/etc/news.scm b/etc/news.scm index ab7fa4c0d5..3dbe0e0e67 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -9,7 +9,7 @@ ;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org> ;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> ;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> -;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;; Copyright © 2021–2023 Leo Famulari <leo@famulari.name> ;; Copyright © 2021 Zhu Zihao <all_but_last@163.com> ;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> @@ -20,6 +20,9 @@ ;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com> ;; Copyright © 2024 Oleg Pykhalov <go.wigust@gmail.com> ;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu> +;; Copyright © 2024 Hilton Chain <hako@ultrarare.space> +;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com> +;; Copyright © 2024 Vivien Kraus <vivien@planete-kraus.eu> ;; ;; Copying and distribution of this file, with or without modification, are ;; permitted in any medium without royalty provided the copyright notice and @@ -28,6 +31,100 @@ (channel-news (version 0) + (entry (commit "fdfd7667c66cf9ce746330f39bcd366e124460e1") + (title + (en "@code{nss-certs} is now included in @code{%base-packages}") + (fr "@code{nss-certs} est maintenant inclus dans @code{%base-packages}")) + (body + (en "The @code{nss-certs} package is now included in the +@code{%base-packages}, the default value for the @code{packages} field of the +@code{operating-system} record.") + (fr "Le paquet @code{nss-certs} est maintenant inclus dans +@code{%base-packages}, la valeur par défaut du champ @code{packages} de +l'enregistrement @code{operating-system}."))) + + (entry (commit "b4aed68e960116b2b60f68ea1468d7a526149823") + (title + (en "Linux-libre LTS kernel updated to 6.6") + (de "Linux-libre LTS Kernel wird auf 6.6 aktualisiert")) + (body + (en "The default version of the @code{linux-libre-lts} kernel has been + updated to the 6.6 longterm release series.") + (de "Der standardmäßig verwendete @code{linux-libre-lts}-Kernel basiert + jetzt auf der 6.6-Versionsreihe (Langzeitunterstützung)."))) + + (entry (commit "523f3def65ab061a87f4fc9e6f9008e6a78fafb5") + (title + (en "GNOME updated to version 44 with a more modular desktop service") + (de "GNOME auf Version 44 aktualisiert mit modularem Dienst") + (fr "Mise à jour de GNOME en version 44 avec un service plus modulaire") + (zh "GNOME 44 更新,帶來更加模塊化的桌面服務")) + (body + (en "The @code{gnome-desktop-service-type} now differentiates between +shell, utilities, and extra-packages among other fields to bring more structure +in its configuration. + +With the update to GNOME 44, some shell extensions have been deprecated and +others removed. If any @code{gnome-shell-extension-@dots{}} package causes +an error while running your usual update routine, make sure to remove it from +your profile.") + (de "Der Dienst @code{gnome-desktop-service-type} unterscheidet nun +unter anderem zwischen den Feldern shell, utilities und extra-packages, und +bringt so etwas mehr Struktur in die Konfiguration. + +Mit dem Update zu GNOME 44 wurden einige Erweiterungen als obsolet deklariert +und andere entfernt. Falls ein Paket, dessen Name mit +@code{gnome-shell-extension-} beginnt, zu einem Fehler während Ihrer +Update-Routine führt, entfernen Sie es von Ihrem Profil.") + (fr "Le service @code{gnome-desktop-service-type} sépare +maintenant les champs @code{shell}, @code{utilities} et @code{extra- +packages} (entre autres) pour donner plus de structure à sa +configuration. + +Pendant la mise à jour vers GNOME 44, certaines extensions du shell ont +été dépréciées et d’autres supprimées. Si un paquet nommé +@code{gnome-shell-extension-@dots{}} émet une erreur quand vous +effectuez la mise à jour, vous devriez l’enlever de votre profil.") + (zh "@code{gnome-desktop-service-type} 設置新增 @code{shell}、 +@code{utilities}、@code{extra-packages} 等字段,使得 GNOME 桌面配置更加模塊化。 + +隨着 GNOME 44 更新,一些 GNOME Shell 拓展已被棄用或刪除。更新中若有關於 +@code{gnome-shell-extension-@dots{}} 軟件包的錯誤,請將對應軟件包從 profile 中 +刪除。"))) + + (entry (commit "06d01c610e3bee61e38a177aecda5982d5b338ae") + (title + (en "The GNOME Display Manager uses Wayland by default") + (de "GNOME Display Manager nutzt nun Wayland als Vorgabe") + (fr "GDM utilise Wayland par défaut") + (zh "GNOME 顯示管理器(GDM)服務默認啓用 Wayland 支持")) + (body + (en "The @code{gdm-service-type} is configured to use Wayland instead +of Xorg by default.") + (de "Der Dienst @code{gdm-service-type} verwendet nun Wayland +als Vorgabe anstelle von Xorg.") + (fr "Le service @code{gdm-service-type} est configuré par défaut pour +utiliser Wayland au lieu de Xorg.") + (zh "@code{gdm-service-type} 預設已由 Xorg 改爲 Wayland。"))) + + (entry (commit "498db4de1f09414adf68a3a383f0178434035179") + (title + (en "The udev service also manages hardware configuration files") + (de "Udev verwaltet nun auch Hardwarekonfigurationen") + (fr "Le service udev gère maintenant les configurations de matériel") + (zh "udev 服務現可管理硬件配置文件")) + (body + (en "The @code{udev-service-type} can now be configured and extended +with eudev hardware configuration files (named @dfn{hwdb} by the eudev +project).") + (de "Der Udev-Dienst kann nun mit Hardwaredatenbanken (auch als +@dfn{hwdb} bekannt) konfiguriert und erweitert werden.") + (fr "Le type de service @code{udev-service-type} peut maintenant être +configuré et étendu avec des fichiers de configuration de matériel (appelés +@dfn{hwdb} par le projet eudev).") + (zh "現可使用 eudev 的硬件配置文件(@dfn{hwdb})設置及拓展 +@code{udev-service-type}。"))) + (entry (commit "ff1251de0bc327ec478fc66a562430fbf35aef42") (title (en "Daemon vulnerability allowing store corruption has been fixed") diff --git a/etc/teams.scm b/etc/teams.scm index a01ea27254..0655a069b9 100755 --- a/etc/teams.scm +++ b/etc/teams.scm @@ -596,10 +596,6 @@ GLib/GIO, GTK, GStreamer and Webkit." "me@tobias.gr") core kernel mentors) -(define-member (person "Björn Höfling" - "bjoern.hoefling@bjoernhoefling.de") - java) - (define-member (person "Leo Famulari" "leo@famulari.name") kernel) @@ -664,10 +660,6 @@ GLib/GIO, GTK, GStreamer and Webkit." "zimon.toutoune@gmail.com") julia core mentors) -(define-member (person "Raghav Gururajan" - "rg@raghavgururajan.name") - gnome mentors) - (define-member (person "宋文武" "iyzsong@envs.net") games localization lxqt qt xfce) |