diff --git a/DEBIAN/control b/DEBIAN/control index f7de195..691556c 100644 --- a/DEBIAN/control +++ b/DEBIAN/control @@ -1,10 +1,10 @@ Package: system-installer -Version: 2.4.6 +Version: 2.4.8 Maintainer: Thomas Castleman Homepage: https://github.com/drauger-os-development/system-installer Section: admin Architecture: amd64 Priority: important -Depends: arch-install-scripts, python3 (>=3.6.7-1~18.04), bash, gir1.2-gtk-3.0 (>=3.24.12-1ubuntu1), coreutils (>=8.28-1ubuntu1), apt (>=1.6.11), squashfs-tools (>=1:4.3-6ubuntu0.18.04.1), zenity (>=3.28.1-1), grub2-common (>=2.02-2ubuntu8.13), initramfs-tools (>=0.130ubuntu3.8), systemd (>=237-3ubuntu10.24), locales (>=2.27-3ubuntu1), procps (>=2:3.3.12-3ubuntu1.1), grep (>=3.1-2), keyboard-configuration, util-linux (>=2.34-0.1ubuntu2), python3-parted (>=3.11.2), python3-psutil (>=5.5.0), python3-apt (>=2.0.0), python3-pycurl, python3-gnupg (>=0.4.5), python3-xmltodict (>=0.11.0) +Depends: arch-install-scripts, python3 (>=3.6.7-1~18.04), bash, gir1.2-gtk-3.0 (>=3.24.12-1ubuntu1), coreutils (>=8.28-1ubuntu1), apt (>=1.6.11), squashfs-tools (>=1:4.3-6ubuntu0.18.04.1), zenity (>=3.28.1-1), grub2-common (>=2.02-2ubuntu8.13), initramfs-tools (>=0.130ubuntu3.8), systemd (>=237-3ubuntu10.24), locales (>=2.27-3ubuntu1), procps (>=2:3.3.12-3ubuntu1.1), grep (>=3.1-2), keyboard-configuration, util-linux (>=2.34-0.1ubuntu2), python3-parted (>=3.11.2), python3-psutil (>=5.5.0), python3-apt (>=2.0.0), python3-urllib3 (>=1.26.5-1~exp1), python3-gnupg (>=0.4.5), python3-xmltodict (>=0.11.0) Description: System Installer for Drauger OS System Installer for Drauger OS diff --git a/DEBIAN/postinst b/DEBIAN/postinst new file mode 100755 index 0000000..027f896 --- /dev/null +++ b/DEBIAN/postinst @@ -0,0 +1,26 @@ +#!/bin/bash +# -*- coding: utf-8 -*- +# +# postinst.sh +# +# Copyright 2023 Thomas Castleman +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# +# +if $(groups live | grep -vq "syslog"); then + usermod -aG syslog live +fi diff --git a/DEBIAN/postrm b/DEBIAN/postrm new file mode 100755 index 0000000..77d6812 --- /dev/null +++ b/DEBIAN/postrm @@ -0,0 +1,28 @@ +#!/bin/bash +# -*- coding: utf-8 -*- +# +# postrm.sh +# +# Copyright 2023 Thomas Castleman +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# +# +if [ "$1" = "purge" ]; then + user=$(grep "1000" /etc/passwd | sed 's/:/ /g' | awk '{print $1}') + groups=$(groups $user | sed "s/$user : //" | sed 's/syslog//' | sed 's/ /,/g' | sed 's/,,/,/g') + usermod -G "$groups" "$user" +fi diff --git a/etc/system-installer/settings.json b/etc/system-installer/settings.json index 40bf2b2..6d05996 100644 --- a/etc/system-installer/settings.json +++ b/etc/system-installer/settings.json @@ -3,7 +3,7 @@ "local_repo": "/run/live/medium/repo", "distro": "Drauger OS", "report": { - "recv_keys": "https://download-optimizer.draugeros.org/keys/public_keys.asc", + "recv_keys": "https://download.draugeros.org/keys/public_keys.asc", "upload": "rsync://rsync.draugeros.org/reports-upload" }, "ping servers": [ diff --git a/usr/bin/system-installer.cxx b/usr/bin/system-installer.cxx index 6a54cd7..ef4ba48 100644 --- a/usr/bin/system-installer.cxx +++ b/usr/bin/system-installer.cxx @@ -46,7 +46,7 @@ using namespace std; -str VERSION = "2.4.6"; +str VERSION = "2.4.8"; str R = "\033[0;31m"; str G = "\033[0;32m"; str Y = "\033[1;33m"; diff --git a/usr/share/system-installer/UI/confirm.py b/usr/share/system-installer/UI/confirm.py index 61474a1..a7d27a7 100755 --- a/usr/share/system-installer/UI/confirm.py +++ b/usr/share/system-installer/UI/confirm.py @@ -162,7 +162,7 @@ def __init__(self, settings): self.grid.attach(label31, 4, 6, 1, 1) label32 = Gtk.Label() - label32.set_markup(settings["COMPAT_MODE"]) + label32.set_markup(str(settings["COMPAT_MODE"])) label32.set_justify(Gtk.Justification.CENTER) label32 = self._set_default_margins(label32) self.grid.attach(label32, 5, 6, 1, 1) diff --git a/usr/share/system-installer/UI/main.py b/usr/share/system-installer/UI/main.py index 32fc404..a6552f5 100755 --- a/usr/share/system-installer/UI/main.py +++ b/usr/share/system-installer/UI/main.py @@ -1693,22 +1693,11 @@ def options(self, button): def options_next(self, button): """Set update and extras settings""" - if self.extras.get_active(): - self.data["EXTRAS"] = 1 - else: - self.data["EXTRAS"] = 0 - # if self.updates.get_active(): - # self.data["UPDATES"] = 1 - # else: - self.data["UPDATES"] = 0 - if self.login.get_active(): - self.data["LOGIN"] = 1 - else: - self.data["LOGIN"] = 0 - if self.compat_mode.get_active(): - self.data["COMPAT_MODE"] = 1 - else: - self.data["COMPAT_MODE"] = 0 + self.data["EXTRAS"] = self.extras.get_active() + # self.data["UPDATES"] = self.updates.get_active() + self.data["UPDATES"] = False + self.data["LOGIN"] = self.login.get_active() + self.data["COMPAT_MODE"] = self.compat_mode.get_active() global OPTIONS_COMPLETION OPTIONS_COMPLETION = "COMPLETED" self.main_menu("clicked") diff --git a/usr/share/system-installer/UI/report.py b/usr/share/system-installer/UI/report.py index 77468db..f9608ba 100755 --- a/usr/share/system-installer/UI/report.py +++ b/usr/share/system-installer/UI/report.py @@ -30,7 +30,7 @@ import json import gnupg import gi -import curl +import urllib3 # Configuration required to use some of these libs gi.require_version('Gtk', '3.0') @@ -313,18 +313,18 @@ def send_report(self, widget): self.show_all() try: - copyfile(self.path, "/mnt/var/mail/installation_report.txt") + copyfile(self.path, "/mnt/var/log/installation_report.txt") except: pass try: # Get keys - cURL = curl.Curl() - with open("../../../etc/system-installer/settings.json", + http = urllib3.PoolManager() + with open("/etc/system-installer/settings.json", "r") as config: URL = json.load(config)["report"] - cURL.set_url(URL["recv_keys"]) - key = cURL.get().decode() + data = http.request("GET", URL["recv_keys"]).data + key = data.decode() # Import keys result = gpg.import_keys(key) # Encrypt file using newly imported keys @@ -419,7 +419,7 @@ def generate_message(self): """write installation report to disk""" report_code = time.time() output = {} - self.path = "/var/mail/installation_report-%s.dosir" % (report_code) + self.path = "/var/log/installation_report-%s.dosir" % (report_code) output['Installation Report Code'] = report_code try: output['system-installer Version'] = check_output(["system-installer", "-v"]).decode() @@ -445,7 +445,7 @@ def generate_message(self): if self.log.get_active(): try: with open("/tmp/system-installer.log", "r") as log: - output['INSTALLATION LOG'] = log.read() + output['INSTALLATION LOG'] = log.read().split("\n") except FileNotFoundError: output['INSTALLATION LOG'] = 'Log does not exist.' else: @@ -467,7 +467,7 @@ def generate_message(self): with open(self.path, "w+") as message: json.dump(output, message, indent=1) except PermissionError: - with open(home + "/installation_report.txt", "w+") as message: + with open(getenv("HOME") + "/installation_report.txt", "w+") as message: json.dump(output, message, indent=1) def message_accept(self, widget):