From f00f3e2f8da0549a54f10ef20419ff6e11824685 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu@tomeuvizoso.net>
Date: Thu, 9 Aug 2007 15:26:52 +0200
Subject: [PATCH] Correctly include .mo files in bundles.

---
 sugar/activity/bundle.py        | 7 +++++--
 sugar/activity/bundlebuilder.py | 3 +--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/sugar/activity/bundle.py b/sugar/activity/bundle.py
index a9c246d8..bc24092a 100644
--- a/sugar/activity/bundle.py
+++ b/sugar/activity/bundle.py
@@ -41,6 +41,7 @@ class NotInstalledException(Exception): pass
 class InvalidPathException(Exception): pass
 class ZipExtractException(Exception): pass
 class RegistrationException(Exception): pass
+class MalformedBundleException(Exception): pass
 
 class Bundle:
     """Metadata description of a given application/activity
@@ -265,10 +266,12 @@ class Bundle:
             if not bundle_root_dir:
                 bundle_root_dir = file_name.split('/')[0]
                 if not bundle_root_dir.endswith('.activity'):
-                    raise 'Incorrect bundle.'
+                    raise MalformedBundleException(
+                            'The activity directory name must end with .activity')
             else:
                 if not file_name.startswith(bundle_root_dir):
-                    raise 'Incorrect bundle.'
+                    raise MalformedBundleException(
+                        'All files in the bundle must be inside the activity directory')
 
         return bundle_root_dir
 
diff --git a/sugar/activity/bundlebuilder.py b/sugar/activity/bundlebuilder.py
index b255cfb8..3bbe4546 100644
--- a/sugar/activity/bundlebuilder.py
+++ b/sugar/activity/bundlebuilder.py
@@ -162,8 +162,7 @@ def _get_mo_list(manifest):
 
     for lang in _get_po_list(manifest).keys():
         filename = _get_service_name() + '.mo'
-        mo_list.append(os.path.join(_get_source_path(), 'locale',
-                                    lang, 'LC_MESSAGES', filename))
+        mo_list.append(os.path.join('locale', lang, 'LC_MESSAGES', filename))
 
     return mo_list