Bump to 0.8.22
[theonering] / support / builddeb.py
index c910be1..e023ccb 100755 (executable)
@@ -1,9 +1,5 @@
 #!/usr/bin/python2.5
 
 #!/usr/bin/python2.5
 
-"""
-@bug In update desrcription stuff
-"""
-
 import os
 import sys
 
 import os
 import sys
 
@@ -16,165 +12,43 @@ import constants
 
 
 __appname__ = constants.__app_name__
 
 
 __appname__ = constants.__app_name__
-__description__ = "Touch screen enhanced interface to the GoogleVoice/GrandCentral phone service"
+__description__ = """Send/receive texts and initiate GV callbacks all through Conversations and Phone
+Features:
+.
+* Send Texts and Receive both Texts and Voicemail through your chat window
+.
+* Initiate Google Voice callbacks from the dialpad or your contacts
+.
+* Access to all of your Google Voice contacts
+.
+* Reduce battery drain by setting your status to "Away"
+.
+Note: Google and Google Voice are probably trademarks of Google.  This software nor the author has any affiliation with Google
+.
+Homepage: http://theonering.garage.maemo.org
+"""
 __author__ = "Ed Page"
 __email__ = "eopage@byu.net"
 __version__ = constants.__version__
 __build__ = constants.__build__
 __changelog__ = """
 __author__ = "Ed Page"
 __email__ = "eopage@byu.net"
 __version__ = constants.__version__
 __build__ = constants.__build__
 __changelog__ = """
