Accepting request 210135 from home:pwieczorkiewicz:branches:Base:System

Added udisks2-20131026-removable-devices-polkit-auth.patch. It adds polkit authorization variables for removable media, which allow restricting or granting access to removable media based on its type using polkit authorization rules (fate#312966 fdo#72122).

OBS-URL: https://build.opensuse.org/request/show/210135
OBS-URL: https://build.opensuse.org/package/show/Base:System/udisks2?expand=0&rev=36
This commit is contained in:
Dominique Leuenberger 2013-12-15 20:02:28 +00:00 committed by Git OBS Bridge
parent 13c4bc153a
commit ad118dd843
3 changed files with 88 additions and 1 deletions

View File

@ -0,0 +1,75 @@
Index: udisks-2.1.1/doc/html/udisks-polkit-actions.html
===================================================================
--- udisks-2.1.1.orig/doc/html/udisks-polkit-actions.html 2013-08-21 03:49:57.000000000 +0200
+++ udisks-2.1.1/doc/html/udisks-polkit-actions.html 2013-10-04 12:10:53.160542373 +0200
@@ -120,6 +120,14 @@
<td align="left">If the object is a drive (or a block device that is part of a drive), this is set to the string <span class="quote">“<span class="quote">true</span>”</span> only if the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.Removable" title='The "Removable" property'>Drive:Removable</a> property is <code class="constant">TRUE</code>.</td>
</tr>
<tr>
+<td align="left"><em class="parameter"><code>drive.removable.bus</code></em></td>
+<td align="left">If the object is a drive (or a block device that is part of a drive), this is set to the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.ConnectionBus" title='The "ConnectionBus" property'>Drive:ConnectionBus</a> property. This variable is set only if the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.Removable" title='The "Removable" property'>Drive:Removable</a> property is <code class="constant">TRUE</code>.</td>
+</tr>
+<tr>
+<td align="left"><em class="parameter"><code>drive.removable.media</code></em></td>
+<td align="left">If the object is a drive (or a block device that is part of a drive), this is set to the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.MediaCompatibility" title='The "MediaCompatibility" property'>Drive:MediaCompatibility</a> property. This variable is set only if the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.Removable" title='The "Removable" property'>Drive:Removable</a> property is <code class="constant">TRUE</code>.</td>
+</tr>
+<tr>
<td align="left"><em class="parameter"><code>id.type</code></em></td>
<td align="left">If the object is a block device, this property is set to the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Block.html#gdbus-property-org-freedesktop-UDisks2-Block.IdType" title='The "IdType" property'>Block:IdType</a> property.</td>
</tr>
Index: udisks-2.1.1/doc/udisks2-docs.xml
===================================================================
--- udisks-2.1.1.orig/doc/udisks2-docs.xml 2013-07-23 08:51:10.000000000 +0200
+++ udisks-2.1.1/doc/udisks2-docs.xml 2013-10-04 12:01:27.720575739 +0200
@@ -248,6 +248,14 @@
<entry><parameter>drive.removable</parameter></entry>
<entry>If the object is a drive (or a block device that is part of a drive), this is set to the string <quote>true</quote> only if the value of the <link linkend="gdbus-property-org-freedesktop-UDisks2-Drive.Removable">Drive:Removable</link> property is <constant>TRUE</constant>.</entry>
</row>
+ <row>
+ <entry><parameter>drive.removable.bus</parameter></entry>
+ <entry>If the object is a drive (or a block device that is part of a drive), this is set to the value of the <link linkend="gdbus-property-org-freedesktop-UDisks2-Drive.ConnectionBus">Drive:ConnectionBus</link> property. This variable is set only if the value of the <link linkend="gdbus-property-org-freedesktop-UDisks2-Drive.Removable">Drive:Removable</link> property is <constant>TRUE</constant>.</entry>
+ </row>
+ <row>
+ <entry><parameter>drive.removable.media</parameter></entry>
+ <entry>If the object is a drive (or a block device that is part of a drive), this is set to the value of the <link linkend="gdbus-property-org-freedesktop-UDisks2-Drive.MediaCompatibility">Drive:MediaCompatibility</link> property. This variable is set only if the value of the <link linkend="gdbus-property-org-freedesktop-UDisks2-Drive.Removable">Drive:Removable</link> property is <constant>TRUE</constant>.</entry>
+ </row>
<row>
<entry><parameter>id.type</parameter></entry>
Index: udisks-2.1.1/src/udisksdaemonutil.c
===================================================================
--- udisks-2.1.1.orig/src/udisksdaemonutil.c 2013-07-23 08:51:10.000000000 +0200
+++ udisks-2.1.1/src/udisksdaemonutil.c 2013-10-04 11:37:33.176660391 +0200
@@ -637,7 +637,31 @@ udisks_daemon_util_check_authorization_s
_safe_polkit_details_insert (details, "drive.model", udisks_drive_get_model (drive));
_safe_polkit_details_insert (details, "drive.revision", udisks_drive_get_revision (drive));
if (udisks_drive_get_removable (drive))
- polkit_details_insert (details, "drive.removable", "true");
+ {
+ const gchar *const *media_compat;
+ GString *media_compat_str;
+ const gchar *sep = ",";
+
+ polkit_details_insert (details, "drive.removable", "true");
+ _safe_polkit_details_insert (details, "drive.removable.bus", udisks_drive_get_connection_bus (drive));
+
+ media_compat_str = g_string_new (NULL);
+ media_compat = udisks_drive_get_media_compatibility (drive);
+ if (media_compat)
+ {
+ guint i;
+
+ for (i = 0; media_compat[i] && strlen(media_compat[i]); i++)
+ {
+ if (i)
+ g_string_append (media_compat_str, sep);
+ g_string_append (media_compat_str, media_compat[i]);
+ }
+ }
+
+ _safe_polkit_details_insert (details, "drive.removable.media", media_compat_str->str);
+ g_string_free (media_compat_str, TRUE);
+ }
}
if (block != NULL)

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Tue Dec 10 08:33:56 UTC 2013 - pwieczorkiewicz@suse.com
- Added udisks2-20131026-removable-devices-polkit-auth.patch.
It adds polkit authorization variables for removable media, which
allow restricting or granting access to removable media based on
its type using polkit authorization rules (fate#312966 fdo#72122).
-------------------------------------------------------------------
Sun Nov 24 04:06:19 UTC 2013 - crrodriguez@opensuse.org

View File

@ -24,9 +24,11 @@ Version: 2.1.1
Release: 0
Summary: Disk Management Service, version 2
License: GPL-2.0+
Group: System/Daemons
Group: System Environment/Daemons
Url: http://www.freedesktop.org/wiki/Software/udisks
Source: http://udisks.freedesktop.org/releases/%{_name}-%{version}.tar.bz2
# PATCH-FEATURE-UPSTREAM udisks2-20131026-removable-devices-polkit-auth.patch fate#312966 fdo#72122 pwieczorkiewicz@suse.de -- Add polkit authorization variables for removable media. It allows restricting or granting access to removable media using polkit authorization rules.
Patch1: udisks2-20131026-removable-devices-polkit-auth.patch
# Needed to build the man pages
BuildRequires: docbook-xsl-stylesheets
BuildRequires: gobject-introspection-devel
@ -46,6 +48,7 @@ BuildRequires: pkgconfig(udev)
# sgdisk is called by udisksd to modify the partition tables... thus a needed tool.
Requires: gptfdisk
Recommends: %{name}-lang
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{?systemd_requires}
@ -93,6 +96,7 @@ for managing disks and storage devices.
%lang_package
%prep
%setup -q -n %{_name}-%{version}
%patch1 -p1
%build
export V=1