71f12a615c60da083dd302a1e6cd1dfb0a40dd5e
[nqaap] / support / builddeb.py
1 #!/usr/bin/env python\r
2 # -*- coding: utf-8 -*-\r
3 \r
4 """\r
5 This program is free software; you can redistribute it and/or modify\r
6 it under the terms of the GNU General Public License as published\r
7 by the Free Software Foundation; version 2 only.\r
8 \r
9 This program is distributed in the hope that it will be useful,\r
10 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
12 GNU General Public License for more details.\r
13 """\r
14 \r
15 import os\r
16 import sys\r
17 \r
18 import py2deb\r
19 \r
20 \r
21 def build_package(distribution):\r
22         py2deb.Py2deb.SECTIONS = py2deb.SECTIONS_BY_POLICY[distribution]\r
23         try:\r
24                 os.chdir(os.path.dirname(sys.argv[0]))\r
25         except:\r
26                 pass\r
27 \r
28         p=py2deb.Py2deb("nqaap")\r
29         p.prettyName="NQA Audiobook Player"\r
30         p.description="""Very simple Audiobook player.\r
31 Supports playing, pausing, seeking (sort of) and saving state when changing book/closing.\r
32 Plays books arranged as dirs under myDocs/Audiobooks\r
33 .\r
34 Homepage: http://wiki.maemo.org/Nqaap"""\r
35         p.author="Soeren 'Pengman' Pedersen"\r
36         p.mail="pengmeister@gmail.com"\r
37         p.license = "lgpl"\r
38         p.depends = ", ".join([\r
39                 "python2.6 | python2.5",\r
40                 "python-gtk2 | python2.5-gtk2",\r
41                 "python-dbus | python2.5-dbus",\r
42                 "python-telepathy | python2.5-telepathy",\r
43                 "python-gobject | python2.5-gobject",\r
44                 "python-simplejson",\r
45         ])\r
46         maemoSpecificDepends = ", python-osso | python2.5-osso, python-hildon | python2.5-hildon"\r
47         p.depends += {\r
48                 "debian": ", python-gst0.10",\r
49                 "diablo": maemoSpecificDepends,\r
50                 "fremantle": maemoSpecificDepends + ", python-gst0.10",\r
51         }[distribution]\r
52         p.section = {\r
53                 "debian": "sound",\r
54                 "diablo": "user/multimedia",\r
55                 "fremantle": "user/multimedia",\r
56         }[distribution]\r
57         p.icon = {\r
58                 "debian": "src/usr/share/icons/hicolor/26x26/hildon/nqaap.png",\r
59                 "diablo": "src/usr/share/icons/hicolor/26x26/hildon/nqaap.png",\r
60                 "fremantle": "src/usr/share/icons/hicolor/48x48/hildon/nqaap.png",\r
61         }[distribution]\r
62         p.arch="all"\r
63         p.urgency="low"\r
64         p.distribution=distribution\r
65         p.repository="extras"\r
66         p.bugTracker="https://bugs.maemo.org/enter_bug.cgi?product=nQa%%20Audiobook%%20Player"\r
67         p.postinstall="""#!/bin/sh\r
68 rm -f ~/.nqaap/nqaap.log\r
69 """\r
70         version = "0.8.7"\r
71         build = "0"\r
72         changeloginformation = """\r
73 * Fixing a bug with initially configuring the book location\r
74 """.strip()\r
75         dir_name = "src"\r
76         #Thanks to DareTheHair from talk.maemo.org for this snippet that\r
77         #recursively builds the file list\r
78         for root, dirs, files in os.walk(dir_name):\r
79                 if any(f.startswith(".") for f in root.split(os.sep)):\r
80                         continue # avoid hidden folders, esp svn ones\r
81 \r
82                 real_dir = root[len(dir_name):]\r
83                 fake_file = []\r
84                 for f in files:\r
85                         fake_file.append(root + os.sep + f + "|" + f)\r
86                 if len(fake_file) > 0:\r
87                         p[real_dir] = fake_file\r
88 \r
89         print p\r
90         if distribution == "debian":\r
91                 print p.generate(\r
92                         version="%s-%s" % (version, build),\r
93                         changelog=changeloginformation,\r
94                         build=True,\r
95                         tar=False,\r
96                         changes=False,\r
97                         dsc=False,\r
98                 )\r
99         else:\r
100                 print p.generate(\r
101                         version="%s-%s" % (version, build),\r
102                         changelog=changeloginformation,\r
103                         build=False,\r
104                         tar=True,\r
105                         changes=True,\r
106                         dsc=True,\r
107                 )\r
108         print "Building for %s finished" % distribution\r
109 \r
110 \r
111 if __name__ == "__main__":\r
112         if len(sys.argv) == 1:\r
113                 distribution = "fremantle"\r
114         else:\r
115                 distribution = sys.argv[1]\r
116         build_package(distribution)\r