mcomix: update to 2.0.0.

This commit is contained in:
Leah Neukirchen 2022-01-30 14:54:43 +01:00
parent f9b91014b6
commit e9c69504db
3 changed files with 11 additions and 139 deletions

View file

@ -1,116 +0,0 @@
Grabbed from https://github.com/mat813/freebsd-ports/tree/d9a5e385afb3dab755ebe5138b09cf7351f992d9/graphics/py-mcomix/files
--- a/mcomix/image_tools.py 2016-02-12 18:51:58 UTC
+++ b/mcomix/image_tools.py
@@ -9,7 +9,6 @@ import gtk
from PIL import Image
from PIL import ImageEnhance
from PIL import ImageOps
-from PIL.JpegImagePlugin import _getexif
try:
from PIL import PILLOW_VERSION
PIL_VERSION = ('Pillow', PILLOW_VERSION)
@@ -51,7 +50,38 @@ assert MISSING_IMAGE_ICON
GTK_GDK_COLOR_BLACK = gtk.gdk.color_parse('black')
GTK_GDK_COLOR_WHITE = gtk.gdk.color_parse('white')
+def _getexif(im):
+ exif={}
+ try:
+ exif.update(im.getexif())
+ except AttributeError:
+ pass
+ if exif:
+ return exif
+ # Exif of PNG is still buggy in Pillow 6.0.0
+ try:
+ l1,l2,size,lines=im.info.get('Raw profile type exif').splitlines()
+ if l2!='exif':
+ # Not valid Exif data.
+ return {}
+ size=int(size)
+ data=binascii.unhexlify(''.join(lines))
+ if len(data)!=size:
+ # Size not match.
+ return {}
+ im.info['exif']=data
+ except:
+ # Not valid Exif data.
+ return {}
+
+ # load Exif again
+ try:
+ exif.update(im.getexif())
+ except AttributeError:
+ pass
+ return exif
+
def rotate_pixbuf(src, rotation):
rotation %= 360
if 0 == rotation:
@@ -300,14 +330,7 @@ def pil_to_pixbuf(im, keep_orientation=False):
)
if keep_orientation:
# Keep orientation metadata.
- orientation = None
- exif = im.info.get('exif')
- if exif is not None:
- exif = _getexif(im)
- orientation = exif.get(274, None)
- if orientation is None:
- # Maybe it's a PNG? Try alternative method.
- orientation = _get_png_implied_rotation(im)
+ orientation = _getexit(im).get(274, None)
if orientation is not None:
setattr(pixbuf, 'orientation', str(orientation))
return pixbuf
@@ -385,39 +408,6 @@ def enhance(pixbuf, brightness=1.0, contrast=1.0, satu
im = ImageEnhance.Sharpness(im).enhance(sharpness)
return pil_to_pixbuf(im)
-def _get_png_implied_rotation(pixbuf_or_image):
- """Same as <get_implied_rotation> for PNG files.
-
- Lookup for Exif data in the tEXt chunk.
- """
- if isinstance(pixbuf_or_image, gtk.gdk.Pixbuf):
- exif = pixbuf_or_image.get_option('tEXt::Raw profile type exif')
- elif isinstance(pixbuf_or_image, Image.Image):
- exif = pixbuf_or_image.info.get('Raw profile type exif')
- else:
- raise ValueError()
- if exif is None:
- return None
- exif = exif.split('\n')
- if len(exif) < 4 or 'exif' != exif[1]:
- # Not valid Exif data.
- return None
- size = int(exif[2])
- try:
- data = binascii.unhexlify(''.join(exif[3:]))
- except TypeError:
- # Not valid hexadecimal content.
- return None
- if size != len(data):
- # Sizes should match.
- return None
- im = namedtuple('FakeImage', 'info')({ 'exif': data })
- exif = _getexif(im)
- orientation = exif.get(274, None)
- if orientation is not None:
- orientation = str(orientation)
- return orientation
-
def get_implied_rotation(pixbuf):
"""Return the implied rotation in degrees: 0, 90, 180, or 270.
@@ -429,9 +419,6 @@ def get_implied_rotation(pixbuf):
orientation = getattr(pixbuf, 'orientation', None)
if orientation is None:
orientation = pixbuf.get_option('orientation')
- if orientation is None:
- # Maybe it's a PNG? Try alternative method.
- orientation = _get_png_implied_rotation(pixbuf)
if orientation == '3':
return 180
elif orientation == '6':

View file

@ -1,16 +0,0 @@
Grabbed from https://github.com/mat813/freebsd-ports/tree/d9a5e385afb3dab755ebe5138b09cf7351f992d9/graphics/py-mcomix/files
--- a/mcomix/run.py 2016-02-12 18:52:12 UTC
+++ b/mcomix/run.py
@@ -203,7 +203,11 @@ def run():
try:
import PIL.Image
- assert PIL.Image.VERSION >= '1.1.5'
+ try:
+ assert PIL.Image.VERSION >= '1.1.5'
+ except AttributeError:
+ # Field VERSION deprecated in Pillow 5.2.0 and dropped in 6.0.0
+ assert PIL.__version__ >= '5.2.0'
except AssertionError:
log.error( _("You don't have the required version of the Python Imaging"), end=' ')

View file

@ -1,13 +1,17 @@
# Template file for 'mcomix'
pkgname=mcomix
version=1.2.1
revision=4
build_style=python2-module
hostmakedepends="python-setuptools"
depends="python-setuptools pygtk python-Pillow xdg-utils"
version=2.0.0
revision=1
build_style=python3-module
hostmakedepends="python3-setuptools"
depends="python3-gobject python3-cairo python3-Pillow xdg-utils"
short_desc="GTK+ comic book viewer"
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="GPL-2.0-only"
homepage="http://sourceforge.net/projects/mcomix/"
distfiles="${SOURCEFORGE_SITE}/${pkgname}/MComix-${version}/${pkgname}-${version}.tar.bz2"
checksum=7e43159dc585bc9bc31970a44bd2b4e42c303660c4c8cf7f0eda413a6f72fa3b
distfiles="${SOURCEFORGE_SITE}/${pkgname}/MComix-${version}/${pkgname}-${version}.tar.gz"
checksum=a3ef3d76ee34a82b67e91d3ea0e2b19b88179421698c73453829eceaca895d89
post_install() {
cp -r mcomix/images ${DESTDIR}/usr/lib/python3.*/site-packages/mcomix
}