diff options
Diffstat (limited to 'polkit-gnome')
8 files changed, 432 insertions, 0 deletions
diff --git a/polkit-gnome/.footprint b/polkit-gnome/.footprint new file mode 100644 index 0000000..17e44d4 --- /dev/null +++ b/polkit-gnome/.footprint @@ -0,0 +1,11 @@ +drwxr-xr-x root/root etc/ +drwxr-xr-x root/root etc/xdg/ +drwxr-xr-x root/root etc/xdg/autostart/ +-rw-r--r-- root/root etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop +drwxr-xr-x root/root usr/ +drwxr-xr-x root/root usr/lib/ +drwxr-xr-x root/root usr/lib/polkit-gnome/ +-rwxr-xr-x root/root usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +drwxr-xr-x root/root usr/share/ +drwxr-xr-x root/root usr/share/applications/ +-rw-r--r-- root/root usr/share/applications/polkit-gnome-authentication-agent-1.desktop diff --git a/polkit-gnome/.signature b/polkit-gnome/.signature new file mode 100644 index 0000000..fd6e337 --- /dev/null +++ b/polkit-gnome/.signature @@ -0,0 +1,10 @@ +untrusted comment: verify with /etc/ports/xfce4.pub +RWRSAbUnL7azFIee9GANQy1Tyd4jluSrytpigWN6Qk1Gf4uuHfIhjKcZOZFqp+0hfWRE035w+egBo+ngIQx6mfVLPY6BRWT52ws= +SHA256 (Pkgfile) = d1fd37b0b915123ae223a8ea6b8eb386857cfe06f90f330b4efdd83b79eebe6e +SHA256 (.footprint) = 51bef78cf307494b5eb81e901d2635943323ca33986d424f3ae7e12909445851 +SHA256 (polkit-gnome-0.105.tar.xz) = 1784494963b8bf9a00eedc6cd3a2868fb123b8a5e516e66c5eda48df17ab9369 +SHA256 (polkit-gnome-authentication-agent-1.desktop) = 74c94c5f7893d714e04ec7d8b8520c978a5748757a0cdcf5128492f09f31b643 +SHA256 (0001-Select-the-current-user-to-authenticate-with-by-defa.patch) = b989f1c7e30f2f9f9ef03f1a06db708d83c4945ee242ca573e7d66b64bf7037f +SHA256 (0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch) = 41afbd11bdf4633dc619675862078c23e4b200c888da1569d030c502999b25d8 +SHA256 (0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch) = 4ee38d2dae6e592040c41ba07caa284135dc232feef5a30acb42c0e28340adce +SHA256 (0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch) = 8d278f773f1815cf6d384518749643404fed444bb764305ebba081965152fa9e diff --git a/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch b/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch new file mode 100644 index 0000000..91f67bb --- /dev/null +++ b/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch @@ -0,0 +1,78 @@ +From: Utopia Maintenance Team + <pkg-utopia-maintainers@lists.alioth.debian.org> +Date: Mon, 30 Apr 2018 17:56:52 +0000 +Subject: Select the current user to authenticate with by default + +Bug: http://bugzilla.gnome.org/show_bug.cgi?id=596188 +Bug-Ubuntu: https://launchpad.net/bugs/435227 +--- + src/polkitgnomeauthenticationdialog.c | 23 ++++++++++++++--------- + 1 file changed, 14 insertions(+), 9 deletions(-) + +diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c +index 743cc96..d307516 100644 +--- a/src/polkitgnomeauthenticationdialog.c ++++ b/src/polkitgnomeauthenticationdialog.c +@@ -138,7 +138,7 @@ user_combobox_changed (GtkComboBox *widget, + static void + create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + { +- int n; ++ int n, i, selected_index = 0; + GtkComboBox *combo; + GtkTreeIter iter; + GtkCellRenderer *renderer; +@@ -162,7 +162,7 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + + + /* For each user */ +- for (n = 0; dialog->priv->users[n] != NULL; n++) ++ for (i = 0, n = 0; dialog->priv->users[n] != NULL; n++) + { + gchar *gecos; + gchar *real_name; +@@ -224,6 +224,14 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + USERNAME_COL, dialog->priv->users[n], + -1); + ++ i++; ++ if (passwd->pw_uid == getuid ()) ++ { ++ selected_index = i; ++ g_free (dialog->priv->selected_user); ++ dialog->priv->selected_user = g_strdup (dialog->priv->users[n]); ++ } ++ + g_free (real_name); + g_object_unref (pixbuf); + } +@@ -252,8 +260,8 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + user_combobox_set_sensitive, + NULL, NULL); + +- /* Initially select the "Select user..." ... */ +- gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); ++ /* Select the default user */ ++ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), selected_index); + + /* Listen when a new user is selected */ + g_signal_connect (GTK_WIDGET (combo), +@@ -719,16 +727,13 @@ polkit_gnome_authentication_dialog_constructed (GObject *object) + gtk_widget_set_tooltip_markup (label, s); + g_free (s); + +- if (have_user_combobox) ++ /* Disable password entry and authenticate until have a user selected */ ++ if (have_user_combobox && gtk_combo_box_get_active (GTK_COMBO_BOX (dialog->priv->user_combobox)) == 0) + { +- /* ... and make the password entry and "Authenticate" button insensitive */ + gtk_widget_set_sensitive (dialog->priv->prompt_label, FALSE); + gtk_widget_set_sensitive (dialog->priv->password_entry, FALSE); + gtk_widget_set_sensitive (dialog->priv->auth_button, FALSE); + } +- else +- { +- } + + gtk_widget_realize (GTK_WIDGET (dialog)); + diff --git a/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch b/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch new file mode 100644 index 0000000..76b96f4 --- /dev/null +++ b/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch @@ -0,0 +1,32 @@ +From: Lars Uebernickel <lars@uebernic.de> +Date: Fri, 17 Oct 2014 15:35:25 +0200 +Subject: Auth dialog: Make the label wrap at 70 chars + +Because GtkWindow doesn't have a default width anymore. + +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=738688 +Bug-Ubuntu: https://launchpad.net/bugs/1382566 +--- + src/polkitgnomeauthenticationdialog.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c +index d307516..efd4185 100644 +--- a/src/polkitgnomeauthenticationdialog.c ++++ b/src/polkitgnomeauthenticationdialog.c +@@ -574,6 +574,7 @@ polkit_gnome_authentication_dialog_constructed (GObject *object) + g_free (s); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); ++ gtk_label_set_max_width_chars (GTK_LABEL (label), 70); + gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 0); + + /* secondary message */ +@@ -601,6 +602,7 @@ polkit_gnome_authentication_dialog_constructed (GObject *object) + } + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); ++ gtk_label_set_max_width_chars (GTK_LABEL (label), 70); + gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 0); + + /* user combobox */ diff --git a/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch b/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch new file mode 100644 index 0000000..4314939 --- /dev/null +++ b/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch @@ -0,0 +1,135 @@ +From: Marc Deslauriers <marc.deslauriers@canonical.com> +Date: Mon, 30 Apr 2018 18:03:22 +0000 +Subject: Get user icon from accountsservice instead of looking in ~/.face + +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=669857 +Bug-Ubuntu: https://launchpad.net/bugs/928249 +--- + src/polkitgnomeauthenticationdialog.c | 107 ++++++++++++++++++++++++++++++---- + 1 file changed, 97 insertions(+), 10 deletions(-) + +diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c +index efd4185..565da87 100644 +--- a/src/polkitgnomeauthenticationdialog.c ++++ b/src/polkitgnomeauthenticationdialog.c +@@ -135,6 +135,102 @@ user_combobox_changed (GtkComboBox *widget, + } + } + ++static GdkPixbuf * ++get_user_icon (char *username) ++{ ++ GError *error; ++ GDBusConnection *connection; ++ GVariant *find_user_result; ++ GVariant *get_icon_result; ++ GVariant *icon_result_variant; ++ const gchar *user_path; ++ const gchar *icon_filename; ++ GdkPixbuf *pixbuf; ++ ++ error = NULL; ++ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); ++ ++ if (connection == NULL) ++ { ++ g_warning ("Unable to connect to system bus: %s", error->message); ++ g_error_free (error); ++ return NULL; ++ } ++ ++ find_user_result = g_dbus_connection_call_sync (connection, ++ "org.freedesktop.Accounts", ++ "/org/freedesktop/Accounts", ++ "org.freedesktop.Accounts", ++ "FindUserByName", ++ g_variant_new ("(s)", ++ username), ++ G_VARIANT_TYPE ("(o)"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ NULL, ++ &error); ++ ++ if (find_user_result == NULL) ++ { ++ g_warning ("Accounts couldn't find user: %s", error->message); ++ g_error_free (error); ++ return NULL; ++ } ++ ++ user_path = g_variant_get_string (g_variant_get_child_value (find_user_result, 0), ++ NULL); ++ ++ get_icon_result = g_dbus_connection_call_sync (connection, ++ "org.freedesktop.Accounts", ++ user_path, ++ "org.freedesktop.DBus.Properties", ++ "Get", ++ g_variant_new ("(ss)", ++ "org.freedesktop.Accounts.User", ++ "IconFile"), ++ G_VARIANT_TYPE ("(v)"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ NULL, ++ &error); ++ ++ g_variant_unref (find_user_result); ++ ++ if (get_icon_result == NULL) ++ { ++ g_warning ("Accounts couldn't find user icon: %s", error->message); ++ g_error_free (error); ++ return NULL; ++ } ++ ++ g_variant_get_child (get_icon_result, 0, "v", &icon_result_variant); ++ icon_filename = g_variant_get_string (icon_result_variant, NULL); ++ ++ if (icon_filename == NULL) ++ { ++ g_warning ("Accounts didn't return a valid filename for user icon"); ++ pixbuf = NULL; ++ } ++ else ++ { ++ /* TODO: we probably shouldn't hard-code the size to 16x16 */ ++ pixbuf = gdk_pixbuf_new_from_file_at_size (icon_filename, ++ 16, ++ 16, ++ &error); ++ if (pixbuf == NULL) ++ { ++ g_warning ("Couldn't open user icon: %s", error->message); ++ g_error_free (error); ++ } ++ } ++ ++ g_variant_unref (icon_result_variant); ++ g_variant_unref (get_icon_result); ++ ++ return pixbuf; ++} ++ + static void + create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + { +@@ -197,16 +293,7 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog) + g_free (gecos); + + /* Load users face */ +- pixbuf = NULL; +- if (passwd->pw_dir != NULL) +- { +- gchar *path; +- path = g_strdup_printf ("%s/.face", passwd->pw_dir); +- /* TODO: we probably shouldn't hard-code the size to 16x16 */ +- pixbuf = gdk_pixbuf_new_from_file_at_scale (path, 16, 16, TRUE, NULL); +- g_free (path); +- } +- ++ pixbuf = get_user_icon (dialog->priv->users[n]); + /* fall back to avatar-default icon */ + if (pixbuf == NULL) + { diff --git a/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch b/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch new file mode 100644 index 0000000..83ad38d --- /dev/null +++ b/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch @@ -0,0 +1,45 @@ +From: Jeffrey Knockel <jeff250@gmail.com> +Date: Mon, 30 Apr 2018 18:05:20 +0000 +Subject: Use fresh X11 timestamps when displaying authentication dialog + +This circumvents focus-stealing prevention. + +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=676076 +Bug-Debian: https://bugs.debian.org/684300 +Bug-Ubuntu: https://launchpad.net/bugs/946171 +--- + src/polkitgnomeauthenticator.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/polkitgnomeauthenticator.c b/src/polkitgnomeauthenticator.c +index 23163b4..e57d76e 100644 +--- a/src/polkitgnomeauthenticator.c ++++ b/src/polkitgnomeauthenticator.c +@@ -26,6 +26,7 @@ + #include <sys/types.h> + #include <pwd.h> + #include <glib/gi18n.h> ++#include <gdk/gdkx.h> + + #include <polkit/polkit.h> + #include <polkitagent/polkitagent.h> +@@ -306,7 +307,17 @@ session_request (PolkitAgentSession *session, + } + + gtk_widget_show_all (GTK_WIDGET (authenticator->dialog)); +- gtk_window_present (GTK_WINDOW (authenticator->dialog)); ++ GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (authenticator->dialog)); ++ ++ if (GDK_IS_X11_WINDOW (window)) ++ { ++ gtk_window_present_with_time (GTK_WINDOW (authenticator->dialog), gdk_x11_get_server_time (window)); ++ } ++ else ++ { ++ gtk_window_present (GTK_WINDOW (authenticator->dialog)); ++ } ++ + password = polkit_gnome_authentication_dialog_run_until_response_for_prompt (POLKIT_GNOME_AUTHENTICATION_DIALOG (authenticator->dialog), + modified_request, + echo_on, + diff --git a/polkit-gnome/Pkgfile b/polkit-gnome/Pkgfile new file mode 100644 index 0000000..1fee4be --- /dev/null +++ b/polkit-gnome/Pkgfile @@ -0,0 +1,34 @@ +# Description: Legacy polkit authentication agent for GNOME +# URL: https://gitlab.gnome.org/Archive/policykit-gnome/ +# Maintainer: mac-a-r0ni, j at lngn dot net +# Depends on: gtk3 polkit + +name=polkit-gnome +version=0.105 +release=1 +source=(https://download.gnome.org/sources/$name/$version/$name-$version.tar.xz polkit-gnome-authentication-agent-1.desktop 0001-Select-the-current-user-to-authenticate-with-by-defa.patch 0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch 0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch 0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch) + +build() { + cd $name-$version + + # Select the current user to authenticate with by default + patch -Np1 -i ../0001-Select-the-current-user-to-authenticate-with-by-defa.patch + + # Auth dialog: Make the label wrap at 70 chars + patch -Np1 -i ../0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch + + # Get user icon from accountsservice instead of looking in ~/.face + patch -Np1 -i ../0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch + + # Use fresh X11 timestamps when displaying authentication dialog + patch -Np1 -i ../0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch + + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$name --build=aarch64-unknown-linux-gnuabi + make + + make DESTDIR=$PKG install + install -Dm644 ../polkit-gnome-authentication-agent-1.desktop $PKG/usr/share/applications/polkit-gnome-authentication-agent-1.desktop + install -Dm644 ../polkit-gnome-authentication-agent-1.desktop $PKG/etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop + + rm -r $PKG/usr/share/locale +} diff --git a/polkit-gnome/polkit-gnome-authentication-agent-1.desktop b/polkit-gnome/polkit-gnome-authentication-agent-1.desktop new file mode 100644 index 0000000..fec61e7 --- /dev/null +++ b/polkit-gnome/polkit-gnome-authentication-agent-1.desktop @@ -0,0 +1,87 @@ +[Desktop Entry] +Name=PolicyKit Authentication Agent +Name[ar]=مدير الاستيثاق PolicyKit +Name[be]=PolicyKit - аґент аўтэнтыфікацыі +Name[bn_IN]=PolicyKit অনুমোদনের এজেন্ট +Name[ca]=Agent d'autenticació del PolicyKit +Name[cs]=Ověřovací agent PolicyKit +Name[da]=Godkendelsesprogrammet PolicyKit +Name[de]=Legitimationsdienst von PolicyKit +Name[el]=Πράκτορας πιστοποίησης PolicyKit +Name[en_GB]=PolicyKit Authentication Agent +Name[es]=Agente de autenticación de PolicyKit +Name[eu]=PolicyKit autentifikatzeko agentea +Name[fi]=PolicytKit-tunnistautumisohjelma +Name[fr]=Agent d'authentification de PolicyKit +Name[gl]=Axente de autenticación PolicyKit +Name[gu]=PolicyKit સત્તાધિકરણ એજન્ટ +Name[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि +Name[hu]=PolicyKit hitelesítési ügynök +Name[it]=Agente di autenticazione per PolicyKit +Name[ja]=PolicyKit 認証エージェント +Name[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ +Name[lt]=PolicyKit tapatybės nustatymo agentas +Name[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന് ഏജന്റ് +Name[mr]=PolicyKit ऑथेंटीकेशन एजेंट +Name[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ +Name[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ +Name[pl]=Agent uwierzytelniania PolicyKit +Name[pt]=Agente de Autenticação PolicyKit +Name[pt_BR]=Agente de autenticação PolicyKit +Name[ro]=Agent de autentificare PolicyKit +Name[sk]=Agent PolicyKit na overovanie totožnosti +Name[sl]=PolicyKit program overjanja +Name[sv]=Autentiseringsagent för PolicyKit +Name[ta]=PolicyKit அங்கீகார முகவர் +Name[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి +Name[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit +Name[uk]=Агент автентифікації PolicyKit +Name[zh_CN]=PolicyKit 认证代理 +Name[zh_HK]=PolicyKit 驗證代理程式 +Name[zh_TW]=PolicyKit 驗證代理程式 +Comment=PolicyKit Authentication Agent +Comment[ar]=مدير الاستيثاق PolicyKit +Comment[be]=PolicyKit - аґент аўтэнтыфікацыі +Comment[bn_IN]=PolicyKit অনুমোদনের এজেন্ট +Comment[ca]=Agent d'autenticació del PolicyKit +Comment[cs]=Ověřovací agent PolicyKit +Comment[da]=Godkendelsesprogrammet PolicyKit +Comment[de]=Legitimationsdienst von PolicyKit +Comment[el]=Πράκτορας πιστοποίησης PolicyKit +Comment[en_GB]=PolicyKit Authentication Agent +Comment[es]=Agente de autenticación de PolicyKit +Comment[eu]=PolicyKit autentifikatzeko agentea +Comment[fi]=PolicytKit-tunnistautumisohjelma +Comment[fr]=Agent d'authentification de PolicyKit +Comment[gl]=Axente de autenticación PolicyKit +Comment[gu]=PolicyKit સત્તાધિકરણ એજન્ટ +Comment[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि +Comment[hu]=PolicyKit hitelesítési ügynök +Comment[it]=Agente di autenticazione per PolicyKit +Comment[ja]=PolicyKit 認証エージェント +Comment[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ +Comment[lt]=PolicyKit tapatybės nustatymo agentas +Comment[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന് ഏജന്റ് +Comment[mr]=PolicyKit ऑथेंटीकेशन एजेंट +Comment[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ +Comment[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ +Comment[pl]=Agent uwierzytelniania PolicyKit +Comment[pt]=Agente de Autenticação PolicyKit +Comment[pt_BR]=Agente de autenticação PolicyKit +Comment[ro]=Agent de autentificare PolicyKit +Comment[sk]=Agent PolicyKit na overovanie totožnosti +Comment[sl]=PolicyKit program overjanja +Comment[sv]=Autentiseringsagent för PolicyKit +Comment[ta]=PolicyKit அங்கீகார முகவர் +Comment[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి +Comment[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit +Comment[uk]=Агент автентифікації PolicyKit +Comment[zh_CN]=PolicyKit 认证代理 +Comment[zh_HK]=PolicyKit 驗證代理程式 +Comment[zh_TW]=PolicyKit 驗證代理程式 +Exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +Terminal=false +Type=Application +Categories= +NoDisplay=true +OnlyShowIn=XFCE; |
