Date: Sunday, July 24, 2022 @ 14:54:50 Author: archange Revision: 1255972
archrelease: copy trunk to community-x86_64 Added: cinnamon/repos/community-x86_64/0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch (from rev 1255971, cinnamon/trunk/0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch) cinnamon/repos/community-x86_64/PKGBUILD (from rev 1255971, cinnamon/trunk/PKGBUILD) cinnamon/repos/community-x86_64/default-theme.patch (from rev 1255971, cinnamon/trunk/default-theme.patch) cinnamon/repos/community-x86_64/set_wheel.diff (from rev 1255971, cinnamon/trunk/set_wheel.diff) Deleted: cinnamon/repos/community-x86_64/0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch cinnamon/repos/community-x86_64/PKGBUILD cinnamon/repos/community-x86_64/default-theme.patch cinnamon/repos/community-x86_64/set_wheel.diff -----------------------------------------------------------------+ 0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch | 76 ++--- PKGBUILD | 150 +++++----- default-theme.patch | 50 +-- set_wheel.diff | 110 +++---- 4 files changed, 193 insertions(+), 193 deletions(-) Deleted: 0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch =================================================================== --- 0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch 2022-07-24 14:54:38 UTC (rev 1255971) +++ 0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch 2022-07-24 14:54:50 UTC (rev 1255972) @@ -1,38 +0,0 @@ -From ac4d2fc9fafb38ebb02615a41b23cceca304e73a Mon Sep 17 00:00:00 2001 -From: Eli Schwartz <eschwart...@gmail.com> -Date: Tue, 20 Mar 2018 14:11:02 -0400 -Subject: [PATCH] cinnamon-settings: don't rely on the presence of - cinnamon-control-center - -The existence of the cinnamon-control-center binary does not even tell -us what control center libraries are available. So instead, do the same -thing we did for cinnamon-settings modules, and check if the library -exists. ---- - files/usr/bin/cinnamon-settings | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/files/usr/bin/cinnamon-settings b/files/usr/bin/cinnamon-settings -index 9fbdbecd2..98ca454a5 100755 ---- a/files/usr/bin/cinnamon-settings -+++ b/files/usr/bin/cinnamon-settings -@@ -58,6 +58,7 @@ Available types of sort, and corresponding numbers: - import getopt - import os - import sys -+import sysconfig - - def usage(): - print("""Usage: -@@ -119,7 +120,7 @@ if len(sys.argv) > 1: - os.execvp("/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", (" ",) + tuple(sys.argv[1:])) - elif os.path.exists("/usr/share/cinnamon/cinnamon-settings/modules/cs_%s.py" % module): - os.execvp("/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", (" ",) + tuple(sys.argv[1:])) -- elif os.path.exists("/usr/bin/cinnamon-control-center"): -+ elif os.path.exists(os.path.join(sysconfig.get_config_var("LIBDIR"), "cinnamon-control-center-1/panels/lib%s.so" % module)): - os.execvp("/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", (" ",) + tuple(sys.argv[1:])) - elif os.path.exists("/usr/bin/gnome-control-center"): - print ("Unknown module %s, calling gnome-control-center" % module) --- -2.22.0 - Copied: cinnamon/repos/community-x86_64/0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch (from rev 1255971, cinnamon/trunk/0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch) =================================================================== --- 0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch (rev 0) +++ 0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch 2022-07-24 14:54:50 UTC (rev 1255972) @@ -0,0 +1,38 @@ +From ac4d2fc9fafb38ebb02615a41b23cceca304e73a Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwart...@gmail.com> +Date: Tue, 20 Mar 2018 14:11:02 -0400 +Subject: [PATCH] cinnamon-settings: don't rely on the presence of + cinnamon-control-center + +The existence of the cinnamon-control-center binary does not even tell +us what control center libraries are available. So instead, do the same +thing we did for cinnamon-settings modules, and check if the library +exists. +--- + files/usr/bin/cinnamon-settings | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/files/usr/bin/cinnamon-settings b/files/usr/bin/cinnamon-settings +index 9fbdbecd2..98ca454a5 100755 +--- a/files/usr/bin/cinnamon-settings ++++ b/files/usr/bin/cinnamon-settings +@@ -58,6 +58,7 @@ Available types of sort, and corresponding numbers: + import getopt + import os + import sys ++import sysconfig + + def usage(): + print("""Usage: +@@ -119,7 +120,7 @@ if len(sys.argv) > 1: + os.execvp("/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", (" ",) + tuple(sys.argv[1:])) + elif os.path.exists("/usr/share/cinnamon/cinnamon-settings/modules/cs_%s.py" % module): + os.execvp("/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", (" ",) + tuple(sys.argv[1:])) +- elif os.path.exists("/usr/bin/cinnamon-control-center"): ++ elif os.path.exists(os.path.join(sysconfig.get_config_var("LIBDIR"), "cinnamon-control-center-1/panels/lib%s.so" % module)): + os.execvp("/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", (" ",) + tuple(sys.argv[1:])) + elif os.path.exists("/usr/bin/gnome-control-center"): + print ("Unknown module %s, calling gnome-control-center" % module) +-- +2.22.0 + Deleted: PKGBUILD =================================================================== --- PKGBUILD 2022-07-24 14:54:38 UTC (rev 1255971) +++ PKGBUILD 2022-07-24 14:54:50 UTC (rev 1255972) @@ -1,75 +0,0 @@ -# Maintainer: Bruno Pagani <archa...@archlinux.org> -# Contributor: Eli Schwartz <eschwa...@archlinux.org> -# Contributor: Alexandre Filgueira <alexfilgue...@cinnarch.com> -# Contributor: M0Rf30 -# Contributor: unifiedlinux -# Contributor: CReimer - -pkgname=cinnamon -pkgver=5.4.6 -pkgrel=2 -pkgdesc="Linux desktop which provides advanced innovative features and a traditional user experience" -arch=(x86_64) -url="https://github.com/linuxmint/cinnamon" -license=(GPL2) -depends=(accountsservice caribou cinnamon-control-center cinnamon-menus cinnamon-screensaver - cinnamon-session cinnamon-settings-daemon cjs gnome-backgrounds gsound - gnome-themes-extra gstreamer libcroco libgnomekbd libkeybinder3 librsvg muffin - network-manager-applet nemo polkit-gnome python-cairo python-dbus - python-gobject python-pam python-pexpect python-pillow python-pyinotify - python-pytz python-tinycss2 python-xapp python-requests timezonemap xapps) -optdepends=('blueman: Bluetooth support' - 'cinnamon-translations: i18n' - 'gnome-panel: fallback mode' - 'metacity: fallback mode' - 'system-config-printer: printer settings' - 'wget: cover download support in audio applet') -makedepends=(meson samurai gobject-introspection intltool) -options=('!emptydirs') -source=(${url}/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz - 0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch - set_wheel.diff - default-theme.patch) -sha512sums=('fda48016e8cebff7c3d8c0818a7a819a46664b0a28c87abf32891fdce05af8a9c4c159ee4c252e07fabd20b89f34e87e0dde62dc6e19a1405a517838f187071e' - '77c2229d350bb1445375d206af769f1dde9329ce3575e40e9c1d5fea3ec0f49c0a7ef36d78caf895d9224147947bd102bab924b5579dc8dc5f8d3269e0c76374' - 'fd7e117054996ed1c3dfd0f968c2bf98ca4fcee9a100221f8839a232147745ec0140e1f68eeffba58a3c44f66f26e05d433648a7a28858ec669524f7266ba04c' - 'ee7dedd59ea370cf81d75def49060f9a29b22e7b025ca7d5db87a0102d50f138c79aa562b0d36a748c4b1c59a37f600ba1f60ff6caf303cf5b6fc4d110d051b4') -b2sums=('218345af3e96cc70e1b029e78198b57c9531bd2d987b6d1ae5414c787265d40beb1fb10714df1b46015dba54c5ccef3ddbfc53d1c131d0db47d1cac1a3b7575c' - '1d873efa0d17e358f834c4374f39bbf3f74340849f9c28a0950c0a064772083798aba3435e564acdf43a94665389917788e295073d4a65cc18600d71b7a9f008' - '3becf1f40068fc629109e6e7d464c3c484296afacc9ab6328b2ccbb3c9735bcbfa9550f9f73b430ede178ae668e37c660ce322b5b4d1873526de3d3d41185160' - '86c3a29acd132ca321f08fd81dd5a45707accdc035b2aeec95bf358b29072ff1eedb77b2566cf48d7253d1d791599f0f44938c4600761d711cb18b59019f1c62') - -prepare() { - cd ${pkgname}-${pkgver} - - # Check for the cc-panel module path, not for the irrelevant binary - # https://github.com/linuxmint/cinnamon/pull/7382 - patch --no-backup-if-mismatch -p1 < ../0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch - - # Use wheel group instread of sudo (taken from Fedora) - patch -p1 < ../set_wheel.diff - - # Set default theme to 'cinnamon' - patch -p1 < ../default-theme.patch - - # Replace MintInstall with GNOME Software - sed -i 's/mintinstall.desktop/org.gnome.Software.desktop/' data/org.cinnamon.gschema.xml - - # Add polkit agent to required components - sed -i 's/RequiredComponents=\(.*\)$/RequiredComponents=\1polkit-gnome-authentication-agent-1;/' \ - cinnamon*.session.in - - # https://github.com/linuxmint/cinnamon/issues/3575#issuecomment-374887122 - # Cinnamon has no upstream backgrounds, use GNOME backgrounds instead - sed -i 's|/usr/share/cinnamon-background-properties|/usr/share/gnome-background-properties|' \ - files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py -} - -build() { - arch-meson --libexecdir=lib/cinnamon ${pkgname}-${pkgver} build - samu -C build -} - -package() { - DESTDIR="${pkgdir}" samu -C build install -} Copied: cinnamon/repos/community-x86_64/PKGBUILD (from rev 1255971, cinnamon/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2022-07-24 14:54:50 UTC (rev 1255972) @@ -0,0 +1,75 @@ +# Maintainer: Bruno Pagani <archa...@archlinux.org> +# Contributor: Eli Schwartz <eschwa...@archlinux.org> +# Contributor: Alexandre Filgueira <alexfilgue...@cinnarch.com> +# Contributor: M0Rf30 +# Contributor: unifiedlinux +# Contributor: CReimer + +pkgname=cinnamon +pkgver=5.4.7 +pkgrel=1 +pkgdesc="Linux desktop which provides advanced innovative features and a traditional user experience" +arch=(x86_64) +url="https://github.com/linuxmint/cinnamon" +license=(GPL2) +depends=(accountsservice caribou cinnamon-control-center cinnamon-menus cinnamon-screensaver + cinnamon-session cinnamon-settings-daemon cjs gnome-backgrounds gsound + gnome-themes-extra gstreamer libcroco libgnomekbd libkeybinder3 librsvg muffin + network-manager-applet nemo polkit-gnome python-cairo python-dbus + python-gobject python-pam python-pexpect python-pillow python-pyinotify + python-pytz python-tinycss2 python-xapp python-requests timezonemap xapps) +optdepends=('blueman: Bluetooth support' + 'cinnamon-translations: i18n' + 'gnome-panel: fallback mode' + 'metacity: fallback mode' + 'system-config-printer: printer settings' + 'wget: cover download support in audio applet') +makedepends=(meson samurai gobject-introspection intltool) +options=('!emptydirs') +source=(${url}/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz + 0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch + set_wheel.diff + default-theme.patch) +sha512sums=('7daeb086bd590f1d6732194b051b15a970ac2bce319848dbcf27804d97b9c43f37d26e1e038472b07d8a3bcc26fd5636a896a443faa8bb6533832b897c4441e3' + '77c2229d350bb1445375d206af769f1dde9329ce3575e40e9c1d5fea3ec0f49c0a7ef36d78caf895d9224147947bd102bab924b5579dc8dc5f8d3269e0c76374' + 'fd7e117054996ed1c3dfd0f968c2bf98ca4fcee9a100221f8839a232147745ec0140e1f68eeffba58a3c44f66f26e05d433648a7a28858ec669524f7266ba04c' + 'ee7dedd59ea370cf81d75def49060f9a29b22e7b025ca7d5db87a0102d50f138c79aa562b0d36a748c4b1c59a37f600ba1f60ff6caf303cf5b6fc4d110d051b4') +b2sums=('a598eb98332037b3ee6432554e0aa2322cedaa4ece7abea08ba5bd0e8663830caa704092151ab5a0f21cec544ccee39379411954df5fe7cb3c9a34cadd2a8f69' + '1d873efa0d17e358f834c4374f39bbf3f74340849f9c28a0950c0a064772083798aba3435e564acdf43a94665389917788e295073d4a65cc18600d71b7a9f008' + '3becf1f40068fc629109e6e7d464c3c484296afacc9ab6328b2ccbb3c9735bcbfa9550f9f73b430ede178ae668e37c660ce322b5b4d1873526de3d3d41185160' + '86c3a29acd132ca321f08fd81dd5a45707accdc035b2aeec95bf358b29072ff1eedb77b2566cf48d7253d1d791599f0f44938c4600761d711cb18b59019f1c62') + +prepare() { + cd ${pkgname}-${pkgver} + + # Check for the cc-panel module path, not for the irrelevant binary + # https://github.com/linuxmint/cinnamon/pull/7382 + patch --no-backup-if-mismatch -p1 < ../0001-cinnamon-settings-don-t-rely-on-the-presence-of-cinn.patch + + # Use wheel group instread of sudo (taken from Fedora) + patch -p1 < ../set_wheel.diff + + # Set default theme to 'cinnamon' + patch -p1 < ../default-theme.patch + + # Replace MintInstall with GNOME Software + sed -i 's/mintinstall.desktop/org.gnome.Software.desktop/' data/org.cinnamon.gschema.xml + + # Add polkit agent to required components + sed -i 's/RequiredComponents=\(.*\)$/RequiredComponents=\1polkit-gnome-authentication-agent-1;/' \ + cinnamon*.session.in + + # https://github.com/linuxmint/cinnamon/issues/3575#issuecomment-374887122 + # Cinnamon has no upstream backgrounds, use GNOME backgrounds instead + sed -i 's|/usr/share/cinnamon-background-properties|/usr/share/gnome-background-properties|' \ + files/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py +} + +build() { + arch-meson --libexecdir=lib/cinnamon ${pkgname}-${pkgver} build + samu -C build +} + +package() { + DESTDIR="${pkgdir}" samu -C build install +} Deleted: default-theme.patch =================================================================== --- default-theme.patch 2022-07-24 14:54:38 UTC (rev 1255971) +++ default-theme.patch 2022-07-24 14:54:50 UTC (rev 1255972) @@ -1,25 +0,0 @@ -From b1f277d53ccd79bba9ba4cd1c0c2683d4f41068c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballog...@gmail.com> -Date: Sat, 22 Nov 2014 22:39:39 +0100 -Subject: [PATCH] Set default theme to 'cinnamon' - ---- - data/org.cinnamon.gschema.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/data/org.cinnamon.gschema.xml b/data/org.cinnamon.gschema.xml -index 86b14e26c..93c3e14c5 100644 ---- a/data/org.cinnamon.gschema.xml -+++ b/data/org.cinnamon.gschema.xml -@@ -645,7 +645,7 @@ - <schema id="org.cinnamon.theme" path="/org/cinnamon/theme/" - gettext-domain="@GETTEXT_PACKAGE@"> - <key name="name" type="s"> -- <default>""</default> -+ <default>"cinnamon"</default> - <summary>Theme name</summary> - <description> - The name of the theme --- -2.29.2 - Copied: cinnamon/repos/community-x86_64/default-theme.patch (from rev 1255971, cinnamon/trunk/default-theme.patch) =================================================================== --- default-theme.patch (rev 0) +++ default-theme.patch 2022-07-24 14:54:50 UTC (rev 1255972) @@ -0,0 +1,25 @@ +From b1f277d53ccd79bba9ba4cd1c0c2683d4f41068c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballog...@gmail.com> +Date: Sat, 22 Nov 2014 22:39:39 +0100 +Subject: [PATCH] Set default theme to 'cinnamon' + +--- + data/org.cinnamon.gschema.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/data/org.cinnamon.gschema.xml b/data/org.cinnamon.gschema.xml +index 86b14e26c..93c3e14c5 100644 +--- a/data/org.cinnamon.gschema.xml ++++ b/data/org.cinnamon.gschema.xml +@@ -645,7 +645,7 @@ + <schema id="org.cinnamon.theme" path="/org/cinnamon/theme/" + gettext-domain="@GETTEXT_PACKAGE@"> + <key name="name" type="s"> +- <default>""</default> ++ <default>"cinnamon"</default> + <summary>Theme name</summary> + <description> + The name of the theme +-- +2.29.2 + Deleted: set_wheel.diff =================================================================== --- set_wheel.diff 2022-07-24 14:54:38 UTC (rev 1255971) +++ set_wheel.diff 2022-07-24 14:54:50 UTC (rev 1255972) @@ -1,55 +0,0 @@ ---- a/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py -+++ b/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py -@@ -153,12 +153,11 @@ - - class PasswordDialog(Gtk.Dialog): - -- def __init__ (self, user, password_mask, group_mask, parent = None): -+ def __init__ (self, user, password_mask, parent = None): - super(PasswordDialog, self).__init__(None, parent) - - self.user = user - self.password_mask = password_mask -- self.group_mask = group_mask - - self.set_modal(True) - self.set_skip_taskbar_hint(True) -@@ -224,14 +223,7 @@ - def change_password(self): - newpass = self.new_password.get_text() - self.user.set_password(newpass, "") -- mask = self.group_mask.get_text() -- if "nopasswdlogin" in mask: -- subprocess.call(["gpasswd", "-d", self.user.get_user_name(), "nopasswdlogin"]) -- mask = mask.split(", ") -- mask.remove("nopasswdlogin") -- mask = ", ".join(mask) -- self.group_mask.set_text(mask) -- self.password_mask.set_text('\u2022\u2022\u2022\u2022\u2022\u2022') -+ self.password_mask.set_text('\u2022\u2022\u2022\u2022\u2022\u2022') - self.destroy() - - def set_passwords_visibility(self): -@@ -563,7 +555,7 @@ - model, treeiter = self.users_treeview.get_selection().get_selected() - if treeiter != None: - user = model[treeiter][INDEX_USER_OBJECT] -- dialog = PasswordDialog(user, self.password_mask, self.groups_label, self.window) -+ dialog = PasswordDialog(user, self.password_mask, self.window) - response = dialog.run() - - def _on_groups_button_clicked(self, widget): -@@ -807,11 +799,11 @@ - pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size("/usr/share/cinnamon/faces/user-generic.png", 48, 48) - description = "<b>%s</b>\n%s" % (fullname, username) - piter = self.users.append(None, [new_user, pixbuf, description]) -- # Add the user to his/her own group and sudo if Administrator was selected -+ # Add the user to his/her own group and wheel if Administrator was selected - if dialog.account_type_combo.get_active() == 1: -- subprocess.call(["usermod", username, "-G", "%s,sudo,nopasswdlogin" % username]) -+ subprocess.call(["usermod", username, "-G", "%s,wheel" % username]) - else: -- subprocess.call(["usermod", username, "-G", "%s,nopasswdlogin" % username]) -+ subprocess.call(["usermod", username, "-G", "%s" % username]) - self.load_groups() - dialog.destroy() Copied: cinnamon/repos/community-x86_64/set_wheel.diff (from rev 1255971, cinnamon/trunk/set_wheel.diff) =================================================================== --- set_wheel.diff (rev 0) +++ set_wheel.diff 2022-07-24 14:54:50 UTC (rev 1255972) @@ -0,0 +1,55 @@ +--- a/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py ++++ b/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py +@@ -153,12 +153,11 @@ + + class PasswordDialog(Gtk.Dialog): + +- def __init__ (self, user, password_mask, group_mask, parent = None): ++ def __init__ (self, user, password_mask, parent = None): + super(PasswordDialog, self).__init__(None, parent) + + self.user = user + self.password_mask = password_mask +- self.group_mask = group_mask + + self.set_modal(True) + self.set_skip_taskbar_hint(True) +@@ -224,14 +223,7 @@ + def change_password(self): + newpass = self.new_password.get_text() + self.user.set_password(newpass, "") +- mask = self.group_mask.get_text() +- if "nopasswdlogin" in mask: +- subprocess.call(["gpasswd", "-d", self.user.get_user_name(), "nopasswdlogin"]) +- mask = mask.split(", ") +- mask.remove("nopasswdlogin") +- mask = ", ".join(mask) +- self.group_mask.set_text(mask) +- self.password_mask.set_text('\u2022\u2022\u2022\u2022\u2022\u2022') ++ self.password_mask.set_text('\u2022\u2022\u2022\u2022\u2022\u2022') + self.destroy() + + def set_passwords_visibility(self): +@@ -563,7 +555,7 @@ + model, treeiter = self.users_treeview.get_selection().get_selected() + if treeiter != None: + user = model[treeiter][INDEX_USER_OBJECT] +- dialog = PasswordDialog(user, self.password_mask, self.groups_label, self.window) ++ dialog = PasswordDialog(user, self.password_mask, self.window) + response = dialog.run() + + def _on_groups_button_clicked(self, widget): +@@ -807,11 +799,11 @@ + pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size("/usr/share/cinnamon/faces/user-generic.png", 48, 48) + description = "<b>%s</b>\n%s" % (fullname, username) + piter = self.users.append(None, [new_user, pixbuf, description]) +- # Add the user to his/her own group and sudo if Administrator was selected ++ # Add the user to his/her own group and wheel if Administrator was selected + if dialog.account_type_combo.get_active() == 1: +- subprocess.call(["usermod", username, "-G", "%s,sudo,nopasswdlogin" % username]) ++ subprocess.call(["usermod", username, "-G", "%s,wheel" % username]) + else: +- subprocess.call(["usermod", username, "-G", "%s,nopasswdlogin" % username]) ++ subprocess.call(["usermod", username, "-G", "%s" % username]) + self.load_groups() + dialog.destroy()