aboutsummaryrefslogtreecommitdiffstats
path: root/setup-files/linux/setup.py
diff options
context:
space:
mode:
authorJesús Eduardo <heckyel@hyperbola.info>2017-05-31 18:08:31 -0500
committerJesús Eduardo <heckyel@hyperbola.info>2017-05-31 18:08:31 -0500
commite1180428ed3e7634fe1596103511fbb1da05f228 (patch)
tree13de9592bcde7050b089b9644839668024c518b3 /setup-files/linux/setup.py
downloadlibrevideoconverter-e1180428ed3e7634fe1596103511fbb1da05f228.tar.lz
librevideoconverter-e1180428ed3e7634fe1596103511fbb1da05f228.tar.xz
librevideoconverter-e1180428ed3e7634fe1596103511fbb1da05f228.zip
first commit
Diffstat (limited to 'setup-files/linux/setup.py')
-rw-r--r--setup-files/linux/setup.py95
1 files changed, 95 insertions, 0 deletions
diff --git a/setup-files/linux/setup.py b/setup-files/linux/setup.py
new file mode 100644
index 0000000..841e86a
--- /dev/null
+++ b/setup-files/linux/setup.py
@@ -0,0 +1,95 @@
+import glob
+import os
+import shutil
+import subprocess
+import sys
+from distutils.cmd import Command
+from setuptools import setup
+
+if sys.version < '2.7':
+ raise RuntimeError('LVC requires Python 2.7')
+
+def icon_data_files():
+ sizes = [16, 22, 32, 48]
+ data_files = []
+ for size in sizes:
+ d = os.path.join("icons", "hicolor", "%sx%s" % (size, size), "apps")
+ source = os.path.join(SETUP_DIR, d, "librevideoconverter.png")
+ dest = os.path.join("/usr/share/", d)
+ data_files.append((dest, [source]))
+
+ return data_files
+
+def application_data_files():
+ return [
+ ('/usr/share/applications',
+ [os.path.join(SETUP_DIR, 'librevideoconverter.desktop')]),
+ ]
+
+def data_files():
+ return application_data_files() + icon_data_files()
+
+class sdist_deb(Command):
+ description = ("Build a debian source package.")
+ user_options = [
+ ('dist-dir=', 'd',
+ "directory to put the source distribution archive(s) in "
+ "[default: dist]"),
+ ]
+
+ def initialize_options(self):
+ self.dist_dir = None
+
+ def finalize_options(self):
+ if self.dist_dir is None:
+ self.dist_dir = 'dist'
+ self.dist_dir = os.path.abspath(self.dist_dir)
+
+ def run(self):
+ self.run_command("sdist")
+ self.setup_dirs()
+ for debian_dir in glob.glob(os.path.join(SETUP_DIR, 'debian-*')):
+ self.build_for_release(debian_dir)
+ os.chdir(self.orig_dir)
+ print
+ print "debian source build complete"
+ print "files are in %s" % self.work_dir
+
+ def build_for_release(self, debian_dir):
+ os.chdir(self.work_dir)
+ source_tree = os.path.join(self.work_dir,
+ 'librevideoconverter-%s' % VERSION)
+ if os.path.exists(source_tree):
+ shutil.rmtree(source_tree)
+ self.extract_tarball()
+ self.copy_debian_directory(debian_dir)
+ os.chdir('librevideoconverter-%s' % VERSION)
+ subprocess.check_call(['dpkg-buildpackage', '-S'])
+
+ def setup_dirs(self):
+ self.orig_dir = os.getcwd()
+ self.work_dir = os.path.join(self.dist_dir, 'deb')
+ if os.path.exists(self.work_dir):
+ shutil.rmtree(self.work_dir)
+ os.makedirs(self.work_dir)
+
+ def extract_tarball(self):
+ tarball = os.path.join(self.dist_dir,
+ "librevideoconverter-%s.tar.gz" % VERSION)
+ subprocess.check_call(["tar", "zxf", tarball])
+ shutil.copyfile(tarball,
+ "librevideoconverter_%s.orig.tar.gz" % VERSION)
+
+ def copy_debian_directory(self, debian_dir):
+ dest = os.path.join(self.work_dir,
+ 'librevideoconverter-%s/debian' % VERSION)
+ shutil.copytree(debian_dir, dest)
+
+setup(
+ cmdclass={
+ 'sdist_deb': sdist_deb,
+ },
+ data_files=data_files(),
+ scripts=['scripts/libre-video-converter.py'],
+ **SETUP_ARGS
+)