summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-04-21 22:41:22 +0200
committerCarl Hetherington <cth@carlh.net>2021-04-22 15:42:11 +0200
commit4dab2ee8e05acdd56b39bb6edd4e80f795d7e0d9 (patch)
tree8d59e315b75bbe308b2b80484d1bee8729ea0618
parentf68217c17dddafdf9453e3bfdc6d7acb9430736e (diff)
Install polkit policy file (#1970).
-rw-r--r--cscript5
-rw-r--r--platform/linux/com.dcpomatic.write-drive.policy15
-rw-r--r--platform/linux/wscript2
3 files changed, 22 insertions, 0 deletions
diff --git a/cscript b/cscript
index 7dba91447..ea8056c5d 100644
--- a/cscript
+++ b/cscript
@@ -341,6 +341,7 @@ def make_spec(filename, version, target, options, requires=None):
print('%%{_datadir}/locale/%s/LC_MESSAGES/libdcpomatic2.mo' % l, file=f)
print('%{_datadir}/libdcp/tags/*', file=f)
print('%{_datadir}/libdcp/xsd/*', file=f)
+ print('%{_datadir}/polkit-1/actions/com.dcpomatic.write-drive.policy', file=f)
print('', file=f)
print('%prep', file=f)
print('rm -rf $RPM_BUILD_DIR/dcpomatic-%s' % version, file=f)
@@ -651,6 +652,10 @@ def make_appimage(target, nice_name, internal_name, version):
target.command('cp -r %s/share/dcpomatic2 build/%s.AppDir/usr/share/' % (target.directory, nice_filename))
target.command('cp -r %s/share/libdcp/xsd build/%s.AppDir/usr/share/libdcp/' % (target.directory, nice_filename))
target.command('cp -r %s/share/libdcp/tags build/%s.AppDir/usr/share/libdcp/' % (target.directory, nice_filename))
+ if internal_name == 'dcpomatic2_disk':
+ target.command('mkdir -p build/%s.AppDir/usr/share/polkit-1/actions', nice_filename)
+ target.command('cp %s/share/polkit-1/actions/com.dcpomatic.write-drive.policy build/%s.AppDir/usr/share/polkit-1/actions' % (target.directory, nice_filename))
+
with open('build/%s.AppDir/AppRun' % nice_filename, 'w') as f:
print('#!/bin/bash', file=f)
print('export PATH=$APPDIR/usr/bin:$PATH', file=f)
diff --git a/platform/linux/com.dcpomatic.write-drive.policy b/platform/linux/com.dcpomatic.write-drive.policy
new file mode 100644
index 000000000..4031300a0
--- /dev/null
+++ b/platform/linux/com.dcpomatic.write-drive.policy
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
+<policyconfig>
+ <vendor>DCP-o-matic</vendor>
+ <vendor_url>https://dcpomatic.com</vendor_url>
+ <action id="com.dcpomatic.write-drive">
+ <description gettext-domain="dcpomatic">Format a drive and write a DCP to it</description>
+ <message gettext-domain="dcpomatic">Authentication is required to format the drive and write the DCP</message>
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>no</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ </action>
+</policyconfig>
diff --git a/platform/linux/wscript b/platform/linux/wscript
index 4b6f7f7aa..587da325e 100644
--- a/platform/linux/wscript
+++ b/platform/linux/wscript
@@ -58,4 +58,6 @@ def build(bld):
obj.VERSION = bld.env.VERSION
desktops.append(obj.target)
+ bld.install_as('${PREFIX}/share/polkit-1/actions/com.dcpomatic.write-drive.policy', 'com.dcpomatic.write-drive.policy')
+
bld.install_files('${PREFIX}/share/applications', desktops)