-1.0.6
-* Fremantle Prep: Simplified menus in prep for no menu or the Fremantle App Menu
-* Fremantle Prep: Implemented a work around for https://bugs.maemo.org/show_bug.cgi?id=4957
-* Fremantle Prep: Switched to touch selectors for notification time, callback number, and contact addressbook
-* Fremantle Prep: Making various widgets pannable rather than scrollable
-* Fremantle Prep: CTRL-V added for paste for Dialpad
-* Fremantle Prep: CTRL-Enter added for fullscreen
-* UI Tweak: Phone selection and SMS Message dialogs now highlight the last message and are easier to scroll
-* UI Tweak: Tweaked sizes of stuff on recent tab
-* UI Tweak: Added notifcations for various things like login and dialing
-* UI Tweak: Switch to accounts tab when logging in and callback is blank as a sublte hint to configure it
-* UI Tweak: Switch to accounts tab on failed login to remind the user they are not logged in
-* Packaging: Disables notifications on uninstall
-* Packaging: Including a vastly improved py2deb for better packages (icons on package, etc)
-* Debugging: Adding seperator between dialcentral launches in log
-* Bug Fix: Made startup more error resistant
-* Bug Fix: some dependencies for Diablo
-* Bug Fix: Error on refreshing tabs when not logged in
-* Bug Fix: #4471 Notification Checkbox Won't Stay Checked (hour roll over error)
-* Bug Fix: Phone numbers in voicemails wouldn't appear
-* Bug Fix: category for Fremantle/Diablo
-* Bug Fix: needing to manually create "~/.dialcentral" due to earlier logging changes
-* Bug Fix: dependencies for fremantle
-* Bug Fix: Issues when trying to stack error messages
-* Bug Fix: Python2.6 deprecates some stuff I did
-* Bug Fix: On refreshing the Accounts tab, the callback number resets to the number from startup
-
-1.0.5
-* Contacts Tab remembers the last address book viewed on restart
-* Applied some suggested changes for being more thumb friendly
-* Messaging Dialog auto-scrolls to bottom
-* Removed GrandCentral support
-* Numbers can now be entered immediately, before login
-* Bug Fix: Not clearing the entered number on sending an SMS
-* Bug Fix: Disabling SMS button when logged off
-* Bug Fix: Trying to make SMS and phone selection dialogs more readable
-* Bug Fix: Adding some more thumb scrollbars
-
-1.0.4
-* "Back" button and tabs now visually indicate when they've entered a "hold" state
-* Fixed the duplicate title on Maemo
-* Removing some device connection observer code due to high bug to low benefit ratio
-* Notification support
-* Fixed a bug from 1.0.3 where once you refreshed a tab by holding on it, every tab would then be forced to refresh
-
-1.0.3
-* Holding down a tab for a second will now force a refresh
-* Fixed a bug dealing with overzealously refreshing the contacts tab
-* Finding some undescriptive errors and made them more descriptive
-* Swapped the order GrandCentral and GoogleVoice appear in login window
-* Fixed the "Recent" and "Message" tabs, google changed things on me again
-
-1.0.2
-* Random bug fixes
-* Random performance improvements
-
-1.0.1
-* Fixed a voicemail transcripts due to a GoogleVoice change
-
-1.0.0
-* Added names to the recent tab for GoogleVoice
-
-0.9.9
-* SMS From Dialpad
-* Display of names for messages tab
-* Condensed messages/recent's date column
-
-0.9.8
- * Added columns to recent view and messages view to help seperate messages
- * Attempted refreshing session on dial/sms send
- * Fixed a GC Bug
- * Minor bug fixes as usual
-
-0.9.7
- * Switched to Force Refresh for when wanting to check for more messages
- * Removed timeouts that forced refreshes on various tabs
- * Added support for a settings file, fairly primitive right now
- * Fixed Maemo Support
- * Lots of major and minor bug fixes
-
-0.9.6
- * Experimenting with the tabs being on the side
- * Now the phone selector is used always, even if there is just one phone number
- * Added a Messages Tab, which displays SMS and Voicemail messages
- * Added option to send SMS messages
-
-0.9.5
- * Fixed a login issue due to Google changing their webpage
-
-0.9.4 - ""
- * Misc Bug fixes and experiments
-
-0.9.3 - ""
- * Removed the much disliked contact source ID
- * Added saving of callback number when using GoogleVoice
- * Got proper formatting on things ("&" rather than "&")
- * Misc Bug fixes
-
-0.9.2 - "Two heads are better than one"
- * Adding of UI to switch between GC and GV
- * Minimized flashing the dial button between grayed out and not on startup
- * Bug fixes
-
-0.9.1 - "Get your hands off that"
- * GoogleVoice Support, what a pain
- * More flexible CSV support.  It now checks the header row for what column name/number are in
- * Experimenting with faster startup by caching PYC files with the package
- * Fixing of some bad error handling
- * More debug output for when people run into issues
-
-0.9.0 - "Slick as snot"
- * Caching of contacts
- * Refactoring to make working with the code easier
- * Filesystem backed contacts but currently only supporting a specific csv format
- * Gracefully handle lack of connection and connection transitions
- * Gracefully handle failed login
- * A tiny bit better error reporting
-
-0.8.3 - "Extras Love"
- * Version bump fighting the extras autobuilder, I hope this works
-
-0.8.2 - "Feed is for horses, so what about feedback?"
- * Merged addressbook
- * many more smaller fixes
-
-0.8.1 - "Two Beers"
- * Thumb scrollbars ( Kudos Khertan )
-
-0.8.0 - "Spit and polish"
- * Addressbook support
- * threaded networking for better interactivity
- * Hold down back to clear number
- * Standard about dialog
- * many more smaller fixes
-"""
+* Making "calls" end immediately rather than waiting for the callback request to complete to fix issues with the waiting blocking accepting the callback if it comes in too quickly.  Reporting errors through the debug prompt now.
+* Respecting the servers "read" status for voicemail
+* Using a newer contacts "API" which should speed things up a big (more improvements possible)
+""".strip()
 
 
 __postinstall__ = """#!/bin/sh -e
 
 gtk-update-icon-cache -f /usr/share/icons/hicolor
 
 
 __postinstall__ = """#!/bin/sh -e
 
 gtk-update-icon-cache -f /usr/share/icons/hicolor
