--- a/src/calibre/linux.py	2012-07-13 07:21:34.000000000 +0200
+++ b/src/calibre/linux.py	2012-07-14 20:45:30.000000000 +0200
@@ -180,19 +180,6 @@
             self.setup_completion()
         if islinux or isbsd:
             self.setup_desktop_integration()
-        self.create_uninstaller()
-
-        from calibre.utils.config import config_dir
-        if os.path.exists(config_dir):
-            os.chdir(config_dir)
-            if islinux or isbsd:
-                for f in os.listdir('.'):
-                    if os.stat(f).st_uid == 0:
-                        import shutil
-                        shutil.rmtree(f) if os.path.isdir(f) else os.unlink(f)
-                if os.stat(config_dir).st_uid == 0:
-                    os.rmdir(config_dir)
-
         if warn is None and self.warnings:
             self.info('There were %d warnings'%len(self.warnings))
             for args, kwargs in self.warnings:
@@ -358,51 +345,39 @@
 
             with TemporaryDirectory() as tdir, CurrentDir(tdir), \
                                 PreserveMIMEDefaults():
-                render_img('mimetypes/lrf.png', 'calibre-lrf.png')
-                cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True)
-                self.icon_resources.append(('mimetypes', 'application-lrf', '128'))
-                cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True)
-                self.icon_resources.append(('mimetypes', 'application-lrs',
-                '128'))
-                render_img('lt.png', 'calibre-gui.png', width=256, height=256)
-                cc('xdg-icon-resource install --noupdate --size 256 calibre-gui.png calibre-gui', shell=True)
-                self.icon_resources.append(('apps', 'calibre-gui', '128'))
-                render_img('viewer.png', 'calibre-viewer.png')
-                cc('xdg-icon-resource install --size 128 calibre-viewer.png calibre-viewer', shell=True)
-                self.icon_resources.append(('apps', 'calibre-viewer', '128'))
+                dir = os.path.join(self.opts.staging_sharedir,'../pixmaps')
+                os.mkdir(dir)
+                render_img('mimetypes/lrf.png', os.path.join(dir,'calibre-lrf.png'))
+                render_img('lt.png', os.path.join(dir, 'calibre-gui.png'))
+                render_img('viewer.png', os.path.join(dir, 'calibre-viewer.png'))
 
                 mimetypes = set([])
                 for x in all_input_formats():
                     mt = guess_type('dummy.'+x)[0]
-                    if mt and 'chemical' not in mt and 'ctc-posml' not in mt:
+                    if mt and 'chemical' not in mt and 'text' not in mt and 'pdf' not in mt and 'xhtml' not in mt:
                         mimetypes.add(mt)
 
                 def write_mimetypes(f):
                     f.write('MimeType=%s;\n'%';'.join(mimetypes))
 
-                f = open('calibre-lrfviewer.desktop', 'wb')
+                dir = os.path.join(self.opts.staging_sharedir,'../applications')
+                os.mkdir(dir)
+                f = open(os.path.join(dir, 'calibre-lrfviewer.desktop'), 'wb')
                 f.write(VIEWER)
                 f.close()
-                f = open('calibre-ebook-viewer.desktop', 'wb')
+                f = open(os.path.join(dir, 'calibre-ebook-viewer.desktop'), 'wb')
                 f.write(EVIEWER)
                 write_mimetypes(f)
                 f.close()
-                f = open('calibre-gui.desktop', 'wb')
+                f = open(os.path.join(dir, 'calibre-gui.desktop'), 'wb')
                 f.write(GUI)
                 write_mimetypes(f)
                 f.close()
-                des = ('calibre-gui.desktop', 'calibre-lrfviewer.desktop',
-                        'calibre-ebook-viewer.desktop')
-                for x in des:
-                    cmd = ['xdg-desktop-menu', 'install', '--noupdate', './'+x]
-                    cc(' '.join(cmd), shell=True)
-                    self.menu_resources.append(x)
-                cc(['xdg-desktop-menu', 'forceupdate'])
-                f = open('calibre-mimetypes', 'wb')
+                dir = os.path.join(self.opts.staging_sharedir,'../mime/packages/')
+                os.makedirs(dir)
+                f = open(os.path.join(dir, 'calibre.xml'), 'wb')
                 f.write(MIME)
                 f.close()
-                self.mime_resources.append('calibre-mimetypes')
-                cc('xdg-mime install ./calibre-mimetypes', shell=True)
         except Exception:
             if self.opts.fatal_errors:
                 raise
