1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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
)
|