+rm -f ~/.telepathy-theonering/theonering.log
 """
 
 """
 
-__preremove__ = """#!/bin/sh -e
-
-python /usr/lib/dialcentral/alarm_handler.py -d || true
-"""
-
-
 def find_files(path):
        for root, dirs, files in os.walk(path):
                for file in files:
 def find_files(path):
        for root, dirs, files in os.walk(path):
                for file in files:
-                       if file.startswith("src-"):
-                               fileParts = file.split("-")
+                       if file.startswith("src!"):
+                               fileParts = file.split("!")
                                unused, relPathParts, newName = fileParts[0], fileParts[1:-1], fileParts[-1]
                                assert unused == "src"
                                relPath = os.sep.join(relPathParts)
                                unused, relPathParts, newName = fileParts[0], fileParts[1:-1], fileParts[-1]
                                assert unused == "src"
                                relPath = os.sep.join(relPathParts)
@@ -198,72 +72,90 @@ def build_package(distribution):
 
        py2deb.Py2deb.SECTIONS = py2deb.SECTIONS_BY_POLICY[distribution]
        p = py2deb.Py2deb(__appname__)
 
        py2deb.Py2deb.SECTIONS = py2deb.SECTIONS_BY_POLICY[distribution]
        p = py2deb.Py2deb(__appname__)
+       if distribution == "debian":
+               p.prettyName = constants.__pretty_app_name__
+       else:
+               p.prettyName = "Google Voice plugin for Conversations and Calls"
        p.description = __description__
        p.description = __description__
-       p.upgradeDescription = __changelog__.split("\n\n", 1)[0]
+       p.bugTracker = "https://bugs.maemo.org/enter_bug.cgi?product=The%%20One%%20Ring"
+       #p.upgradeDescription = __changelog__.split("\n\n", 1)[0]
        p.author = __author__
        p.mail = __email__
        p.license = "lgpl"
        p.author = __author__
        p.mail = __email__
        p.license = "lgpl"
-       p.depends = ", ".join([
-               "python2.6 | python2.5",
-               "python-gtk2 | python2.5-gtk2",
-               "python-xml | python2.5-xml",
-               "python-dbus | python2.5-dbus",
-       ])
-       maemoSpecificDepends = ", python-osso | python2.5-osso, python-hildon | python2.5-hildon"
-       p.depends += {
-               "debian": ", python-glade2",
-               "chinook": maemoSpecificDepends,
-               "diablo": maemoSpecificDepends,
-               "fremantle": maemoSpecificDepends + ", python-glade2",
-               "mer": maemoSpecificDepends + ", python-glade2",
-       }[distribution]
-       p.recommends = ", ".join([
-       ])
        p.section = {
                "debian": "comm",
        p.section = {
                "debian": "comm",
-               "chinook": "communication",
                "diablo": "user/network",
                "fremantle": "user/network",
                "diablo": "user/network",
                "fremantle": "user/network",
-               "mer": "user/network",
+       }[distribution]
+       p.depends = ", ".join([
+               "python (>= 2.5) | python2.5",
+               "python-dbus | python2.5-dbus",
+               "python-gobject | python2.5-gobject",
+               "python-telepathy | python2.5-telepathy",
+       ])
+       p.depends += {
+               "debian": "",
+               "diablo": ", python2.5-conic, account-plugin-haze",
+               "fremantle": ", account-plugin-haze",
        }[distribution]
        p.arch = "all"
        p.urgency = "low"
        }[distribution]
        p.arch = "all"
        p.urgency = "low"
-       p.distribution = "chinook diablo fremantle mer debian"
+       p.distribution = "diablo fremantle debian"
        p.repository = "extras"
        p.changelog = __changelog__
        p.postinstall = __postinstall__
        p.repository = "extras"
        p.changelog = __changelog__
        p.postinstall = __postinstall__
-       p.preremove = __preremove__
-       p.icon = {
-               "debian": "26x26-dialcentral.png",
-               "chinook": "26x26-dialcentral.png",
-               "diablo": "26x26-dialcentral.png",
-               "fremantle": "64x64-dialcentral.png", # Fremantle natively uses 48x48
-               "mer": "64x64-dialcentral.png",
-       }[distribution]
-       p["/usr/bin"] = [ "dialcentral.py" ]
+       p.icon = "32-tor_handset.png"
        for relPath, files in unflatten_files(find_files(".")).iteritems():
        for relPath, files in unflatten_files(find_files(".")).iteritems():
-               fullPath = "/usr/lib/dialcentral"
+               fullPath = "/opt/theonering/lib"
                if relPath:
                        fullPath += os.sep+relPath
                p[fullPath] = list(
                        "|".join((oldName, newName))
                        for (oldName, newName) in files
                )
                if relPath:
                        fullPath += os.sep+relPath
                p[fullPath] = list(
                        "|".join((oldName, newName))
                        for (oldName, newName) in files
                )
-       p["/usr/share/applications/hildon"] = ["dialcentral.desktop"]
-       p["/usr/share/icons/hicolor/26x26/hildon"] = ["26x26-dialcentral.png|dialcentral.png"]
-       p["/usr/share/icons/hicolor/64x64/hildon"] = ["64x64-dialcentral.png|dialcentral.png"]
-       p["/usr/share/icons/hicolor/scalable/hildon"] = ["scale-dialcentral.png|dialcentral.png"]
-
-       print p
-       print p.generate(
-               version="%s-%s" % (__version__, __build__),
-               changelog=__changelog__,
-               build=False,
-               tar=True,
-               changes=True,
-               dsc=True,
-       )
-       print "Building for %s finished" % distribution
+       p["/usr/share/dbus-1/services"] = ["org.freedesktop.Telepathy.ConnectionManager.theonering.service"]
+       if distribution in ("debian", ):
+               p["/usr/share/mission-control/profiles"] = ["theonering.profile.%s|theonering.profile"% distribution]
+       elif distribution in ("diablo", "fremantle"):
+               p["/usr/share/osso-rtcom"] = ["theonering.profile.%s|theonering.profile"% distribution]
+       p["/usr/lib/telepathy"] = ["telepathy-theonering"]
+       p["/usr/share/telepathy/managers"] = ["theonering.manager"]
+       if distribution in ("debian", ):
+               iconBasePath = "/usr/share/icons/gnome/%s/apps"
+       elif distribution in ("diablo", "fremantle"):
+               iconBasePath = "/usr/share/icons/hicolor/%s/hildon"
+       p[iconBasePath % "26x26"] = ["26-tor_handset.png|im-theonering.png"]
+       p[iconBasePath % "32x32"] = ["32-tor_handset.png|im-theonering.png"]
+       p[iconBasePath % "64x64"] = ["64-tor_handset.png|im-theonering.png"]
+       p["/opt/theonering/share"] = [
+               "32-tor_handset.png|tor_handset.png",
+               "32-tor_phone.png|tor_phone.png",
+               "32-tor_question.png|tor_question.png",
+               "32-tor_self.png|tor_self.png",
+       ]
+
+       if distribution == "debian":
+               print p
+               print p.generate(
+                       version="%s-%s" % (__version__, __build__),
+                       changelog=__changelog__,
+                       build=True,
+                       tar=False,
+                       changes=False,
+                       dsc=False,
+               )
+               print "Building for %s finished" % distribution
+       else:
+               print p
+               print p.generate(
+                       version="%s-%s" % (__version__, __build__),
+                       changelog=__changelog__,
+                       build=False,
+                       tar=True,
+                       changes=True,
+                       dsc=True,
+               )
+               print "Building for %s finished" % distribution
 
 
 if __name__ == "__main__":
 
 
 if __name__ == "__main__":