1 #!/usr/bin/env python
\r
9 import fake_py2deb as py2deb
\r
14 __app_name__ = constants.__app_name__
\r
15 __description__ = """Very simple Audiobook player.
\r
16 Supports playing, pausing, seeking (sort of) and saving state when changing book/closing.
\r
17 Plays books arranged as dirs under myDocs/Audiobooks
\r
19 Homepage: http://wiki.maemo.org/Nqaap"""
\r
20 __author__ = "Soeren 'Pengman' Pedersen"
\r
21 __email__ = "pengmeister@gmail.com"
\r
22 __version__ = constants.__version__
\r
23 __build__ = constants.__build__
\r
25 * Storing resuming information in utf-8 for non-English file names
\r
29 __postinstall__ = """#!/bin/sh -e
\r
31 gtk-update-icon-cache -f /usr/share/icons/hicolor
\r
32 rm -f ~/.%(name)s/%(name)s.log
\r
33 """ % {"name": constants.__app_name__}
\r
36 def find_files(prefix, path):
\r
37 for root, dirs, files in os.walk(path):
\r
39 if file.startswith(prefix+"-"):
\r
40 fileParts = file.split("-")
\r
41 unused, relPathParts, newName = fileParts[0], fileParts[1:-1], fileParts[-1]
\r
42 assert unused == prefix
\r
43 relPath = os.sep.join(relPathParts)
\r
44 yield relPath, file, newName
\r
47 def unflatten_files(files):
\r
49 for relPath, oldName, newName in files:
\r
50 if relPath not in d:
\r
52 d[relPath].append((oldName, newName))
\r
56 def build_package(distribution):
\r
58 os.chdir(os.path.dirname(sys.argv[0]))
\r
62 py2deb.Py2deb.SECTIONS = py2deb.SECTIONS_BY_POLICY[distribution]
\r
63 p = py2deb.Py2deb(__app_name__)
\r
64 p.prettyName = constants.__pretty_app_name__
\r
65 p.description = __description__
\r
66 p.bugTracker="https://bugs.maemo.org/enter_bug.cgi?product=nQa%%20Audiobook%%20Player"
\r
67 p.author = __author__
\r
70 p.depends = ", ".join([
\r
71 "python2.6 | python2.5",
\r
72 "python-gtk2 | python2.5-gtk2",
\r
73 "python-dbus | python2.5-dbus",
\r
74 "python-telepathy | python2.5-telepathy",
\r
75 "python-gobject | python2.5-gobject",
\r
76 "python-simplejson",
\r
78 maemoSpecificDepends = ", python-osso | python2.5-osso, python-hildon | python2.5-hildon"
\r
80 "debian": ", python-gst0.10",
\r
81 "diablo": maemoSpecificDepends,
\r
82 "fremantle": maemoSpecificDepends + ", python-gst0.10",
\r
86 "diablo": "user/multimedia",
\r
87 "fremantle": "user/multimedia",
\r
91 p.distribution=distribution
\r
92 p.repository="extras"
\r
93 p.changelog = __changelog__
\r
94 p.postinstall = __postinstall__
\r
96 "debian": "26x26-%s.png" % constants.__app_name__,
\r
97 "diablo": "26x26-%s.png" % constants.__app_name__,
\r
98 "fremantle": "48x48-%s.png" % constants.__app_name__,
\r
100 p["/opt/%s/bin" % constants.__app_name__] = [ "%s.py" % constants.__app_name__ ]
\r
101 for relPath, files in unflatten_files(find_files("src", ".")).iteritems():
\r
102 fullPath = "/opt/%s/lib" % constants.__app_name__
\r
104 fullPath += os.sep+relPath
\r
105 p[fullPath] = list(
\r
106 "|".join((oldName, newName))
\r
107 for (oldName, newName) in files
\r
109 p["/usr/share/applications/hildon"] = ["%s.desktop" % constants.__app_name__]
\r
110 p["/usr/share/icons/hicolor/26x26/hildon"] = ["26x26-%s.png|%s.png" % (constants.__app_name__, constants.__app_name__)]
\r
111 p["/usr/share/icons/hicolor/48x48/hildon"] = ["48x48-%s.png|%s.png" % (constants.__app_name__, constants.__app_name__)]
\r
112 p["/usr/share/icons/hicolor/64x64/hildon"] = ["64x64-%s.png|%s.png" % (constants.__app_name__, constants.__app_name__)]
\r
113 p["/usr/share/icons/hicolor/scalable/hildon"] = ["scale-%s.png|%s.png" % (constants.__app_name__, constants.__app_name__)]
\r
116 if distribution == "debian":
\r
118 version="%s-%s" % (__version__, __build__),
\r
119 changelog=__changelog__,
\r
127 version="%s-%s" % (__version__, __build__),
\r
128 changelog=__changelog__,
\r
134 print "Building for %s finished" % distribution
\r
137 if __name__ == "__main__":
\r
138 if len(sys.argv) == 1:
\r
139 distribution = "fremantle"
\r
141 distribution = sys.argv[1]
\r
142 build_package(distribution)
\r