X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=cscript;h=93e202c628a0c5cf3b76d73a89979d3c2efdaa24;hb=f2bb5f6b87351f3d9427dc5b2a73eb40b0227b32;hp=7dba914475273f9f4e5cf9e52c45b1350efe8394;hpb=3ac44bf37777784de558219468a10ad1c0611f81;p=dcpomatic.git diff --git a/cscript b/cscript index 7dba91447..93e202c62 100644 --- a/cscript +++ b/cscript @@ -208,13 +208,13 @@ def can_build_disk(target): if target.platform == 'osx': return True if target.platform == 'linux': - if target.distro == 'ubuntu' and target.version in ['18.04', '20.04', '20.10']: + if target.distro == 'ubuntu' and target.version in ['18.04', '20.04', '20.10', '21.04']: return True if target.distro == 'debian' and target.version == '10': return True if target.detail == 'appimage': return True - if target.distro == 'fedora' and target.version == '31': + if target.distro == 'fedora' and int(target.version) >= 31: return True if target.distro == 'centos' and target.version == '8': return True @@ -301,7 +301,7 @@ def make_spec(filename, version, target, options, requires=None): print('%{_bindir}/dcpomatic2_verify', file=f) if os.path.exists(os.path.join(tools, "dcpomatic2_disk")): print('%{_bindir}/dcpomatic2_disk', file=f) - print('%{_bindir}/dcpomatic2_disk_writer', file=f) + print('%attr(4755, root, root) %{_bindir}/dcpomatic2_disk_writer', file=f) print('%{_datadir}/applications/dcpomatic2.desktop', file=f) print('%{_datadir}/applications/dcpomatic2_batch.desktop', file=f) print('%{_datadir}/applications/dcpomatic2_server.desktop', file=f) @@ -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) @@ -380,13 +381,13 @@ def dependencies(target, options): ffmpeg_options = {} if target.platform != 'linux' or target.distro != 'arch': - deps = [('ffmpeg-cdist', 'e89aa4a', ffmpeg_options)] + deps = [('ffmpeg-cdist', '107f9af8', ffmpeg_options)] else: # Use distro-provided FFmpeg on Arch deps = [] - deps.append(('libdcp', '2d6b31b')) - deps.append(('libsub', '63cddea')) + deps.append(('libdcp', '6384002')) + deps.append(('libsub', '55ebde1')) deps.append(('leqm-nrt', '131f971')) deps.append(('rtaudio', 'f619b76')) # We get our OpenSSL libraries from the environment, but we @@ -396,7 +397,7 @@ def dependencies(target, options): deps.append(('openssl', '7f29dd5')) if can_build_disk(target): deps.append(('lwext4', '9d20ec5')) - deps.append(('ffcmp', 'a915540')) + deps.append(('ffcmp', '6259cd4')) return deps @@ -641,16 +642,22 @@ def package_rpm(target, cpu, version, options): return rpms -def make_appimage(target, nice_name, internal_name, version): +def make_appimage(target, nice_name, internal_name, version, extra_bin=None): nice_filename = nice_name.replace(' ', '_') os.makedirs('build/%s.AppDir/usr/bin' % nice_filename) target.command('cp %s/bin/%s build/%s.AppDir/usr/bin' % (target.directory, internal_name, nice_filename)) + if extra_bin: + target.command('cp %s/bin/%s build/%s.AppDir/usr/bin' % (target.directory, extra_bin, nice_filename)) target.command('cp %s/src/openssl/apps/openssl build/%s.AppDir/usr/bin/dcpomatic2_openssl' % (target.directory, nice_filename)) target.command('cp %s/bin/dcpverify build/%s.AppDir/usr/bin/dcpomatic2_verify' % (target.directory, nice_filename)) target.command('mkdir -p build/%s.AppDir/usr/share/libdcp' % nice_filename) 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) @@ -682,7 +689,7 @@ def package(target, version, options): out.append(make_appimage(target, 'DCP-o-matic KDM Creator', 'dcpomatic2_kdm', version)) out.append(make_appimage(target, 'DCP-o-matic Batch Converter', 'dcpomatic2_batch', version)) out.append(make_appimage(target, 'DCP-o-matic Encode Server', 'dcpomatic2_server', version)) - out.append(make_appimage(target, 'DCP-o-matic Disk Writer', 'dcpomatic2_disk', version)) + out.append(make_appimage(target, 'DCP-o-matic Disk Writer', 'dcpomatic2_disk', version, "dcpomatic2_disk_writer")) out.append(make_appimage(target, 'DCP-o-matic Combiner', 'dcpomatic2_combiner', version)) return out else: