Fix appimage build.
[dcpomatic.git] / cscript
diff --git a/cscript b/cscript
index d2a9cf8a87507ba5e45e5e44962f9032e9a8da6d..3259ed6026c56544a92b727384cfd9082bb05522 100644 (file)
--- a/cscript
+++ b/cscript
@@ -1,6 +1,6 @@
 # -*- mode: python -*-
 #
-#    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
+#    Copyright (C) 2012-2022 Carl Hetherington <cth@carlh.net>
 #
 #    This file is part of DCP-o-matic.
 #
@@ -98,42 +98,6 @@ deb_depends['20.04'].extend(['libboost-filesystem1.71.0',
                              'libxerces-c3.2',
                              'libnanomsg5'])
 
-deb_depends['20.10'] = copy.deepcopy(deb_depends_base)
-deb_depends['20.10'].extend(['libboost-filesystem1.71.0',
-                             'libboost-thread1.71.0',
-                             'libboost-regex1.71.0',
-                             'libboost-date-time1.71.0',
-                             'libcairomm-1.0-1v5',
-                             'libpangomm-1.4-1v5',
-                             'libxml++2.6-2v5',
-                             'libzip5',
-                             'libicu67',
-                             'libnettle8',
-                             'libssh-4',
-                             'libx264-160',
-                             'libcurl4',
-                             'libpulse0',
-                             'libxerces-c3.2',
-                             'libnanomsg5'])
-
-deb_depends['21.04'] = copy.deepcopy(deb_depends_base)
-deb_depends['21.04'].extend(['libboost-filesystem1.74.0',
-                             'libboost-thread1.74.0',
-                             'libboost-regex1.74.0',
-                             'libboost-date-time1.74.0',
-                             'libcairomm-1.0-1v5',
-                             'libpangomm-1.4-1v5',
-                             'libxml++2.6-2v5',
-                             'libzip4',
-                             'libicu67',
-                             'libnettle8',
-                             'libssh-4',
-                             'libx264-160',
-                             'libcurl4',
-                             'libpulse0',
-                             'libxerces-c3.2',
-                             'libnanomsg5'])
-
 deb_depends['21.10'] = copy.deepcopy(deb_depends_base)
 deb_depends['21.10'].extend(['libboost-filesystem1.74.0',
                              'libboost-thread1.74.0',
@@ -150,7 +114,8 @@ deb_depends['21.10'].extend(['libboost-filesystem1.74.0',
                              'libcurl4',
                              'libpulse0',
                              'libxerces-c3.2',
-                             'libnanomsg5'])
+                             'libnanomsg5',
+                             'libdav1d4'])
 
 deb_depends['9'] = copy.deepcopy(deb_depends_base)
 deb_depends['9'].extend(['libboost-filesystem1.62.0',
@@ -215,7 +180,8 @@ deb_depends['11'].extend(['libboost-filesystem1.74.0',
                           'libx264-160',
                           'libcurl4',
                           'libxerces-c3.2',
-                          'libnanomsg5'])
+                          'libnanomsg5',
+                          'libdav1d4'])
 
 deb_depends_gui['11'] = [ 'libxcb-xfixes0',
                           'libxcb-shape0',
@@ -234,7 +200,8 @@ deb_depends['unstable'].extend(['libboost-filesystem1.67.0',
                                 'libnettle6',
                                 'libx264-155',
                                 'libcurl4',
-                                'libxerces-c3.2'])
+                                'libxerces-c3.2',
+                                'libdav1d4'])
 
 def can_build_disk(target):
     # We can build dcpomatic2_disk on platforms that have Boost process and can build the lwext4
@@ -314,7 +281,6 @@ def make_control(debian_version, bits, filename, debug, gui):
 
 def make_spec(filename, version, target, options, requires=None):
     """Make a .spec file for a RPM build"""
-    tools = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(filename))), "src/tools")
     f = open(filename, 'w')
     print('Summary:A program that generates Digital Cinema Packages (DCPs) from video and audio files', file=f)
     print('Name:dcpomatic2', file=f)
@@ -344,7 +310,7 @@ def make_spec(filename, version, target, options, requires=None):
     print('%{_bindir}/dcpomatic2_openssl', file=f)
     print('%{_bindir}/dcpomatic2_combiner', file=f)
     print('%{_bindir}/dcpomatic2_verify', file=f)
-    if os.path.exists(os.path.join(tools, "dcpomatic2_disk")):
+    if can_build_disk(target):
         print('%{_bindir}/dcpomatic2_disk', file=f)
         print('%caps(cap_dac_override=ep) %{_bindir}/dcpomatic2_disk_writer', file=f)
     print('%{_datadir}/applications/dcpomatic2.desktop', file=f)
@@ -354,7 +320,7 @@ def make_spec(filename, version, target, options, requires=None):
     print('%{_datadir}/applications/dcpomatic2_player.desktop', file=f)
     print('%{_datadir}/applications/dcpomatic2_playlist.desktop', file=f)
     print('%{_datadir}/applications/dcpomatic2_combiner.desktop', file=f)
-    if os.path.exists(os.path.join(tools, "dcpomatic2_disk")):
+    if can_build_disk(target):
         print('%{_datadir}/applications/dcpomatic2_disk.desktop', file=f)
     print('%{_datadir}/dcpomatic2/dcpomatic2_server_small.png', file=f)
     print('%{_datadir}/dcpomatic2/select.png', file=f)
@@ -427,7 +393,7 @@ def dependencies(target, options):
         ffmpeg_options = {}
 
     if target.platform != 'linux' or target.distro != 'arch':
-        deps = [('ffmpeg-cdist', '107f9af8', ffmpeg_options)]
+        deps = [('ffmpeg-cdist', 'cb2b073d4f88230fca1d1d74e45235f5268fd825', ffmpeg_options)]
     else:
         # Use distro-provided FFmpeg on Arch
         deps = []
@@ -443,7 +409,7 @@ def dependencies(target, options):
     deps.append(('openssl', '7f29dd5'))
     if can_build_disk(target):
         deps.append(('lwext4', 'cce3730'))
-    deps.append(('ffcmp', '6259cd4'))
+    deps.append(('ffcmp', '10934f1a9cd9770ef0b38da153f9576e77e7e925'))
 
     return deps
 
@@ -603,7 +569,8 @@ def build(target, options):
         with open('build/com.dcpomatic.DCP-o-matic.json', 'w') as outfile:
             json.dump(desc, outfile)
         target.command('%s --repo=build/platform/repo build/platform/flatpak build/com.dcpomatic.DCP-o-matic.json' % target.flatpak_builder())
-    else:
+    elif target.platform != "linux" or target.detail == 'appimage':
+        # Build here if the packaging step won't do it
         target.command('./waf configure --prefix=%s %s' % (target.directory, configure_options(target, options)))
         target.command('./waf')
         target.command('./waf install')
@@ -651,8 +618,8 @@ def package_debian(target, cpu, version, options):
 
     target.set('CDIST_CONFIGURE', '"' + configure_options(target, options) + '"')
     target.set('CDIST_PACKAGE', f'dcpomatic{suffix}')
-    if target.debug:
-        target.set('CDIST_DEBUG_PACKAGE_FLAG', f'--dbg-package=dcpomatic{suffix}-dbg')
+    if not target.debug:
+        target.set('CDIST_DEBUG_PACKAGE_FLAG', '--no-ddebs')
 
     target.command('dpkg-buildpackage -uc -us')
 
@@ -680,8 +647,8 @@ def package_rpm(target, cpu, version, options):
     if target.distro == 'mageia':
         requires = "lib64xmlsec1-devel lib64canberra-gtk0 libcap-utils"
 
-    make_spec('build/platform/linux/dcpomatic2.spec', version, target, options, requires)
-    cmd = 'rpmbuild --define "_topdir %s" -bb build/platform/linux/dcpomatic2.spec' % topdir
+    make_spec('dcpomatic2.spec', version, target, options, requires)
+    cmd = 'rpmbuild --define "_topdir %s" -bb dcpomatic2.spec' % topdir
     target.command(cmd)
     rpms = []