Sync from SUSE:SLFO:Main polkit revision 1f6c5d67fe39fedb65de61b4427c4b1c

This commit is contained in:
Adrian Schröter 2024-05-03 19:31:23 +02:00
commit 8654c4537d
14 changed files with 2186 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

4
baselibs.conf Normal file
View File

@ -0,0 +1,4 @@
libpolkit-agent-1-0
obsoletes "libpolkit0-<targettype> < <version>"
libpolkit-gobject-1-0
obsoletes "libpolkit0-<targettype> < <version>"

BIN
polkit-121.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

11
polkit-121.tar.gz.sign Normal file
View File

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEEf/t9a9gxR9dChOMXjOswMP/c4lgFAmLMIyMACgkQjOswMP/c
4ljnPggAirGfeho8FcKzvi8V7Gya8tHUf0eGqdlJUr8owSHx0FjTzBSATHxhFtFZ
pMPXXUkM0myKgqFQntL9ZYtM7l9MnCdS2rvEPkUg+uoJ4uJuuorsxkxaFdBOXFn9
xUSgLIpsVIVVTDLaChgbRvgZQXLO27fz3PVchLlqLIfyyiKvxBCftx+4EXZzQgor
HA0qpWFTdH1LxhhHrZibkNxBwI6uQum20fDzRiyIu5oUtRyZqRt+lBuimzFHrCLz
AOGZJANTxNVpZmpXEJqM/N93133852S2UJtCbgp4zmcnAWeBJSD5NodbVq65JzAs
4ZjD5iN/MumSAnQyKBknisT5UH5vwg==
=mLHt
-----END PGP SIGNATURE-----

227
polkit-actions-in-etc.patch Normal file
View File

