summaryrefslogtreecommitdiff
path: root/libre/mcomix
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2014-09-04 23:47:34 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2014-09-04 23:47:34 -0300
commit730ac1fa5bef1ab3ecf8469a5b5913f0274dce8f (patch)
tree3f03f5d3af88a585d78e1c7aaa9cc775ddc493b7 /libre/mcomix
parentac32971510e741448296a2f7acfc59709d92fad9 (diff)
mcomix: remove libre suffix and add complex pkgrel
Diffstat (limited to 'libre/mcomix')
-rw-r--r--libre/mcomix/PKGBUILD65
-rw-r--r--libre/mcomix/libre.patch421
-rw-r--r--libre/mcomix/mcomix.install31
-rw-r--r--libre/mcomix/zoom.patch17
4 files changed, 534 insertions, 0 deletions
diff --git a/libre/mcomix/PKGBUILD b/libre/mcomix/PKGBUILD
new file mode 100644
index 000000000..3727242e8
--- /dev/null
+++ b/libre/mcomix/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 106934 2014-03-10 18:30:38Z schuay $
+# Maintainer (Arch): schuay <jakob.gruber@gmail.com>
+# Contributor (Arch): Ray Powell <ray_al@xphoniexx.net>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+pkgname=mcomix
+pkgver=1.00
+pkgrel=6.parabola1
+pkgdesc="A user-friendly, customizable image viewer specifically designed to handle comic books, without nonfree unrar support"
+arch=('any')
+url="http://sourceforge.net/projects/mcomix/"
+license=('GPL')
+depends=('pygtk' 'python2-pillow' 'xdg-utils' 'python2' \
+ 'desktop-file-utils' 'hicolor-icon-theme' 'python2-setuptools')
+makedepends=('gettext' 'intltool')
+conflicts=('comix' 'mcomix-libre')
+replaces=('comix' 'mcomix-libre')
+install='mcomix.install'
+source=("http://downloads.sourceforge.net/project/mcomix/MComix-${pkgver}/mcomix-${pkgver}.tar.bz2"
+ 'zoom.patch'
+ 'libre.patch')
+
+prepare() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # Remove nonfree unRAR support
+ rm -v mcomix/archive/rar{,file}.py
+ rm -v mime/icons/*/application-x-cbr.png
+ patch -Np1 -i ${srcdir}/libre.patch
+}
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # https://www.archlinux.org/todo/replace-pil-with-pillow/
+ sed -i 's/import Image/from PIL import Image/' mime/comicthumb
+
+ # python2 fix
+ for file in $(grep -Rl "/usr/bin/env python" .);
+ do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ # Fix zoom in, zoom out keyboard shortcuts:
+ # https://sourceforge.net/p/mcomix/bugs/62/
+ patch -Np1 < ${srcdir}/zoom.patch
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ export PYTHONPATH=${pkgdir}/usr/lib/python2.7/site-packages/
+ mkdir -p $PYTHONPATH
+
+ python2 setup.py install --prefix=/usr --optimize=1 \
+ --single-version-externally-managed --root=${pkgdir}
+
+ install -Dm755 mime/comicthumb ${pkgdir}/usr/bin/comicthumb
+ install -Dm644 mime/comicthumb.1.gz ${pkgdir}/usr/share/man/man1/comicthumb.1.gz
+ install -Dm644 mime/comicbook.schemas ${pkgdir}/usr/share/gconf/schemas/mcomix.schemas
+}
+
+md5sums=('3a916dd9da17043ab59ccd17e26eb932'
+ 'c80705bf6f132bfba20dcb84b79c9cb7'
+ 'cbb3730d3bed153b88208163e83d60e2')
diff --git a/libre/mcomix/libre.patch b/libre/mcomix/libre.patch
new file mode 100644
index 000000000..e3f12f703
--- /dev/null
+++ b/libre/mcomix/libre.patch
@@ -0,0 +1,421 @@
+diff --git a/mcomix/about_dialog.py b/mcomix/about_dialog.py
+index 9f956d5..10ff0be 100644
+--- a/mcomix/about_dialog.py
++++ b/mcomix/about_dialog.py
+@@ -27,7 +27,7 @@ class _AboutDialog(gtk.AboutDialog):
+ comment = \
+ _('%s is an image viewer specifically designed to handle comic books.') % \
+ constants.APPNAME + u' ' + \
+- _('It reads ZIP, RAR and tar archives, as well as plain image files.')
++ _('It reads ZIP and tar archives, as well as plain image files.')
+ self.set_comments(comment)
+
+ license = \
+diff --git a/mcomix/archive_extractor.py b/mcomix/archive_extractor.py
+index afed5c7..bc969bf 100644
+--- a/mcomix/archive_extractor.py
++++ b/mcomix/archive_extractor.py
+@@ -12,8 +12,8 @@ class Extractor:
+
+ """Extractor is a threaded class for extracting different archive formats.
+
+- The Extractor can be loaded with paths to archives (currently ZIP, tar,
+- or RAR archives) and a path to a destination directory. Once an archive
++ The Extractor can be loaded with paths to archives (currently ZIP or tar
++ archives) and a path to a destination directory. Once an archive
+ has been set it is possible to filter out the files to be extracted and
+ set the order in which they should be extracted. The extraction can
+ then be started in a new thread in which files are extracted one by one,
+diff --git a/mcomix/archive_tools.py b/mcomix/archive_tools.py
+index 66c3f14..151a904 100644
+--- a/mcomix/archive_tools.py
++++ b/mcomix/archive_tools.py
+@@ -8,7 +8,6 @@ import tarfile
+ from mcomix import constants
+ from mcomix import log
+ from mcomix.archive import zip
+-from mcomix.archive import rar
+ from mcomix.archive import tar
+ from mcomix.archive import sevenzip
+ from mcomix.archive import lha
+@@ -16,9 +15,6 @@ from mcomix.archive import lha
+ def szip_available():
+ return sevenzip.SevenZipArchive.is_available()
+
+-def rar_available():
+- return rar.RarArchive.is_available() or szip_available()
+-
+ def lha_available():
+ return lha.LhaArchive.is_available() or szip_available()
+
+@@ -31,9 +27,6 @@ def get_supported_archive_regex():
+ if szip_available():
+ formats.extend(constants.SZIP_FORMATS[1])
+
+- if rar_available():
+- formats.extend(constants.RAR_FORMATS[1])
+-
+ if lha_available():
+ formats.extend(constants.LHA_FORMATS[1])
+
+@@ -71,10 +64,7 @@ def archive_mime_type(path):
+ else:
+ return constants.TAR
+
+- if magic == 'Rar!':
+- return constants.RAR
+-
+- elif magic == '7z\xBC\xAF':
++ if magic == '7z\xBC\xAF':
+ return constants.SEVENZIP
+
+ elif magic[2:] == '-l':
+@@ -124,11 +114,6 @@ def get_archive_handler(path):
+ return zip.ZipArchive(path)
+ elif mime in (constants.TAR, constants.GZIP, constants.BZIP2):
+ return tar.TarArchive(path)
+- elif mime == constants.RAR and rar.RarArchive.is_available():
+- return rar.RarArchive(path)
+- elif mime == constants.RAR and sevenzip.SevenZipArchive.is_available():
+- log.info('Using Sevenzip for RAR archives.')
+- return sevenzip.SevenZipArchive(path)
+ elif mime == constants.SEVENZIP and sevenzip.SevenZipArchive.is_available():
+ return sevenzip.SevenZipArchive(path)
+ elif mime == constants.LHA and lha.LhaArchive.is_available():
+diff --git a/mcomix/constants.py b/mcomix/constants.py
+index fad3b78..3c225c5 100644
+--- a/mcomix/constants.py
++++ b/mcomix/constants.py
+@@ -28,7 +28,7 @@ FILEINFO_PICKLE_PATH = os.path.join(DATA_DIR, 'file.pickle')
+ PREFERENCE_PICKLE_PATH = os.path.join(CONFIG_DIR, 'preferences.pickle')
+
+ ZOOM_MODE_BEST, ZOOM_MODE_WIDTH, ZOOM_MODE_HEIGHT, ZOOM_MODE_MANUAL, ZOOM_MODE_SIZE = range(5)
+-ZIP, RAR, TAR, GZIP, BZIP2, PDF, SEVENZIP, LHA = range(8)
++ZIP, TAR, GZIP, BZIP2, PDF, SEVENZIP, LHA = range(7)
+ NORMAL_CURSOR, GRAB_CURSOR, WAIT_CURSOR, NO_CURSOR = range(4)
+ LIBRARY_DRAG_EXTERNAL_ID, LIBRARY_DRAG_BOOK_ID, LIBRARY_DRAG_COLLECTION_ID = range(3)
+ AUTOROTATE_NEVER, AUTOROTATE_WIDTH_90, AUTOROTATE_WIDTH_270, \
+@@ -57,9 +57,6 @@ SUPPORTED_IMAGE_REGEX = re.compile(r'\.(jpg|jpeg|png|gif|tif|tiff|bmp|ppm|pgm|pb
+ ZIP_FORMATS = (
+ ('application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/x-cbz'),
+ ('*.zip', '*.cbz'))
+-RAR_FORMATS = (
+- ('application/x-rar', 'application/x-cbr'),
+- ('*.rar', '*.cbr'))
+ TAR_FORMATS = (
+ ('application/x-tar', 'application/x-gzip', 'application/x-bzip2', 'application/x-cbt'),
+ ('*.tar', '*.gz', '*.bz2', '*.bzip2', '*.cbt'))
+diff --git a/mcomix/file_chooser_base_dialog.py b/mcomix/file_chooser_base_dialog.py
+index 4d2a34e..c518842 100644
+--- a/mcomix/file_chooser_base_dialog.py
++++ b/mcomix/file_chooser_base_dialog.py
+@@ -88,9 +88,6 @@ class _BaseFileChooserDialog(gtk.Dialog):
+ # extractor availability.
+ mimetypes = constants.ZIP_FORMATS[0] + constants.TAR_FORMATS[0]
+ patterns = constants.ZIP_FORMATS[1] + constants.TAR_FORMATS[1]
+- if archive_tools.rar_available():
+- mimetypes += constants.RAR_FORMATS[0]
+- patterns += constants.RAR_FORMATS[1]
+ if archive_tools.szip_available():
+ mimetypes += constants.SZIP_FORMATS[0]
+ patterns += constants.SZIP_FORMATS[1]
+@@ -107,10 +104,6 @@ class _BaseFileChooserDialog(gtk.Dialog):
+ self.add_filter(_('Tar archives'),
+ *constants.TAR_FORMATS)
+
+- if archive_tools.rar_available():
+- self.add_filter(_('RAR archives'),
+- *constants.RAR_FORMATS)
+-
+ if archive_tools.szip_available():
+ self.add_filter(_('7z archives'),
+ *constants.SZIP_FORMATS)
+diff --git a/mcomix/messages/mcomix.pot b/mcomix/messages/mcomix.pot
+index 54ece85..482c051 100644
+--- a/mcomix/messages/mcomix.pot
++++ b/mcomix/messages/mcomix.pot
+@@ -24,7 +24,7 @@ msgid "%s is an image viewer specifically designed to handle comic books."
+ msgstr ""
+
+ #: mcomix/about_dialog.py:30
+-msgid "It reads ZIP, RAR and tar archives, as well as plain image files."
++msgid "It reads ZIP and tar archives, as well as plain image files."
+ msgstr ""
+
+ #: mcomix/about_dialog.py:34
+@@ -241,10 +241,6 @@ msgstr ""
+ msgid "Tar archives"
+ msgstr ""
+
+-#: mcomix/file_chooser_base_dialog.py:111
+-msgid "RAR archives"
+-msgstr ""
+-
+ #: mcomix/file_chooser_base_dialog.py:115
+ msgid "7z archives"
+ msgstr ""
+@@ -1345,10 +1341,6 @@ msgstr ""
+ msgid "Bzip2 compressed tar archive"
+ msgstr ""
+
+-#: mcomix/strings.py:13
+-msgid "RAR archive"
+-msgstr ""
+-
+ #: mcomix/strings.py:14
+ msgid "7z archive"
+ msgstr ""
+diff --git a/mcomix/process.py b/mcomix/process.py
+index 4ba60c6..c37699d 100644
+--- a/mcomix/process.py
++++ b/mcomix/process.py
+@@ -10,10 +10,7 @@ from mcomix import i18n
+ class Process:
+
+ """The subprocess and popen2 modules in Python are broken (see issue
+- #1336). The problem (i.e. complete crash) they can cause happen fairly
+- often (once is too often) in MComix when calling "rar" or "unrar" to
+- extract specific files from archives. We roll our own very simple
+- process spawning module here instead.
++ #1336). We roll our own very simple process spawning module here instead.
+ """
+ # TODO: I can no longer reproduce the issue. Check if this version of
+ # process.py still solves it.
+diff --git a/mcomix/recent.py b/mcomix/recent.py
+index 3d4613d..3f5c511 100644
+--- a/mcomix/recent.py
++++ b/mcomix/recent.py
+@@ -30,8 +30,7 @@ class RecentFilesMenu(gtk.RecentChooserMenu):
+ rfilter.add_pixbuf_formats()
+
+ mimetypes, patterns = itertools.izip(constants.ZIP_FORMATS,
+- constants.RAR_FORMATS, constants.TAR_FORMATS,
+- constants.SZIP_FORMATS)
++ constants.TAR_FORMATS, constants.SZIP_FORMATS)
+
+ for mimetype in itertools.chain.from_iterable(mimetypes):
+ rfilter.add_mime_type(mimetype)
+diff --git a/mcomix/strings.py b/mcomix/strings.py
+index c5ca21f..cc69236 100644
+--- a/mcomix/strings.py
++++ b/mcomix/strings.py
+@@ -3,14 +3,13 @@
+ This file should only be imported after gettext has been correctly initialized
+ and installed in the global namespace. """
+
+-from mcomix.constants import ZIP, TAR, GZIP, BZIP2, RAR, SEVENZIP, LHA
++from mcomix.constants import ZIP, TAR, GZIP, BZIP2, SEVENZIP, LHA
+
+ ARCHIVE_DESCRIPTIONS = {
+ ZIP: _('ZIP archive'),
+ TAR: _('Tar archive'),
+ GZIP: _('Gzip compressed tar archive'),
+ BZIP2: _('Bzip2 compressed tar archive'),
+- RAR: _('RAR archive'),
+ SEVENZIP: _('7z archive'),
+ LHA: _('LHA archive')
+ }
+diff --git a/mcomix.egg-info/SOURCES.txt b/mcomix.egg-info/SOURCES.txt
+index 62de3ad..85a65df 100644
+--- a/mcomix.egg-info/SOURCES.txt
++++ b/mcomix.egg-info/SOURCES.txt
+@@ -77,8 +77,6 @@ mcomix.egg-info/top_level.txt
+ mcomix/archive/__init__.py
+ mcomix/archive/archive_base.py
+ mcomix/archive/lha.py
+-mcomix/archive/rar.py
+-mcomix/archive/rarfile.py
+ mcomix/archive/sevenzip.py
+ mcomix/archive/tar.py
+ mcomix/archive/zip.py
+@@ -183,18 +181,13 @@ mime/comicthumb.1.gz
+ mime/mcomix.desktop
+ mime/mcomix.thumbnailer
+ mime/mcomix.xml
+-mime/icons/16x16/application-x-cbr.png
+ mime/icons/16x16/application-x-cbt.png
+ mime/icons/16x16/application-x-cbz.png
+-mime/icons/22x22/application-x-cbr.png
+ mime/icons/22x22/application-x-cbt.png
+ mime/icons/22x22/application-x-cbz.png
+-mime/icons/24x24/application-x-cbr.png
+ mime/icons/24x24/application-x-cbt.png
+ mime/icons/24x24/application-x-cbz.png
+-mime/icons/32x32/application-x-cbr.png
+ mime/icons/32x32/application-x-cbt.png
+ mime/icons/32x32/application-x-cbz.png
+-mime/icons/48x48/application-x-cbr.png
+ mime/icons/48x48/application-x-cbt.png
+-mime/icons/48x48/application-x-cbz.png
+\ No newline at end of file
++mime/icons/48x48/application-x-cbz.png
+diff --git a/mime/comicbook.schemas b/mime/comicbook.schemas
+index cdc4a4a..21b6214 100644
+--- a/mime/comicbook.schemas
++++ b/mime/comicbook.schemas
+@@ -1,28 +1,6 @@
+ <gconfschemafile>
+ <schemalist>
+ <schema>
+- <key>/schemas/desktop/gnome/thumbnailers/application@x-cbr/enable</key>
+- <applyto>/desktop/gnome/thumbnailers/application@x-cbr/enable</applyto>
+- <owner>comicthumb</owner>
+- <type>bool</type>
+- <default>true</default>
+- <locale name="C">
+- <short></short>
+- <long></long>
+- </locale>
+- </schema>
+- <schema>
+- <key>/schemas/desktop/gnome/thumbnailers/application@x-cbr/command</key>
+- <applyto>/desktop/gnome/thumbnailers/application@x-cbr/command</applyto>
+- <owner>comicthumb</owner>
+- <type>string</type>
+- <default>comicthumb %i %o %s</default>
+- <locale name="C">
+- <short></short>
+- <long></long>
+- </locale>
+- </schema>
+- <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/application@x-cbz/enable</key>
+ <applyto>/desktop/gnome/thumbnailers/application@x-cbz/enable</applyto>
+ <owner>comicthumb</owner>
+diff --git a/mime/comicthumb b/mime/comicthumb
+index 5728e2a..d77a4a1 100755
+--- a/mime/comicthumb
++++ b/mime/comicthumb
+@@ -7,7 +7,7 @@ comicthumb is dependent on the Python Imaging Library (PIL).
+ comicthumb was originally written by Christoph Wolk, this version was
+ re-written from scratch for Comix 4 by Pontus Ekberg.
+
+-Supported formats: ZIP, RAR and tar (.cbz, .cbr, .cbt)
++Supported formats: ZIP and tar (.cbz, .cbt)
+
+ Usage: comicthumb INFILE OUTFILE [SIZE]
+ """
+@@ -28,16 +28,13 @@ except ImportError:
+ print __doc__
+ sys.exit(1)
+
+-ZIP, RAR, TAR, GZIP, BZIP2 = range(5)
++ZIP, TAR, GZIP, BZIP2 = range(5)
+
+
+ class Process:
+
+ """The subprocess and popen2 modules in Python are broken (see issue
+- #1336). The problem (i.e. complete crash) they can cause happen fairly
+- often (once is too often) in Comix when calling "rar" or "unrar" to
+- extract specific files from archives. We roll our own very simple
+- process spawning module here instead.
++ #1336). We roll our own very simple process spawning module here instead.
+ """
+ # TODO: I can no longer reproduce the issue. Check if this version of
+ # process.py still solves it.
+@@ -94,19 +91,6 @@ class Extractor:
+ elif self._type in [TAR, GZIP, BZIP2]:
+ self._tfile = tarfile.open(src, 'r')
+ self._files = self._tfile.getnames()
+- elif self._type == RAR:
+- self._rar = None
+- for command in ('unrar', 'rar'):
+- if Process([command]).spawn() is not None:
+- self._rar = command
+- if self._rar == None:
+- print '! Could not find the "rar" or "unrar" executable.'
+- sys.exit(1)
+- proc = Process([self._rar, 'vb', src])
+- fobj = proc.spawn()
+- self._files = fobj.readlines()
+- proc.wait()
+- self._files = [name.rstrip('\n') for name in self._files]
+
+ def get_files(self):
+ """Return a list of the files in the archive."""
+@@ -121,11 +105,6 @@ class Extractor:
+ return cStringIO.StringIO(self._zfile.read(chosen))
+ elif self._type in [TAR, GZIP, BZIP2]:
+ return cStringIO.StringIO(self._tfile.extractfile(chosen).read())
+- elif self._type == RAR:
+- proc = Process([self._rar, 'p', '-inul', '-p-', '--',
+- self._src, chosen])
+- fobj = proc.spawn()
+- return cStringIO.StringIO(fobj.read())
+
+
+ def archive_mime_type(path):
+@@ -145,8 +124,6 @@ def archive_mime_type(path):
+ if magic.startswith('\037\213'):
+ return GZIP
+ return TAR
+- if magic == 'Rar!':
+- return RAR
+ except Exception:
+ print '! Error while reading', path
+ return None
+diff --git a/mime/mcomix.desktop b/mime/mcomix.desktop
+index ee6d8b9..19ec7cd 100644
+--- a/mime/mcomix.desktop
++++ b/mime/mcomix.desktop
+@@ -19,4 +19,4 @@ Terminal=false
+ Type=Application
+ StartupNotify=true
+ Categories=Graphics;Viewer;
+-MimeType=application/x-cbz;application/x-cbr;application/x-cbt;image/jpeg;image/png;image/gif;image/tiff;image/bmp;image/x-icon;image/x-xpixmap;image/x-xbitmap;application/x-zip;application/zip;application/x-rar;application/x-tar;application/x-gzip;application/x-bzip2;image/svg+xml;image/svg;image/svg-xml;image/vnd.adobe.svg+xml;text/xml-svg;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-pcx;image/x-cmu-raster;image/x-sun-raster;image/x-tga;application/x-7z-compressed;application/x-cb7;application/x-lzh;application/x-lha;application/x-lzh-compressed;
++MimeType=application/x-cbz;application/x-cbt;image/jpeg;image/png;image/gif;image/tiff;image/bmp;image/x-icon;image/x-xpixmap;image/x-xbitmap;application/x-zip;application/zip;application/x-tar;application/x-gzip;application/x-bzip2;image/svg+xml;image/svg;image/svg-xml;image/vnd.adobe.svg+xml;text/xml-svg;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-pcx;image/x-cmu-raster;image/x-sun-raster;image/x-tga;application/x-7z-compressed;application/x-cb7;application/x-lzh;application/x-lha;application/x-lzh-compressed;
+diff --git a/mime/mcomix.thumbnailer b/mime/mcomix.thumbnailer
+index 4dcfc67..667dc8b 100644
+--- a/mime/mcomix.thumbnailer
++++ b/mime/mcomix.thumbnailer
+@@ -1,4 +1,4 @@
+ [Thumbnailer Entry]
+ TryExec=comicthumb
+ Exec=comicthumb %u %o %s
+-MimeType=application/x-cbr;application/x-cbz;application/x-cbt;
++MimeType=application/x-cbz;application/x-cbt;
+diff --git a/mime/mcomix.xml b/mime/mcomix.xml
+index 765c254..b13e2da 100644
+--- a/mime/mcomix.xml
++++ b/mime/mcomix.xml
+@@ -5,11 +5,6 @@
+ <comment xml:lang="en">Comic Book Archive (Zip compressed)</comment>
+ <glob pattern="*.cbz"/>
+ </mime-type>
+- <mime-type type="application/x-cbr">
+- <sub-class-of type="application/x-rar"/>
+- <comment xml:lang="en">Comic Book Archive (RAR compressed)</comment>
+- <glob pattern="*.cbr"/>
+- </mime-type>
+ <mime-type type="application/x-cbt">
+ <sub-class-of type="application/x-compressed-tar"/>
+ <sub-class-of type="application/x-bzip-compressed-tar"/>
+diff --git a/setup.py b/setup.py
+index 9eb7782..9979111 100755
+--- a/setup.py
++++ b/setup.py
+@@ -78,23 +78,18 @@ setuptools.setup(
+ ('share/icons/hicolor/48x48/apps', ['mcomix/images/48x48/mcomix.png']),
+ ('share/icons/hicolor/16x16/mimetypes',
+ ['mime/icons/16x16/application-x-cbz.png',
+- 'mime/icons/16x16/application-x-cbr.png',
+ 'mime/icons/16x16/application-x-cbt.png']),
+ ('share/icons/hicolor/22x22/mimetypes',
+ ['mime/icons/22x22/application-x-cbz.png',
+- 'mime/icons/22x22/application-x-cbr.png',
+ 'mime/icons/22x22/application-x-cbt.png']),
+ ('share/icons/hicolor/24x24/mimetypes',
+ ['mime/icons/24x24/application-x-cbz.png',
+- 'mime/icons/24x24/application-x-cbr.png',
+ 'mime/icons/24x24/application-x-cbt.png']),
+ ('share/icons/hicolor/32x32/mimetypes',
+ ['mime/icons/32x32/application-x-cbz.png',
+- 'mime/icons/32x32/application-x-cbr.png',
+ 'mime/icons/32x32/application-x-cbt.png']),
+ ('share/icons/hicolor/48x48/mimetypes',
+ ['mime/icons/48x48/application-x-cbz.png',
+- 'mime/icons/48x48/application-x-cbr.png',
+ 'mime/icons/48x48/application-x-cbt.png'])],
+
+ # Package metadata
diff --git a/libre/mcomix/mcomix.install b/libre/mcomix/mcomix.install
new file mode 100644
index 000000000..82047a202
--- /dev/null
+++ b/libre/mcomix/mcomix.install
@@ -0,0 +1,31 @@
+pkgname=mcomix
+
+post_install() {
+ if [ -f usr/sbin/gconfpkg ]; then
+ usr/sbin/gconfpkg --install ${pkgname} &> /dev/null
+ fi
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ echo 'In case of any issues with zoom keybindings, delete ~/.config/mcomix/keybindings.conf.'
+ post_install $1
+}
+
+pre_remove() {
+ if [ -f usr/sbin/gconfpkg ]; then
+ usr/sbin/gconfpkg --uninstall ${pkgname} &> /dev/null
+ fi
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+}
diff --git a/libre/mcomix/zoom.patch b/libre/mcomix/zoom.patch
new file mode 100644
index 000000000..26dc3ba6f
--- /dev/null
+++ b/libre/mcomix/zoom.patch
@@ -0,0 +1,17 @@
+diff --git a/mcomix-1.00/mcomix/event.py b/mcomix-1.00-mod/mcomix/event.py
+index bc8cf79..bf80ec2 100644
+--- a/mcomix/event.py
++++ b/mcomix/event.py
+@@ -117,8 +117,11 @@ class EventHandler:
+
+ # Zooming commands for manual zoom mode
+ manager.register('zoom in',
+- ['equal'],
++ ['plus', 'KP_Add', 'equal'],
+ self._window.actiongroup.get_action('zoom_in').activate)
++ manager.register('zoom out',
++ ['minus', 'KP_Subtract'],
++ self._window.actiongroup.get_action('zoom_out').activate)
+ # Zoom out is already defined as GTK menu hotkey
+ manager.register('zoom original',
+ ['KP_0'],