@ -0,0 +1,227 @@
diff --git a/docs/man/polkit.xml b/docs/man/polkit.xml
index 90715a5..10dd217 100644
--- a/docs/man/polkit.xml
+++ b/docs/man/polkit.xml
@@ -104,6 +104,7 @@ System Context | |
+------------------+ |
^ |
| +--------------------------------------+
+ | | /etc/polkit-1/actions/*.policy |
| | /usr/share/polkit-1/actions/*.policy |
| +--------------------------------------+
|
diff --git a/src/polkitbackend/polkitbackendactionpool.c b/src/polkitbackend/polkitbackendactionpool.c
index 3894fe9..17652e6 100644
--- a/src/polkitbackend/polkitbackendactionpool.c
+++ b/src/polkitbackend/polkitbackendactionpool.c
@@ -91,8 +91,10 @@ typedef struct
{
/* directory with .policy files, e.g. /usr/share/polkit-1/actions */
GFile *directory;
+ GFile *directory_alt;
GFileMonitor *dir_monitor;
+ GFileMonitor *dir_monitor_alt;
/* maps from action_id to a ParsedAction struct */
GHashTable *parsed_actions;
@@ -109,6 +111,8 @@ enum
{
PROP_0,
PROP_DIRECTORY,
+ /* TODO combine into PROP_DIRECTORIES? */
+ PROP_DIRECTORY_ALT,
};
#define POLKIT_BACKEND_ACTION_POOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), POLKIT_BACKEND_TYPE_ACTION_POOL, PolkitBackendActionPoolPrivate))
@@ -153,9 +157,15 @@ polkit_backend_action_pool_finalize (GObject *object)
if (priv->directory != NULL)
g_object_unref (priv->directory);
+ if (priv->directory_alt != NULL)
+ g_object_unref (priv->directory_alt);
+
if (priv->dir_monitor != NULL)
g_object_unref (priv->dir_monitor);
+ if (priv->dir_monitor_alt != NULL)
+ g_object_unref (priv->dir_monitor_alt);
+
if (priv->parsed_actions != NULL)
g_hash_table_unref (priv->parsed_actions);
@@ -183,6 +193,10 @@ polkit_backend_action_pool_get_property (GObject *object,
g_value_set_object (value, priv->directory);
break;
+ case PROP_DIRECTORY_ALT:
+ g_value_set_object (value, priv->directory_alt);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -274,6 +288,28 @@ polkit_backend_action_pool_set_property (GObject *object,
}
break;
+ case PROP_DIRECTORY_ALT:
+ priv->directory_alt = g_value_dup_object (value);
+
+ error = NULL;
+ priv->dir_monitor_alt = g_file_monitor_directory (priv->directory_alt,
+ G_FILE_MONITOR_NONE,
+ NULL,
+ &error);
+ if (priv->dir_monitor_alt == NULL)
+ {
+ g_warning ("Error monitoring actions alt directory: %s", error->message);
+ g_error_free (error);
+ }
+ else
+ {
+ g_signal_connect (priv->dir_monitor_alt,
+ "changed",
+ (GCallback) dir_monitor_changed,
+ pool);
+ }
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -308,6 +344,18 @@ polkit_backend_action_pool_class_init (PolkitBackendActionPoolClass *klass)
G_PARAM_STATIC_NICK |
G_PARAM_STATIC_BLURB));
+ g_object_class_install_property (gobject_class,
+ PROP_DIRECTORY_ALT,
+ g_param_spec_object ("directoryalt",
+ "DirectoryAlt",
+ "Alternative directory to load action description files from",
+ G_TYPE_FILE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_NAME |
+ G_PARAM_STATIC_NICK |
+ G_PARAM_STATIC_BLURB));
+
/**
* PolkitBackendActionPool::changed:
* @action_pool: A #PolkitBackendActionPool.
@@ -334,12 +382,13 @@ polkit_backend_action_pool_class_init (PolkitBackendActionPoolClass *klass)
* Returns: A #PolkitBackendActionPool. Free with g_object_unref().
**/
PolkitBackendActionPool *
-polkit_backend_action_pool_new (GFile *directory)
+polkit_backend_action_pool_new (GFile *directory, GFile *directory_alt)
{
PolkitBackendActionPool *pool;
pool = POLKIT_BACKEND_ACTION_POOL (g_object_new (POLKIT_BACKEND_TYPE_ACTION_POOL,
"directory", directory,
+ "directoryalt", directory_alt,
NULL));
return pool;
@@ -505,12 +554,14 @@ ensure_all_files (PolkitBackendActionPool *pool)
{
PolkitBackendActionPoolPrivate *priv;
GFileEnumerator *e;
+ GFileEnumerator *e_alt;
GFileInfo *file_info;
GError *error;
priv = POLKIT_BACKEND_ACTION_POOL_GET_PRIVATE (pool);
e = NULL;
+ e_alt = NULL;
if (priv->has_loaded_all_files)
goto out;
@@ -548,12 +599,48 @@ ensure_all_files (PolkitBackendActionPool *pool)
} /* for all files */
+ /* TODO priority for files in /etc */
+
+ e_alt = g_file_enumerate_children (priv->directory_alt,
+ "standard::name",
+ G_FILE_QUERY_INFO_NONE,
+ NULL,
+ &error);
+ if (error != NULL)
+ {
+ g_warning ("Error enumerating files: %s", error->message);
+ goto out;
+ }
+
+ while ((file_info = g_file_enumerator_next_file (e_alt, NULL, &error)) != NULL)
+ {
+ const gchar *name;
+
+ name = g_file_info_get_name (file_info);
+ /* only consider files with the right suffix */
+ if (g_str_has_suffix (name, ".policy"))
+ {
+ GFile *file;
+
+ file = g_file_get_child (priv->directory_alt, name);
+
+ ensure_file (pool, file);
+
+ g_object_unref (file);
+ }
+
+ g_object_unref (file_info);
+
+ } /* for all files */
+
priv->has_loaded_all_files = TRUE;
out:
if (e != NULL)
g_object_unref (e);
+ if (e_alt != NULL)
+ g_object_unref (e_alt);
}
/* ---------------------------------------------------------------------------------------------------- */
diff --git a/src/polkitbackend/polkitbackendactionpool.h b/src/polkitbackend/polkitbackendactionpool.h
index e992eea..9ccb526 100644
--- a/src/polkitbackend/polkitbackendactionpool.h
+++ b/src/polkitbackend/polkitbackendactionpool.h
@@ -64,7 +64,7 @@ struct _PolkitBackendActionPoolClass
};
GType polkit_backend_action_pool_get_type (void) G_GNUC_CONST;
-PolkitBackendActionPool *polkit_backend_action_pool_new (GFile *directory);
+PolkitBackendActionPool *polkit_backend_action_pool_new (GFile *directory, GFile *directory_alt);
GList *polkit_backend_action_pool_get_all_actions (PolkitBackendActionPool *pool,
const gchar *locale);
diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
index 1cfc88e..a975cac 100644
--- a/src/polkitbackend/polkitbackendinteractiveauthority.c
+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
@@ -292,6 +292,7 @@ polkit_backend_interactive_authority_init (PolkitBackendInteractiveAuthority *au
{
PolkitBackendInteractiveAuthorityPrivate *priv;
GFile *directory;
+ GFile *directory_alt;
GError *error;
/* Force registering error domain */
@@ -300,8 +301,10 @@ polkit_backend_interactive_authority_init (PolkitBackendInteractiveAuthority *au
priv = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_GET_PRIVATE (authority);
directory = g_file_new_for_path (PACKAGE_DATA_DIR "/polkit-1/actions");
- priv->action_pool = polkit_backend_action_pool_new (directory);
+ directory_alt = g_file_new_for_path (PACKAGE_SYSCONF_DIR "/polkit-1/actions");
+ priv->action_pool = polkit_backend_action_pool_new (directory, directory_alt);
g_object_unref (directory);
+ g_object_unref (directory_alt);
g_signal_connect (priv->action_pool,
"changed",
(GCallback) action_pool_changed,

View File

@ -0,0 +1,22 @@
--- a/src/polkitagent/polkitagentsession.c
+++ b/src/polkitagent/polkitagentsession.c
@@ -596,7 +596,7 @@ polkit_agent_session_initiate (PolkitAge
goto error;
}
- helper_argv[0] = PACKAGE_PREFIX "/lib/polkit-1/polkit-agent-helper-1";
+ helper_argv[0] = PACKAGE_PREFIX "/libexec/polkit-1/polkit-agent-helper-1";
helper_argv[1] = passwd->pw_name;
helper_argv[2] = NULL;
--- a/meson.build
+++ b/meson.build
@@ -28,7 +28,7 @@ pk_sysconfdir = get_option('sysconfdir')
pk_pkgdatadir = pk_datadir / pk_api_name
pk_pkgincludedir = pk_includedir / pk_api_name
# note that this is always 'lib', not lib64 or lib/x86_64-linux-gnu
-pk_libprivdir = 'lib' / pk_api_name
+pk_libprivdir = 'libexec' / pk_api_name
pk_pkgsysconfdir = pk_sysconfdir / pk_api_name
pk_actiondir = pk_api_name / 'actions'

View File

@ -0,0 +1,33 @@
https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/131
build: Honour pam_prefix meson option
Make the use of pam_prefix worth its while since, at the moment, its value
is not being used. Instead, a hard-coded path is being deployed when it
shouldn't anymore.
The pam_prefix Meson option was designed to allow us to choose where pam
configuration files should end up. But at the moment it is not being used at
all where it should be.
--- a/meson.build
+++ b/meson.build
@@ -241,7 +241,7 @@ if enable_pam
pam_prefix = get_option('pam_prefix')
if pam_prefix == ''
- pam_prefix = pk_sysconfdir
+ pam_prefix = pk_sysconfdir / 'pam.d'
else
message('PAM files will be installed in prefix ' + pam_prefix)
endif
--- a/data/meson.build
+++ b/data/meson.build
@@ -22,7 +22,7 @@ if enable_pam
output: '@BASENAME@',
configuration: pam_conf,
install: true,
- install_dir: pk_sysconfdir / 'pam.d',
+ install_dir: pam_prefix,
)
endif

57
polkit-gettext.patch Normal file
View File

@ -0,0 +1,57 @@
From fea7159b7cc50deb7298b2858e125fb623012549 Mon Sep 17 00:00:00 2001
From: Ludwig Nussel <ludwig.nussel@suse.de>
Date: Tue, 13 Jun 2017 18:28:28 +0200
Subject: [PATCH] Use gettext as fallback for translations
Upstream polkit action files do not necessarily contain translations for
all languages a distribution supports. And even if all translations are
contained in the head branch, distributions sometimes need to ship older
versions of packages. In order to allow retrofitting translations and
shipping language packs for polkit actions without having to patch and
rebuild packages gettext could be used as fallback. That way only
additional .mo files have to be installed.
So this patch makes polkit call into gettext with the domain
'polkit-action-distro-translations' if an xml doesn't contain
translations for the requested language.
---
src/polkitbackend/polkitbackendactionpool.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/polkitbackend/polkitbackendactionpool.c b/src/polkitbackend/polkitbackendactionpool.c
index 3894fe9..9252788 100644
--- a/src/polkitbackend/polkitbackendactionpool.c
+++ b/src/polkitbackend/polkitbackendactionpool.c
@@ -24,6 +24,7 @@
#include <pwd.h>
#include <string.h>
#include <expat.h>
+#include <locale.h>
#include <polkit/polkit.h>
#include <polkit/polkitprivate.h>
@@ -1132,8 +1133,20 @@ _localize (GHashTable *translations,
if (result != NULL)
goto out;
- /* fall back to untranslated */
- result = untranslated;
+ /* try distro provided language bundle via gettext */
+
+ /* Set LANG and locale so g_dgettext() + friends work below */
+ if (setlocale (LC_ALL, lang) == NULL)
+ {
+ g_printerr ("Invalid locale '%s'\n", lang);
+ }
+ g_setenv ("LANG", lang, TRUE);
+
+ result = g_dgettext ("polkit-action-distro-translations", untranslated);
+
+ /* Back to C! */
+ setlocale (LC_ALL, "C");
+ g_setenv ("LANG", "C", TRUE);
out:
return result;
--
2.12.2

9
polkit-keyinit.patch Normal file
View File

@ -0,0 +1,9 @@
Index: polkit-0.116/data/polkit-1.in
===================================================================
--- polkit-0.116.orig/data/polkit-1.in
+++ polkit-0.116/data/polkit-1.in
@@ -4,3 +4,4 @@ auth include @PAM_FILE_INCLUD
account include @PAM_FILE_INCLUDE_ACCOUNT@
password include @PAM_FILE_INCLUDE_PASSWORD@
session include @PAM_FILE_INCLUDE_SESSION@
+session optional pam_keyinit.so revoke [force]

View File

@ -0,0 +1,9 @@
--- a/src/polkitbackend/50-default.rules
+++ b/src/polkitbackend/50-default.rules
@@ -8,5 +8,5 @@
// about configuring polkit.
polkit.addAdminRule(function(action, subject) {
- return ["unix-group:wheel"];
+ return ["unix-user:0"];
});

827
polkit.changes Normal file
View File

@ -0,0 +1,827 @@
-------------------------------------------------------------------
Wed Mar 29 13:37:25 UTC 2023 - Johannes Segitz <jsegitz@suse.com>
- Change permissions for rules folders (bsc#1209282)
-------------------------------------------------------------------
Wed Nov 09 07:39:53 CET 2022 - aschnell@suse.com
- read actions also from /etc/polkit-1/actions (jsc#PED-1405)
added polkit-actions-in-etc.patch
-------------------------------------------------------------------
Thu Sep 15 13:26:34 UTC 2022 - Marcus Meissner <meissner@suse.com>
- obsolete libpolkit0 also from baselibs.
-------------------------------------------------------------------
Tue Aug 9 06:11:08 UTC 2022 - Luciano Santos <luc14n0@opensuse.org>
- Update to version 121:
+ Addition of duktape as a JS engine backend.
+ Other small fixes and improvements. For more details, visit:
gitlab.freedesktop.org/polkit/polkit/-/blob/121/NEWS.md
+ Updated translations.
- Drop merged-upstream patches:
+ CVE-2021-4034-pkexec-fix.patch;
+ 0001-CVE-2021-4115-GHSL-2021-077-fix.patch;
+ duktape-support.patch;
+ pkexec.patch.
- Replace Intltool with Gettext as a build requirement following
the migration from last release (0.120).
- Add Meson as a build requirement while dropping Libtool and
replace all Autotools macros with Meson ones. And pass the
following options to Meson: session_tracking=libsystemd-login;
systemdsystemunitdir=%{_unitdir}; os_type=suse;
pam_module_dir=%{_pam_moduledir}; pam_prefix=%{_pam_vendordir};
examples=true; tests=true; gtk_doc=true; man=true and
js_engine=duktape.
- Drop no longer needed Libtool as a build requirement, following
Autotools replacement.
- Add explicit pkgconfig module build requirements for glib-2.0 and
gobject-2.0 that are searched by the build scripts. They were
already being pulled by their siblings [pkgconfig(gio-2.0) and
pkgconfig(gio-unix-2.0)].
- Drop conditional macro, which was wrapping "BuildArch: noarch"
for the doc subpackage, based on long gone EOLed (open)SUSE
release (11.2).
- Add missing 'Requires(post): permissions' for the pkexec
subpackage.
- Add python3-dbus-python and python3-python-dbusmock as build
requirements in order to run test in the check section.
- Add polkit-fix-pam-prefix.patch to use the value of pam_prefix
Meson option, like it was designed to, rather than hard-coded
path for pam configuration files.
- Remove unneeded executable bit from 50-default.rules file.
-------------------------------------------------------------------
Mon Aug 8 07:28:25 UTC 2022 - Thorsten Kukuk <kukuk@suse.com>
- Use %_pam_vendordir
-------------------------------------------------------------------
Wed Aug 3 12:03:30 UTC 2022 - Marcus Meissner <meissner@suse.com>
- add split-provides for polkit:/usr/bin/pkexec. (bsc#1202070)
-------------------------------------------------------------------
Mon Jul 18 09:38:28 UTC 2022 - Marcus Meissner <meissner@suse.com>
- split out pkexec into seperate package to make system hardening
easier (to avoid installing it jsc#PED-132 jsc#PED-148).
-------------------------------------------------------------------
Tue Feb 22 10:48:15 UTC 2022 - Marcus Meissner <meissner@suse.com>
- Fixed denial of service via file descriptor leak (bsc#1195542 CVE-2021-4115)
0001-CVE-2021-4115-GHSL-2021-077-fix.patch
-------------------------------------------------------------------
Wed Jan 26 11:44:35 UTC 2022 - Fabian Vogt <fvogt@suse.com>
- Switch from mozjs to duktape:
* Add duktape-support.patch
-------------------------------------------------------------------
Tue Jan 25 18:15:16 UTC 2022 - Marcus Meissner <meissner@suse.com>
- Fixed pkexec Local Privilege Escalation aka pwnkit (CVE-2021-4034 bsc#1194568)
CVE-2021-4034-pkexec-fix.patch
-------------------------------------------------------------------
Mon Dec 6 10:27:20 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 0.120:
* transition from Intltool to gettext
* several tarball, meson and pipeline fixups
* Portuguese translation
* Romanian translation
* meson build system added
* CVE-2021-3560 mitigation
* properties in text listener
* typos fixups
* Update Hungarian translation
- drop CVE-2021-3560.patch (upstream)
-------------------------------------------------------------------
Wed Oct 20 15:12:07 UTC 2021 - Marcus Meissner <meissner@suse.com>
- fork libpolkit0 package into libpolkit-agent-1-0 and libpolkit-gobject-1-0
as mandated. bsc#1191781
-------------------------------------------------------------------
Sun Jul 18 12:16:13 UTC 2021 - Callum Farmer <gmbr3@opensuse.org>
- Change to using systemd-sysusers
- Remove unneeded shadow dependency, no longer required due to
systemd-sysusers
- Fix 50-default.rules file-parent-ownership-mismatch warning
- Remove --with-pic, no effect with --disable-static
-------------------------------------------------------------------
Wed Jul 7 08:15:04 UTC 2021 - Stefan Schubert <schubi@suse.com
- Move /etc/polkit-1/rules.d/50-default.rules to
/usr/share/polkit-1/rules.d/50-default.rules. The first location
is only for admin changes.
-------------------------------------------------------------------
Wed Jun 9 07:09:16 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
- Fix verifyscript: the path to the binary was wrongly defined as
%{_libexecdir}/lib.
-------------------------------------------------------------------
Thu May 27 11:52:44 UTC 2021 - Marcus Meissner <meissner@suse.com>
- CVE-2021-3560: fixed a local privilege escalation using polkit_system_bus_name_get_creds_sync()
(bsc#1186497)
CVE-2021-3560.patch
-------------------------------------------------------------------
Thu Mar 11 22:21:07 UTC 2021 - Thorsten Kukuk <kukuk@suse.com>
- Move /etc/dbus-1/system.d to /usr/share/dbus-1/system.d, the
first location is only for admin changes
- Move pam configuration to /usr/etc/pam.d
-------------------------------------------------------------------
Mon Jan 4 09:51:04 UTC 2021 - Matthias Gerstner <matthias.gerstner@suse.com>
move to libexec dir is still not complete:
- add polkit-adjust-libexec-path.patch: There is another hard coded reference
of lib/ in the code that this patch addresses.
- also adjust invocation of %set_permissions and %verify_permissions to new
libexec dir location.
-------------------------------------------------------------------
Tue Dec 29 08:39:01 UTC 2020 - Matthias Gerstner <matthias.gerstner@suse.com>
- also set libprivdir during build, otherwhise systemd and D-Bus service files
contain the wrong path and we'll get runtime errors.
-------------------------------------------------------------------
Mon Dec 28 12:26:34 UTC 2020 - Matthias Gerstner <matthias.gerstner@suse.com>
- Install private binaries into libexec instead of into lib. For this an
override of the custom libprivdir variable is necessary, because upstream
explicitly moved away from libexecdir via upstram commit
6fbcc6cd839680fcefd81c4a43676e7c031c9859.
-------------------------------------------------------------------
Fri Oct 23 08:19:06 UTC 2020 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 0.118:
+ Updated dependency to mozjs78.
+ Tarball fixes.
- Replace pkgconfig(mozjs-68) for pkgconfig(mozjs-78)
BuildRequires following upstreams port.
-------------------------------------------------------------------
Fri Jul 31 11:39:38 UTC 2020 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 0.117:
+ Activated Gitlab CI.
+ Updated dependency to mozjs68.
+ Memory management fixes.
+ Updated translations.
- Replace pkgconfig(mozjs-60) for pkgconfig(mozjs-68)
BuildRequires following upstreams port.
-------------------------------------------------------------------
Fri Nov 29 10:36:53 UTC 2019 - Bjørn Lie <bjorn.lie@gmail.com>
- Fix usage of libexecdir instead of prefix/lib where applicable.
-------------------------------------------------------------------
Tue Oct 8 12:41:44 UTC 2019 - Marcus Meissner <meissner@suse.com>
- polkit-keyinit.patch: add pam_keyinit to the polkit configuration (bsc#1144053)
-------------------------------------------------------------------
Wed May 29 07:57:26 UTC 2019 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 0.116:
+ Leaking zombie child processes.
+ Possible resource leak found by static analyzer.
+ Output messages tuneup.
+ Sanity fixes.
+ pkttyagent tty echo disabled on SIGINT.
+ HACKING: add link to Code of Conduct.
+ polkitbackend: comment typos fix.
+ configure.ac: fix detection of systemd with cgroups v2.
+ CVE-2018-19788 High UIDs overflow fix.
+ CVE-2019-6133 Slowfork vulnerability fix.
+ Allow unset process-uid.
+ Port the JS authority to mozjs-60.
+ Use JS_EncodeStringToUTF8.
+ Updated translations.
- Replace pkgconfig(mozjs-52) with pkgconfig(mozjs-60)
BuildRequires following upstreams changes.
- Drop patches fixed upstream:
+ polkit-fix-possible-resource-leak.patch
+ polkit-fix-leaking-zombie-child-processes.patch
+ polkit-CVE-2018-19788.patch
- Refresh patches with quilt.
-------------------------------------------------------------------
Fri May 10 14:44:20 UTC 2019 - Dominique Leuenberger <dimstar@opensuse.org>
- Use systemd_ordering instead of systemd_requires: strictly
speaking, polkit does not require systemd to be present. Just
that when we install on a system with systemd (e.g outside
containers) we would want systemd to be present before
installing polkit. Help also reduce a cycle without special hacks
in systemd.spec.
-------------------------------------------------------------------
Fri Apr 26 11:06:05 UTC 2019 - mvetter@suse.com
- bsc#1130588: Require shadow instead of old pwdutils
- User proper Requires(pre)/Requires(post) for permissions and
shadow
-------------------------------------------------------------------
Thu Dec 20 17:29:58 UTC 2018 - meissner@suse.com
- polkit-CVE-2018-19788.patch: Fixed handling of UIDs over MAX_UINT
(bsc#1118277 CVE-2018-19788)
-------------------------------------------------------------------
Fri Aug 17 07:56:08 UTC 2018 - bjorn.lie@gmail.com
- Add polkit-fix-possible-resource-leak.patch: Fix possible
resource leak found by static analyzer.
- Add polkit-fix-leaking-zombie-child-processes.patch: polkitd: fix
zombie not reaped when js spawned process timed out (fdo#106021).
-------------------------------------------------------------------
Wed Jul 11 10:48:37 UTC 2018 - meissner@suse.com
- Update to version 0.115:
- Fix CVE-2018-1116: Trusting client-supplied UID (bsc#1099031)
- jsauthority: pass "%s" format string to remaining report function
(obsoletes polkit-jsauthority-pass-format-string.patch)
-------------------------------------------------------------------
Mon Apr 9 22:38:39 UTC 2018 - bjorn.lie@gmail.com
- Update to version 0.114:
+ Port to mozjs 52, the latest version of the firefox JavaScript
engine.
+ Add gettext support for policy files.
+ Fixes for various memory leaks.
+ Updated translations.
- Update keyring with Ray Strode <halfline@gmail.com> public key.
- Drop with_systemd define and all conditionals and
polkit-no-systemd.patch and ConsoleKit BuildRequires, we only
support systemd now.
- Drop upstream fixed polkit-itstools.patch.
- Rebase pkexec.patch with quilt.
- Add gcc-c++ and pkgconfig(mozjs-52) BuildRequires: New
dependencies.
- Drop conditional pkgconfig(mozjs-17.0) and pkgconfig(mozjs185):
no longer supported.
- Drop autoconf and automake BuildRequires: They are implicit via
libtool BuildRequires.
- Replace glib2-devel and gobject-introspection-devel with their
pkgconfig counterparts: pkgconfig(gio-unix-2.0),
pkgconfig(gmodule-2.0) and pkgconfig(gobject-introspection-1.0).
- Add polkit-jsauthority-pass-format-string.patch: jsauthority:
pass "%s" format string to remaining report function, patch from
upstream git, adding missed commit (bgo#105865).
- Drop polkit-revert-session-magic.patch: Upstream systemd bug is
since a long time fixed (gh#systemd#58) (boo#954139).
-------------------------------------------------------------------
Thu Mar 1 11:23:00 UTC 2018 - schwab@suse.de
- pkexec.patch: pkexec: allow --version and --help even if not setuid
-------------------------------------------------------------------
Wed Feb 28 16:38:33 UTC 2018 - dimstar@opensuse.org
- Modernize spec-file by calling spec-cleaner
-------------------------------------------------------------------
Tue Aug 15 12:20:52 UTC 2017 - dimstar@opensuse.org
- Add polkit-itstools.patch: Add gettext support for .policy files.
-------------------------------------------------------------------
Tue Jun 13 15:25:58 UTC 2017 - lnussel@suse.de
- Use gettext as fallback to get potential distro translations for
polkit actions. Similar mechnism as used for desktop file
translations. That way it's possible to use weblate to add
additional translations that are not provided by upstream
(polkit-gettext.patch).
-------------------------------------------------------------------
Wed Jun 8 11:13:43 UTC 2016 - fbui@suse.com
- Use pkgconfig() instead of requiring systemd package names directly.
-------------------------------------------------------------------
Tue Jun 7 15:25:00 UTC 2016 - fbui@suse.com
- systemd.pc is shipped by systemd main package (bsc#983167)
Strangely polkit wants systemd.pc to detect that the target system
is running systemd even if its configured to build systemd support...
-------------------------------------------------------------------
Thu Nov 26 16:26:09 UTC 2015 - meissner@suse.com
- polkit-revert-session-magic.patch: revert a session detection change
that could lead to sessions not being detected as active due to
a systemd bug. bsc#954139
-------------------------------------------------------------------
Thu Aug 6 21:26:18 UTC 2015 - antoine.belvire@laposte.net
- Update to 0.113:
* Fix CVE-2015-4625
* Fix CVE-2015-3256
* Fix CVE-2015-3255
* Fix CVE-2015-3218
* On systemd-213 and later, the “active” state is shared across
all sessions of an user, instead of being tracked separately
* pkexec: when not given a program to execute, runs the users
shell by default
- Remove polkit-no-kded-leak.patch (upstreamed)
-------------------------------------------------------------------
Mon Jan 12 13:21:20 UTC 2015 - tchvatal@suse.com
- Try to fix kded leaking due to powerdevil exposing this issue in
polkit: (bsc#912889)
* polkit-no-kded-leak.patch
-------------------------------------------------------------------
Tue Dec 9 16:23:50 UTC 2014 - meissner@suse.com
- Added gpg signature and keyring with David Zeuthen and Miloslav Trmac
ids.
-------------------------------------------------------------------
Fri Sep 27 08:16:34 UTC 2013 - toms@opensuse.org
- Fixed URL
-------------------------------------------------------------------
Thu Sep 19 01:13:08 UTC 2013 - hrvoje.senjan@gmail.com
- Update to 0.112
+ polkitunixprocess: Deprecate racy APIs
+ pkcheck: Support --process=pid,start-time,uid syntax too
(CVE-2013-4288)
+ Use GOnce for interface type registration
+ Add czech translation po file to distribution
+ Update the czech once more with newest pot file
-------------------------------------------------------------------
Fri Jul 5 11:50:44 UTC 2013 - dimstar@opensuse.org
- On openSUSE 13.1+, switch from mozjs185 to mozjs-17.0 by:
+ Conditionally BuildRequire pkgconfig(mozjs-17.0).
- Drop libmozjs185-1_0 Recommends: the library is actually required
and auto-detected as such by rpm (from 0.111 changes: "The
JavaScript interpreter is now mandatory").
-------------------------------------------------------------------
Fri Jun 14 20:34:39 UTC 2013 - hrvoje.senjan@gmail.com
- Update to 0.111
+ Both js185 and mozjs17 versions of SpiderMonkey are supported
+ The JavaScript interpreter is now mandatory
+ Fixed various memory leaks
+ Respect SUID_CFLAGS and SUID_LDFLAGS
+ Set process environment from pam_getenvlist()
+ Fix the build with automake 1.13
- Drop polkit-suid_flags.patch and automake-113.patch, those
patches are included in this release
-------------------------------------------------------------------
Thu Apr 11 01:17:21 UTC 2013 - hrvoje.senjan@gmail.com
- Add automake-113.patch, fixes build with automake-1.13
-------------------------------------------------------------------
Mon Feb 18 19:47:33 UTC 2013 - gber@opensuse.org
- Recommend libmozjs185-1_0 which is dlopen'ed and required for JS
rules
-------------------------------------------------------------------
Mon Jan 14 15:51:20 UTC 2013 - hrvoje.senjan@gmail.com
- Update to 0.110
+ Set XAUTHORITY environment variable if is unset
+ Use mutex and condition variables properly
+ Build fixes.
- Changes from version 0.109:
+ Include gmodule-2.0 to avoid linker errors
+ Don't require libmozjs185 devel packages for polkit rules
to work
- Drop polkit-link-gmodule.patch and polkit-libmozjs.patch, those
are merged upstream
-------------------------------------------------------------------
Wed Jan 9 14:08:57 UTC 2013 - saschpe@suse.de
- Only mark the following files as %config, not %config(noreplace):
+ %{_sysconfdir}/dbus-1/system.d/org.freedesktop.PolicyKit1.conf
+ %{_sysconfdir}/pam.d/polkit-1
+ %{_sysconfdir}/polkit-1/rules.d/50-default.rules
PolicyKit's own config files should only be changed for good reason
and we want to prefer openSUSE's defaults (you still get an .rpmsafe
file)
-------------------------------------------------------------------
Mon Dec 10 07:45:47 UTC 2012 - dimstar@opensuse.org
- Add polkit-libmozjs.patch: dlopen libmozjs185.so.1.0 instead of
libmozjs185.so, which is packaged in the -devel package
(bnc#793562)
-------------------------------------------------------------------
Thu Nov 15 21:31:19 UTC 2012 - dimstar@opensuse.org
- Update to version 0.108:
+ PolkitAgent: Avoid crashing if initializing the server object
fails
+ Fall back to authenticating as uid 0 if the list of admin
identities is empty
+ Dynamically load libmozjs185.so and cope with it not being
available
+ docs: mention the audience for authorization rules
+ build: Fix .gir generation for parallel make
- Only conditionally Require ConsoleKit when with_systemd is 0:
systemd support obsoletes ConsoleKit.
- Add polkit-link-gmodule.patch: Link against gmodule-2.0.
- Change libpolkit0 to require polkit >= %version instead of the
exact version. This will ease upgrade problems should there ever
be a soname bump of libpolkit0.
-------------------------------------------------------------------
Wed Nov 14 09:26:14 UTC 2012 - dimstar@opensuse.org
- Enable systemd inetegration (change with_systemd to 1): As an
agreed target for 12.3, systemd integration will be enabled.
-------------------------------------------------------------------
Thu Nov 8 21:34:15 UTC 2012 - aj@suse.de
- Add pwdutils to prereq for groupadd and useradd.
-------------------------------------------------------------------
Thu Sep 27 07:55:23 UTC 2012 - vuntz@opensuse.org
- Add polkit-no-systemd.patch: this patch, only applied when not
building systemd support, removes the systemd service reference
from the dbus .service file. This is needed as the systemd
.service file does not get installed in that case and dbus gets
confused because it expects it.
- Make %{_datadir}/polkit-1/rules.d and
%{_sysconfdir}/polkit-1/rules.d owned by user polkitd, as those
directories have 0700 as permissions.
- Those two changes should fix polkit so it can start.
Fix bnc#782395.
-------------------------------------------------------------------
Tue Sep 25 09:05:02 UTC 2012 - vuntz@opensuse.org
- Use %{_localstatedir}/lib/polkit for $HOME of polkit user,
instead of %{_libexecdir}/polkit-1. The directory is manually
created in %install.
-------------------------------------------------------------------
Fri Sep 14 18:20:06 UTC 2012 - vuntz@opensuse.org
- Update to version 0.107:
+ Try harder to look up the right localization
+ Introduce a polkit.Result enumeration for authorization rules
+ pkexec: add support for argv1 annotation and mention
shebang-wrappers
+ doc: update guidance on situations where there is no polkit
authority
- Changes from version 0.106:
+ Major change: switch from .pkla files (keyfile-format) to
.rules files (JavaScript)
+ Nuke polkitbackend library, localauthority backend and
extension system
+ Run polkitd as an unprivileged user
+ Add a systemd .service file
+ Several other code changes.
+ Updated documentation.
- Changes from version 0.105:
+ Add pkttyagent(1) helper
+ Make it possible to influence agent registration with an a{sv}
parameter
+ Several other code changes.
- Add pkgconfig(mozjs185) BuildRequires: new dependency for the
authority backend.
- Rebase polkit-no-wheel-group.patch: the admin configuration is
now in a .rules file.
- Rebase polkit-suid_flags.patch.
- Explicitly pass --enable-libsystemd-login or
--disable-libsystemd-login, depending on whether we build systemd
support.
- Add a %pre script to create the polkitd group and user, as
polkitd now run as an unprivileged user.
-------------------------------------------------------------------
Wed Aug 22 15:52:30 UTC 2012 - meissner@suse.com
- also use -z now for binary hardening
-------------------------------------------------------------------
Wed Jun 13 20:54:29 CEST 2012 - vuntz@opensuse.org
- Package /etc/polkit-1/localauthority and its subdirectories. They
were forgotten because they were empty, but people might need
them to put .pkla files.
-------------------------------------------------------------------
Fri Feb 24 12:11:04 UTC 2012 - vuntz@opensuse.org
- Change the way we pass -fpie/-pie:
+ Drop polkit-pie.patch: this was not upstreamable.
+ Add polkit-suid_flags.patch: respect SUID_CFLAGS/SUID_LDFLAGS
when building the suid binaries (pkexec and
polkit-agent-helper-1).
+ Add autoconf, automake and libtool BuildRequires, and call
autoreconf, for the new patch.
+ Set SUID_CFLAGS to -fPIE and SUID_LDFLAGS to -pie in %build.
+ Pass --with-pic to configure instead of changing CFLAGS to
contain -fPIC.
-------------------------------------------------------------------
Tue Feb 7 14:39:43 UTC 2012 - dlovasko@suse.com
- fixed bnc#743145 - added -fpie/-pie flags to compilation and linking of polkit-agent-helper and pkexec
-------------------------------------------------------------------
Mon Jan 9 09:33:30 UTC 2012 - vuntz@opensuse.org
- Split typelib file into typelib-1_0-Polkit-1_0 subpackage.
- Add typelib-1_0-Polkit-1_0 Requires to devel subpackage.
- Add explicit libpolkit0 Requires to devel subpackage: it was
missing before.
- Remove explicit glib2-devel Requires from devel subpackage: it
will automatically be added the pkgconfig() way.
- Improve summary of libpolkit0 subpackage.
-------------------------------------------------------------------
Wed Jan 4 22:03:54 UTC 2012 - crrodriguez@opensuse.org
- A quick test reveals that the systemd backend does not
integrate very well with packages yet, revert.
-------------------------------------------------------------------
Wed Jan 4 21:02:38 UTC 2012 - crrodriguez@opensuse.org
- Previous update missed systemd-devel in buildrequires
without it no systemd support is built
-------------------------------------------------------------------
Wed Jan 4 13:52:09 UTC 2012 - vuntz@opensuse.org
- Update to version 0.104:
+ Add optional systemd support
+ Add netgroup support (fdo#43610)
+ Add unit tests (fdo#43608)
- Changes from version 0.103:
+ Mistype in DBus object: PoliycKit1 -> PolicyKit1
+ Add support for the org.freedesktop.policykit.imply annotation
+ Add --no-debug option and use this for D-Bus activation
+ Add org.freedesktop.policykit.owner annotation (fdo#41025)
+ Default to AdminIdentities=unix-group:wheel for local authority
- Drop patches that were taken from upstream:
+ 0001-Add-support-for-the-org.freedesktop.policykit.imply-a.diff
+ 0002-Add-no-debug-option-and-use-this-for-D-Bus-activation.diff
+ 0003-Bug-41025-Add-org.freedesktop.policykit.owner-annotat.diff
- Add polkit-no-wheel-group.patch: do not allow the wheel group as
admin identity, and revert to only accept the root user for this.
-------------------------------------------------------------------
Wed Nov 2 10:30:03 UTC 2011 - lnussel@suse.de
- pick some patches from git to add support for
org.freedesktop.policykit.imply, disable debug spam and allow
unprivileged users to query authorizations (bnc#698250)
-------------------------------------------------------------------
Fri Sep 2 10:42:54 UTC 2011 - vuntz@opensuse.org
- Update to version 0.102:
+ pkexec:
- fdo#38769: Support running X11 apps
- Avoid time-of-check-to-time-of-use problems with parent
process
+ Fix backend crash if a .policy file does not specify <message>
+ Fix multi-line pam prompt handling
+ Don't show diagnostic messages intended for the administrator
to the end user
+ PolkitUnixProcess:
- Clarify that the real uid is returned, not the effective one
- Record the uid of the process
+ Backend: Use polkit_unix_process_get_uid() to get the owner of
a process
+ Introspection fixes:
- Add --c-include to the gir files
- Specify exported pkg-config files in GIRs
+ Build fix.
- Drop polkit-CVE-2011-1485-1.patch, polkit-CVE-2011-1485-2.patch,
polkit-CVE-2011-1485-3.patch, polkit-CVE-2011-1485-4.patch: fixed
upstream.
- Remove service usage, following the new consensus on Factory
packaging.
-------------------------------------------------------------------
Wed Aug 10 12:20:39 UTC 2011 - dimstar@opensuse.org
- BuildIgnore ruby, which is being dragged in via indirect
dependencies by gtk-doc for one of the helpers, which we do not
need during the build of polkit. Not dragging ruby in resolves a
build-cycle.
-------------------------------------------------------------------
Thu May 5 19:35:05 CEST 2011 - vuntz@opensuse.org
- Use %set_permissions instead of deprecated %run_permissions in
%post.
- Add permissions PreReq, which was missing before.
-------------------------------------------------------------------
Tue Apr 26 21:19:32 CEST 2011 - kay.sievers@novell.com
- use LGPLv2.1+ in spec file
-------------------------------------------------------------------
Tue Apr 26 18:24:01 CEST 2011 - kay.sievers@novell.com
- stat race condition (CVE-2011-1485) (bnc#688788)
-------------------------------------------------------------------
Wed Apr 6 15:40:51 UTC 2011 - fcrozat@novell.com
- Remove PolkitAgent-1.0.typelib from main package, it is in
library package.
-------------------------------------------------------------------
Wed Mar 9 13:54:11 UTC 2011 - coolo@novell.com
- update to 0.101:
* tons of bug fixes, see NEWS
-------------------------------------------------------------------
Wed Nov 10 15:04:36 UTC 2010 - coolo@novell.com
- fix file list
-------------------------------------------------------------------
Thu Sep 16 09:34:50 CEST 2010 - vuntz@opensuse.org
- Update to version 0.99:
+ Remove duplicate definitions of enumeration types
+ Fix (correct) GCC warning about possibly-uninitialized variable
+ Fix another GCC uninitialized variable warning
+ fdo#29816: Install polkitagentenumtypes.h
- Drop polkit-install-missing-header.patch: fixed upstream.
-------------------------------------------------------------------
Thu Aug 26 10:04:44 CEST 2010 - vuntz@opensuse.org
- Update to version 0.98:
+ Fix scanning of unix-process subjects
+ Add textual authentication agent and use it in pkexec(1)
+ Fix ConsoleKit interaction bug
+ pkexec: add --disable-internal-agent option
+ pkcheck: add --enable-internal-agent option
+ Fix wording in pkexec(1) man page
+ Various doc cleanups
- Changes from version 0.97:
+ Port to GDBus
+ Add shadow authentication support
+ Remove Lock Down functionality
+ fdo#26982: pkexec information disclosure vulnerability
+ Make polkitd accept --replace and gracefully handle SIGINT
+ Implement polkit_temporary_authorization_new_for_gvariant()
+ Make NameOwnerChanged a private impl detail of the interactive
authority
+ Add a GPermission implementation
+ PolkitAuthority: Implement failable initialization
+ PolkitAuthority: Add g_return_if_fail() checks
+ Add g_return_if_fail() to all public API entry points
+ Use polkit_authority_get_sync() instead of deprecated
polkit_authority_get
+ PolkitBackend: Don't export unneeded convenience API
+ Update GI annotations
+ Don't dist org.freedesktop.ConsoleKit.xml.
+ Properly reference headers
+ fdo#29051: Configuration reload on every query
- Drop pkexec-information-disclosure.patch: fixed upstream.
- Add polkit-install-missing-header.patch to install a header that
should get installed.
- Remove eggdbus-devel BuildRequires.
- Build with introspection support: add gobject-introspection
BuildRequires and pass --enable-introspection to configure.
- Fix groups of all packages to be valid groups.
-------------------------------------------------------------------
Mon Jun 28 06:38:35 UTC 2010 - jengelh@medozas.de
- use %_smp_mflags
-------------------------------------------------------------------
Fri Apr 9 19:14:09 CEST 2010 - kay.sievers@novell.com
- fix pkexec information disclosure
(fdo#26982, CVE-2010-0750, bnc#593959)
-------------------------------------------------------------------
Mon Jan 18 14:20:11 CET 2010 - dmueller@suse.de
- add baselibs.conf
-------------------------------------------------------------------
Mon Jan 18 12:56:02 CET 2010 - kay.sievers@novell.com
- new upstream release 0.96
- Bug 25367 — Also read local authority configuration data from /etc
- Run the open_session part of the PAM stack in pkexec(1)
- Bug 25594 System logging
- Properly handle return value from getpwnam_r()
- Fix error message when no authentication agent is available
- Make pkexec(1) validate environment variables
- Make pkexec(1) use the syslogging facilities
- Save original cwd in pkexec(1) since it will change during the life-time
- Complain on stderr, not stdout
- Don't log authorization checks
-------------------------------------------------------------------
Wed Jan 6 18:22:23 CET 2010 - dmueller@suse.de
- update to 0.95:
The major change this release is that the lockdown feature has
been cleaned up in a way so it isn't specific to the local
authority. See the NEWS files for more details.
-------------------------------------------------------------------
Wed Dec 16 10:44:34 CET 2009 - jengelh@medozas.de
- Package documentation as noarch
-------------------------------------------------------------------
Wed Aug 19 23:22:44 CEST 2009 - vuntz@novell.com
- Add Requires on polkit to libpolkit0: all applications using
libpolkit0 will really need polkit to be installed to work
properly.
-------------------------------------------------------------------
Thu Aug 13 04:31:38 CEST 2009 - kay.sievers@novell.com
- new upstream release 0.94
- Allow unprivileged callers to check authorizations
- Don't spawn man(1) from a setuid program
- Add polkit.retains_authorization_after_challenge to authz result
- Ensure all fds except stdin/stdout/stderr are closed after exec(2)
- Be more careful when determining process start time
- Remove temporary authorization when the subject it applies to vanishes
- Generate GI gir and typelibs for libpolkit-gobject-1
- drop patches which are in the release now
- disable introspection
-------------------------------------------------------------------
Tue Aug 11 21:23:49 CEST 2009 - kay.sievers@novell.com
- add upstream patches:
polkit-close-stdfds.patch
polkit-no-man-spawn.patch
polkit-proc-stat-parse-fix.patch
- drop rpmlint patch
-------------------------------------------------------------------
Thu Aug 6 17:36:16 CEST 2009 - meissner@suse.de
- check for the right binary in verify_permisisons
-------------------------------------------------------------------
Thu Jul 30 17:32:41 CEST 2009 - coolo@novell.com
- disable suid bit for now to get software build on top
- split out libraries to follow shared library policy
-------------------------------------------------------------------
Tue Jul 21 03:20:55 CEST 2009 - kay.sievers@novell.com
- update to version 0.93
-------------------------------------------------------------------
Sun Jul 19 15:31:44 CEST 2009 - kay.sievers@novell.com
- initial import of polkit 0.92

656
polkit.keyring Normal file
View File

@ -0,0 +1,656 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.19 (GNU/Linux)
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
90w=
=4JY0
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
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
GhkqM9xxGDgEZrs+RQaMaWVpx+CDUB2HHlqkb4Chpxp/jTIUYasXe8KQDhU9F33g
fK9qGzlCi6UX+RS038fh2OMq8VF/t+iYVG1CE/48NXK53if0uBbvNAzZU/TNbOWf
2xHtoPRAZksaQimrLfrLyfN2agkFoHHcckjYSoKhmASA/EeRvMaleOC+o8NBKI8u
9NPXoegKhEB0VNPgHGTi7kOe3oHZmxkufptFqX+nbOmRz+5/Bj+htE+qI/Dq6Km9
ABHsmZE7m+CzHsbXenUceyvCGapFsJSyxou/5tZmiQIcBBABAgAGBQJT6SewAAoJ
EG7cfkpivEoVkMMP/jo3FBu9Z1IhhZD+e5lRE/vpRGoCOZwnwEvrVyUUSXwWQ+Ms
p+we8eEchhnRyCW/YBChRGA1LOr1S9VlFSb26ZBtRnI8rWwWpFKFGTRVON0wzOnX
1sqKzi388lenzsBT2q2Yurlb7ZJkQm+Spt4wyyLPY61dZt2XbTuuL7lslfwwCvNz
zzUmBrOXNkosCK1Dgqz79CIX+gj8HI8J/nu9esc+6khtJwKp5TcoGJz7LtqaBQrz
PWOldxCDD2nnMJTnNWPrhL8LbN+yUZl4g4SS4TNE6XY/aio8ugZCVdCsZssZwNCS
QBN/+vyt4IKTBtvjWLmrrl3D7iG025yx66Cov8cOMdkN9K/eOPj6eJjhfeH7qWal
RQhn0KKjwvfx3Q2py34YOCUEDFCZ1UUYIPjliCALORj+oYOcQjgn5jDQfYrY7cca
u3A+IEHUkIVfYIvMscJrOpsLhDE3LEwiGdrJP0JVcwqEh4Cizo5cc6tkv3nli0Vu
uEo9LBGwQzXYFaPCbHsr/ynUbiWL8ydJAnpTCYSVq6gXRmPtRx63+yLIOk/4cuJ3
tWBVHRkqn/5Q0HI7D10wBUcqVwkta8qAgN25F7IqV+/ZufDZdF+5N0f0hc9QJMGX
TKjTdYcXCrIhcIqHOL6ts88sRGsSMRBGe4Vb90X78t8VJofhk0lo7hmR67oiiQIc
BBABAgAGBQJUDwKdAAoJEPaFUazsAhFFv64P/1ZkrUlcPpU8brIMMAMQWNr5E5kt
JFkFWdeIJ2JVh8a+EnpDR9WiGpb2h8NbrSxSJmq9pOLXCG1bDM1CLqQvIosTyvoJ
sbU+mWctbBumrYay7YLhs5Bqkndq62TSHP00KT8s7LENCwQf+h8X+fBPARNcFWxL
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
QhjSwn7gMC27Yl+lK30=
=Tq/o
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=DnDa
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: fks.pgpkeys.eu
mQENBFtkaE8BCADL6NFIHYl5RDKRyDm2/igDWiveVFWzUZGJeBBkAcpZcstJK0mDxwWbcOwE
+XvMUux4HwZCymZb+5SctrHyQvS629BTbynfZv5JOIAKl1Hg24yklBGYJ1LX/4H140Y2cGTN
3xymGisSYMNF11Cngsw1qND8NJ6fqadHafn8s1gvphFkCs8LpoJgTBrLEUQZpnpSRcIP+/UR
2R/ErCkwE9erPHfksj+B+hGD6PKqeLPSvLq5F9L+axnMgH784QQADn3BaM2ZePtC+gbUYgsY
ra6jwsEsjZmd/nauVex2rB3MaRgiwTg6+cmDXgd5a0w2CPMFlQiWiamb7/UfCxsFRgs3ABEB
AAG0J0phbiBSeWJhciAoUmVkIEhhdCkgPGpyeWJhckByZWRoYXQuY29tPokBOAQTAQIAIgUC
W2RoTwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQjOswMP/c4lha5wf8C7+FoCIU
NE83GgnG4Vp7jJFgn1B8ea7Jvya0X37kHWBUueQv7F0M+3qUtVQNHDSIfehysiAtNncWh58V
n9JWohzvWTGnZ1bY8IeU/MxCrBrWaxqsjsWOPq1smtnIas7LLkn44oOlyOXDVOp/JOk4QxoO
gf6GIERpit/0dBNjFSkeL037ocB/f6WekG4MpYtp/U4gy3MAWhBKXxJUTgJFRSiLtGEdnUGW
wG8ZbulGRRO79rWg9ThvpPEEqZG/2bm4kWMlaaaDsJ9lbPA4rN0uU0ny3/2COwqKtpwrLvRE
duRcVG9vpnCl5zkFtNc00p2RRBrQJ/PLq2OdSrGMf0skhbkBDQRbZGhPAQgAxaVnvy+O0sUR
/P1e7CAQKg7jSXFoUIHVpT/F7Q2t3hs2I3wmQTAy92CVWDXJDDpN93VR6IJQzws0F7IV9+Js
xl4Hu6ELyaOpMD0QVb09s9C0s2nz88rn6WMoy0wuVJcB0h8aNzUBjRsgi94XTH44tlcVZj4q
/GbQaJy8kBNu5V6sAQg64h5xuU4tow8tkzL78bNOLeYXyEYOO+Dlt/879oxQca+dTHXr13NV
wKFqcduBIcsQZd5JnQFeXo+8XWpmeS/wwX0RW+J0mSYWvjP/fMeE7BIftbbolqr+HwwppVNP
ouFDPq/9bKmQs7USen6rOJ6uIqMhPkopgXXOle3EEQARAQABiQEfBBgBAgAJBQJbZGhPAhsM
AAoJEIzrMDD/3OJYmlMH/0NTd/lZ0jh0djRYlRcz0OIT9B/2gYmNoekEsciEliPS3WEN+M2s
kZM/L/lLFCbD4dOqlXqb84Yvch9iC/VzCEYCEs8Kz647H2mBnyHxxOKtgrXJpWhZoRzs9pzb
AVCEkl5+PjFRwhn7Nwpm/EG+02VgR9JC1ZdX28iN3a3axbLuI9RIZznRRL5Jr5ePMJ0nRvWY
HX4K+Wt5UhHuo1Kaj9Yn0UcTCj7WKznRjNtL6S4N4mS8OJwi8jZ8Rvb3GFCViEaVz/+ZNBaW
HGJO/6RB1aNr3SlD155eTM6H6v2lsNn4gpc7T3GL9AzEsuUef5mqo1EsO+OJeBrQv8vVybJx
GJ8=
=QrX7
-----END PGP PUBLIC KEY BLOCK-----

303
polkit.spec Normal file
View File

@ -0,0 +1,303 @@
#
# spec file for package polkit
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define _polkit_rulesdir %{_datadir}/polkit-1/rules.d
%define glib_br_version 2.30.0
%define run_tests 1
Name: polkit
Version: 121
Release: 0
Summary: PolicyKit Authorization Framework
License: LGPL-2.1-or-later
Group: System/Libraries
URL: https://www.freedesktop.org/wiki/Software/polkit/
Source0: https://www.freedesktop.org/software/polkit/releases/%{name}-%{version}.tar.gz
Source1: https://www.freedesktop.org/software/polkit/releases/%{name}-%{version}.tar.gz.sign
Source2: %{name}.keyring
Source3: system-user-polkitd.conf
Source99: baselibs.conf
# Upstream First - Policy:
# Never add any patches to this package without the upstream commit id
# in the patch. Any patches added here without a very good reason to make
# an exception will be silently removed with the next version update.
# PATCH-FIX-OPENSUSE polkit-no-wheel-group.patch vuntz@opensuse.org -- In openSUSE, there's no special meaning for the wheel group, so we shouldn't allow it to be admin
Patch0: polkit-no-wheel-group.patch
# PATCH-FIX-OPENSUSE polkit-gettext.patch lnussel@suse.de -- allow fallback to gettext for polkit action translations
# polkit-use-gettext-as-fallback.patch
Patch1: polkit-gettext.patch
# PATCH-FIX-OPENSUSE polkit-keyinit.patch meissner@ -- bsc#1144053 Please add "pam_keyinit.so" to the /etc/pam.d/polkit-1 configuration file
Patch3: polkit-keyinit.patch
# PATCH-FIX-OPENSUSE polkit-adjust-libexec-path.patch -- Adjust path to polkit-agent-helper-1 (bsc#1180474)
Patch4: polkit-adjust-libexec-path.patch
# PATCH-FIX-UPSTREAM polkit-fix-pam-prefix.patch luc14n0@opensuse.org -- Make
# intended use of pam_prefix meson option rather than hard-coded path
Patch5: polkit-fix-pam-prefix.patch
# Read actions also from /etc/polkit-1/actions
Patch6: polkit-actions-in-etc.patch
BuildRequires: gcc-c++
BuildRequires: gettext
BuildRequires: gtk-doc
BuildRequires: libexpat-devel
BuildRequires: meson >= 0.50
BuildRequires: pam-devel
BuildRequires: pkgconfig
BuildRequires: systemd-rpm-macros
BuildRequires: sysuser-tools
BuildRequires: pkgconfig(duktape) >= 2.2.0
BuildRequires: pkgconfig(gio-unix-2.0) >= %{glib_br_version}
BuildRequires: pkgconfig(glib-2.0) >= %{glib_br_version}
BuildRequires: pkgconfig(gmodule-2.0) >= %{glib_br_version}
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 0.6.2
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(systemd)
%if 0%{?run_tests}
#################################################################
# python3-dbus-python and python3-python-dbusmock are needed for
# test-polkitbackendjsauthority test:
BuildRequires: python3-dbus-python
BuildRequires: python3-python-dbusmock
#################################################################
%endif
# gtk-doc drags indirectyly ruby in for one of the helpers. This in turn causes a build cycle.
#!BuildIgnore: ruby
Requires: dbus-1
Requires: libpolkit-agent-1-0 = %{version}-%{release}
Requires: libpolkit-gobject-1-0 = %{version}-%{release}
Requires(post): permissions
%sysusers_requires
%systemd_ordering
%description
PolicyKit is a toolkit for defining and handling authorizations.
It is used for allowing unprivileged processes to speak to privileged
processes.
%package devel
Summary: Development files for PolicyKit
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}-%{release}
Requires: libpolkit-agent-1-0 = %{version}
Requires: libpolkit-gobject-1-0 = %{version}
Requires: pkgconfig
Requires: typelib-1_0-Polkit-1_0 = %{version}
%description devel
Development files for PolicyKit Authorization Framework.
%package -n pkexec
Summary: Pkexec component of polkit
Group: System/Libraries
Requires: %{name} = %{version}-%{release}
Requires(post): permissions
Provides: polkit:/usr/bin/pkexec
%description -n pkexec
This package contains the pkexec setuid root binary part of polkit.
%package doc
Summary: Development documentation for PolicyKit
Group: Development/Libraries/C and C++
BuildArch: noarch
%description doc
Development documentation for PolicyKit Authorization Framework.
%package -n libpolkit-agent-1-0
Summary: PolicyKit Authorization Framework -- Agent Library
Group: System/Libraries
Requires: %{name} >= %{version}
Obsoletes: libpolkit0 < %{version}-%{release}
%description -n libpolkit-agent-1-0
PolicyKit is a toolkit for defining and handling authorizations.
It is used for allowing unprivileged processes to speak to privileged
processes.
This package contains the agent library only.
%package -n libpolkit-gobject-1-0
Summary: PolicyKit Authorization Framework -- GObject Library
Group: System/Libraries
Requires: %{name} >= %{version}
Obsoletes: libpolkit0 < %{version}-%{release}
%description -n libpolkit-gobject-1-0
PolicyKit is a toolkit for defining and handling authorizations.
It is used for allowing unprivileged processes to speak to privileged
processes.
This package contains the gobject library only.
%package -n typelib-1_0-Polkit-1_0
Summary: PolicyKit Authorization Framework -- Introspection bindings
Group: System/Libraries
%description -n typelib-1_0-Polkit-1_0
PolicyKit is a toolkit for defining and handling authorizations.
It is used for allowing unprivileged processes to speak to privileged
processes.
This package provides the GObject Introspection bindings for PolicyKit.
%prep
%autosetup -p1 -n polkit-v.%{version}
%build
%meson \
-D session_tracking=libsystemd-login \
-D systemdsystemunitdir="%{_unitdir}" \
-D os_type=suse \
-D pam_module_dir="%{_pam_moduledir}" \
-D pam_prefix="%{_pam_vendordir}" \
-D examples=true \
-D tests=true \
-D gtk_doc=true \
-D man=true \
-D js_engine=duktape \
%{nil}
%meson_build
%sysusers_generate_pre %{SOURCE3} polkit system-user-polkitd.conf
%if 0%{?run_tests}
%check
%meson_test
%endif
%install
# install explicitly into libexec. upstream has some unflexible logic for
# this executable at the moment, but there is a PR# open to fix this:
# https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/63
# once this has been resolved upstream and we update to a new release we can
# remove this and also patch4 above.
#
# Additional note: Upstream turned down the MR above, preferring to stick to
# using ${prefix}/lib/polkit-1 and non-distro-configurable.
%meson_install
%find_lang polkit-1
# create $HOME for polkit user
install -d %{buildroot}%{_localstatedir}/lib/polkit
# We use /usr/share as prefix for the rules.d directory
mv %{buildroot}%{_sysconfdir}/polkit-1/rules.d/50-default.rules \
%{buildroot}%{_polkit_rulesdir}/50-default.rules
# Install the polkitd user creation file:
mkdir -p %{buildroot}%{_sysusersdir}
install -m0644 %{SOURCE3} %{buildroot}%{_sysusersdir}/
# create actions dir in /etc
mkdir %{buildroot}/%{_sysconfdir}/polkit-1/actions
%pre -f polkit.pre
%service_add_pre polkit.service
%preun
%service_del_preun polkit.service
%postun
%service_del_postun polkit.service
%post -n pkexec
%set_permissions %{_bindir}/pkexec
%post
%set_permissions %{_libexecdir}/polkit-1/polkit-agent-helper-1
%service_add_post polkit.service
%verifyscript -n pkexec
%verify_permissions -e %{_bindir}/pkexec
%verifyscript
%verify_permissions -e %{_libexecdir}/polkit-1/polkit-agent-helper-1
%post -n libpolkit-agent-1-0 -p /sbin/ldconfig
%postun -n libpolkit-agent-1-0 -p /sbin/ldconfig
%post -n libpolkit-gobject-1-0 -p /sbin/ldconfig
%postun -n libpolkit-gobject-1-0 -p /sbin/ldconfig
%files -n libpolkit-agent-1-0
%{_libdir}/libpolkit-agent-1.so.*
%files -n libpolkit-gobject-1-0
%{_libdir}/libpolkit-gobject-1.so.*
%files -n typelib-1_0-Polkit-1_0
%{_libdir}/girepository-1.0/Polkit-1.0.typelib
%{_libdir}/girepository-1.0/PolkitAgent-1.0.typelib
%files -f polkit-1.lang
%doc NEWS.md README.md
%license COPYING
%{_mandir}/man1/pkaction.1%{?ext_man}
%{_mandir}/man1/pkcheck.1%{?ext_man}
%{_mandir}/man1/pkttyagent.1%{?ext_man}
%{_mandir}/man8/polkitd.8%{?ext_man}
%{_mandir}/man8/polkit.8%{?ext_man}
%dir %{_datadir}/dbus-1
%dir %{_datadir}/dbus-1/system-services
%{_datadir}/dbus-1/system-services/org.freedesktop.PolicyKit1.service
%dir %{_datadir}/dbus-1/system.d
%{_datadir}/dbus-1/system.d/org.freedesktop.PolicyKit1.conf
%dir %{_datadir}/polkit-1
%{_datadir}/polkit-1/policyconfig-1.dtd
%dir %{_datadir}/polkit-1/actions
%{_datadir}/polkit-1/actions/org.freedesktop.policykit.policy
%attr(0750,root,polkitd) %dir %{_polkit_rulesdir}
%attr(0640,root,polkitd) %{_polkit_rulesdir}/50-default.rules
%{_pam_vendordir}/polkit-1
%dir %{_sysconfdir}/polkit-1
%attr(0750,root,polkitd) %dir %{_sysconfdir}/polkit-1/rules.d
%dir %{_sysconfdir}/polkit-1/actions
%{_bindir}/pkaction
%{_bindir}/pkcheck
%{_bindir}/pkttyagent
%dir %{_libexecdir}/polkit-1
%{_libexecdir}/polkit-1/polkitd
%verify(not mode) %attr(4755,root,root) %{_libexecdir}/polkit-1/polkit-agent-helper-1
# $HOME for polkit user
%dir %{_localstatedir}/lib/polkit
%{_sysusersdir}/system-user-polkitd.conf
%{_unitdir}/polkit.service
%files devel
%{_libdir}/libpolkit-agent-1.so
%{_libdir}/libpolkit-gobject-1.so
%{_libdir}/pkgconfig/polkit-agent-1.pc
%{_libdir}/pkgconfig/polkit-gobject-1.pc
%{_includedir}/polkit-1/
%{_bindir}/pk-example-frobnicate
%{_datadir}/gir-1.0/*.gir
%{_datadir}/polkit-1/actions/org.freedesktop.policykit.examples.pkexec.policy
%{_datadir}/gettext/its/polkit.its
%{_datadir}/gettext/its/polkit.loc
%files -n pkexec
%{_mandir}/man1/pkexec.1%{?ext_man}
%verify(not mode) %attr(4755,root,root) %{_bindir}/pkexec
%files doc
%doc %{_datadir}/gtk-doc/html/polkit-1/
%changelog

2
system-user-polkitd.conf Normal file
View File

@ -0,0 +1,2 @@
#Type Name ID GECOS Home directory Shell
u polkitd - "User for polkitd" /var/lib/polkit -