py-sigal: update to 2.4. Version 2.4 ~~~~~~~~~~~ Released on 2023-09-29. Sigal now requires Pillow>=8.0.0 - Avoid IndexError with empty source dir [:issue:`498`]. - New cli option ``--force-album`` to reprocess only specific albums [:issue:`491`]. - Added support for black detection in video thumbnail generation [:issue:`485`]. - Don't show the galleria container if there are no medias [:issue:`484`]. - Force encrypt's password form to be on top [:issue:`483`]. - Add mkv to ``video_extensions`` [:issue:`481`]. - Make sure ``zip_gallery`` is set correctly [:issue:`477`]. - Updates for recent Pillow changes, requires Pillow>=8.0.0 [:issue:`479`]. - Make theme dir writable after copying to it [:issue:`471`]. - New plugin: Titleregexp - modify titles of albums with regular expressions [:issue:`469`]. - List of sort-properties as fallback instead of zero-length string [:issue:`468`].diff -r1.4 -r1.5 pkgsrc/www/py-sigal/Makefile
(wiz)
@@ -1,46 +1,45 @@ | @@ -1,46 +1,45 @@ | |||
1 | # $NetBSD: Makefile,v 1.4 2023/08/01 23:20:56 wiz Exp $ | 1 | # $NetBSD: Makefile,v 1.5 2023/10/19 15:39:44 wiz Exp $ | |
2 | 2 | |||
3 | DISTNAME= sigal-2.3 | 3 | DISTNAME= sigal-2.4 | |
4 | PKGNAME= ${PYPKGPREFIX}-${DISTNAME} | 4 | PKGNAME= ${PYPKGPREFIX}-${DISTNAME} | |
5 | PKGREVISION= 2 | |||
6 | CATEGORIES= www python | 5 | CATEGORIES= www python | |
7 | MASTER_SITES= ${MASTER_SITE_PYPI:=s/sigal/} | 6 | MASTER_SITES= ${MASTER_SITE_PYPI:=s/sigal/} | |
8 | 7 | |||
9 | MAINTAINER= pkgsrc-users@NetBSD.org | 8 | MAINTAINER= pkgsrc-users@NetBSD.org | |
10 | HOMEPAGE= https://pypi.org/project/sigal/ | 9 | HOMEPAGE= https://pypi.org/project/sigal/ | |
11 | COMMENT= Simple static gallery generator | 10 | COMMENT= Simple static gallery generator | |
12 | LICENSE= mit | 11 | LICENSE= mit | |
13 | 12 | |||
14 | TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools_scm-[0-9]*:../../devel/py-setuptools_scm | 13 | TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools_scm-[0-9]*:../../devel/py-setuptools_scm | |
15 | TOOL_DEPENDS+= ${PYPKGPREFIX}-wheel-[0-9]*:../../devel/py-wheel | 14 | TOOL_DEPENDS+= ${PYPKGPREFIX}-wheel-[0-9]*:../../devel/py-wheel | |
16 | DEPENDS+= ffmpeg6-[0-9]*:../../multimedia/ffmpeg6 | 15 | DEPENDS+= ffmpeg6-[0-9]*:../../multimedia/ffmpeg6 | |
17 | DEPENDS+= ${PYPKGPREFIX}-blinker-[0-9]*:../../devel/py-blinker | 16 | DEPENDS+= ${PYPKGPREFIX}-blinker-[0-9]*:../../devel/py-blinker | |
18 | DEPENDS+= ${PYPKGPREFIX}-click-[0-9]*:../../devel/py-click | 17 | DEPENDS+= ${PYPKGPREFIX}-click-[0-9]*:../../devel/py-click | |
19 | DEPENDS+= ${PYPKGPREFIX}-cryptography-[0-9]*:../../security/py-cryptography | 18 | DEPENDS+= ${PYPKGPREFIX}-cryptography-[0-9]*:../../security/py-cryptography | |
20 | DEPENDS+= ${PYPKGPREFIX}-feedgenerator-[0-9]*:../../www/py-feedgenerator | 19 | DEPENDS+= ${PYPKGPREFIX}-feedgenerator-[0-9]*:../../www/py-feedgenerator | |
21 | DEPENDS+= ${PYPKGPREFIX}-jinja2>=2.7:../../textproc/py-jinja2 | 20 | DEPENDS+= ${PYPKGPREFIX}-jinja2>=2.7:../../textproc/py-jinja2 | |
22 | DEPENDS+= ${PYPKGPREFIX}-markdown-[0-9]*:../../textproc/py-markdown | 21 | DEPENDS+= ${PYPKGPREFIX}-markdown-[0-9]*:../../textproc/py-markdown | |
23 | DEPENDS+= ${PYPKGPREFIX}-natsort-[0-9]*:../../textproc/py-natsort | 22 | DEPENDS+= ${PYPKGPREFIX}-natsort-[0-9]*:../../textproc/py-natsort | |
24 | DEPENDS+= ${PYPKGPREFIX}-Pillow-[0-9]*:../../graphics/py-Pillow | 23 | DEPENDS+= ${PYPKGPREFIX}-Pillow>=8.0:../../graphics/py-Pillow | |
25 | DEPENDS+= ${PYPKGPREFIX}-pilkit-[0-9]*:../../graphics/py-pilkit | 24 | DEPENDS+= ${PYPKGPREFIX}-pilkit-[0-9]*:../../graphics/py-pilkit | |
26 | TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test | 25 | TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test | |
27 | 26 | |||
28 | PYTHON_VERSIONS_INCOMPATIBLE= 27 | 27 | PYTHON_VERSIONS_INCOMPATIBLE= 27 | |
29 | 28 | |||
30 | USE_LANGUAGES= # none | 29 | USE_LANGUAGES= # none | |
31 | 30 | |||
32 | SUBST_CLASSES+= ffmpeg | 31 | SUBST_CLASSES+= ffmpeg | |
33 | SUBST_SED.ffmpeg+= -e "s,ffmpeg,${PREFIX}/bin/ffmpeg6," | 32 | SUBST_SED.ffmpeg+= -e "s,ffmpeg,${PREFIX}/bin/ffmpeg6," | |
34 | SUBST_FILES.ffmpeg+= sigal/settings.py | 33 | SUBST_FILES.ffmpeg+= src/sigal/settings.py | |
35 | SUBST_FILES.ffmpeg+= sigal/video.py | 34 | SUBST_FILES.ffmpeg+= src/sigal/video.py | |
36 | SUBST_STAGE.ffmpeg= pre-build | 35 | SUBST_STAGE.ffmpeg= pre-build | |
37 | SUBST_MESSAGE.ffmpeg= Fixing ffmpeg path. | 36 | SUBST_MESSAGE.ffmpeg= Fixing ffmpeg path. | |
38 | 37 | |||
39 | post-install: | 38 | post-install: | |
40 | cd ${DESTDIR}${PREFIX}/bin && mv sigal sigal-${PYVERSSUFFIX} || ${TRUE} | 39 | cd ${DESTDIR}${PREFIX}/bin && mv sigal sigal-${PYVERSSUFFIX} || ${TRUE} | |
41 | 40 | |||
42 | do-test: | 41 | do-test: | |
43 | cd ${WRKSRC} && ${SETENV} ${TEST_ENV} pytest-${PYVERSSUFFIX} | 42 | cd ${WRKSRC} && ${SETENV} ${TEST_ENV} pytest-${PYVERSSUFFIX} | |
44 | 43 | |||
45 | .include "../../lang/python/wheel.mk" | 44 | .include "../../lang/python/wheel.mk" | |
46 | .include "../../mk/bsd.pkg.mk" | 45 | .include "../../mk/bsd.pkg.mk" |
@@ -1,26 +1,28 @@ | @@ -1,26 +1,28 @@ | |||
1 | @comment $NetBSD: PLIST,v 1.1 2022/12/16 19:34:44 wiz Exp $ | 1 | @comment $NetBSD: PLIST,v 1.2 2023/10/19 15:39:44 wiz Exp $ | |
2 | bin/sigal-${PYVERSSUFFIX} | 2 | bin/sigal-3.11 | |
3 | ${PYSITELIB}/${WHEEL_INFODIR}/INSTALLER | 3 | ${PYSITELIB}/${WHEEL_INFODIR}/INSTALLER | |
4 | ${PYSITELIB}/${WHEEL_INFODIR}/LICENSE | 4 | ${PYSITELIB}/${WHEEL_INFODIR}/LICENSE | |
5 | ${PYSITELIB}/${WHEEL_INFODIR}/METADATA | 5 | ${PYSITELIB}/${WHEEL_INFODIR}/METADATA | |
6 | ${PYSITELIB}/${WHEEL_INFODIR}/RECORD | 6 | ${PYSITELIB}/${WHEEL_INFODIR}/RECORD | |
7 | ${PYSITELIB}/${WHEEL_INFODIR}/REQUESTED | 7 | ${PYSITELIB}/${WHEEL_INFODIR}/REQUESTED | |
8 | ${PYSITELIB}/${WHEEL_INFODIR}/WHEEL | 8 | ${PYSITELIB}/${WHEEL_INFODIR}/WHEEL | |
9 | ${PYSITELIB}/${WHEEL_INFODIR}/direct_url.json | 9 | ${PYSITELIB}/${WHEEL_INFODIR}/direct_url.json | |
10 | ${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt | 10 | ${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt | |
11 | ${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt | 11 | ${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt | |
12 | ${PYSITELIB}/sigal/__init__.py | 12 | ${PYSITELIB}/sigal/__init__.py | |
13 | ${PYSITELIB}/sigal/__init__.pyc | 13 | ${PYSITELIB}/sigal/__init__.pyc | |
14 | ${PYSITELIB}/sigal/__main__.py | |||
15 | ${PYSITELIB}/sigal/__main__.pyc | |||
14 | ${PYSITELIB}/sigal/gallery.py | 16 | ${PYSITELIB}/sigal/gallery.py | |
15 | ${PYSITELIB}/sigal/gallery.pyc | 17 | ${PYSITELIB}/sigal/gallery.pyc | |
16 | ${PYSITELIB}/sigal/image.py | 18 | ${PYSITELIB}/sigal/image.py | |
17 | ${PYSITELIB}/sigal/image.pyc | 19 | ${PYSITELIB}/sigal/image.pyc | |
18 | ${PYSITELIB}/sigal/log.py | 20 | ${PYSITELIB}/sigal/log.py | |
19 | ${PYSITELIB}/sigal/log.pyc | 21 | ${PYSITELIB}/sigal/log.pyc | |
20 | ${PYSITELIB}/sigal/plugins/__init__.py | 22 | ${PYSITELIB}/sigal/plugins/__init__.py | |
21 | ${PYSITELIB}/sigal/plugins/__init__.pyc | 23 | ${PYSITELIB}/sigal/plugins/__init__.pyc | |
22 | ${PYSITELIB}/sigal/plugins/adjust.py | 24 | ${PYSITELIB}/sigal/plugins/adjust.py | |
23 | ${PYSITELIB}/sigal/plugins/adjust.pyc | 25 | ${PYSITELIB}/sigal/plugins/adjust.pyc | |
24 | ${PYSITELIB}/sigal/plugins/compress_assets.py | 26 | ${PYSITELIB}/sigal/plugins/compress_assets.py | |
25 | ${PYSITELIB}/sigal/plugins/compress_assets.pyc | 27 | ${PYSITELIB}/sigal/plugins/compress_assets.pyc | |
26 | ${PYSITELIB}/sigal/plugins/copyright.py | 28 | ${PYSITELIB}/sigal/plugins/copyright.py | |
@@ -34,26 +36,28 @@ ${PYSITELIB}/sigal/plugins/encrypt/endec | @@ -34,26 +36,28 @@ ${PYSITELIB}/sigal/plugins/encrypt/endec | |||
34 | ${PYSITELIB}/sigal/plugins/encrypt/static/decrypt.js | 36 | ${PYSITELIB}/sigal/plugins/encrypt/static/decrypt.js | |
35 | ${PYSITELIB}/sigal/plugins/encrypt/static/keycheck.txt | 37 | ${PYSITELIB}/sigal/plugins/encrypt/static/keycheck.txt | |
36 | ${PYSITELIB}/sigal/plugins/encrypt/static/sw.js | 38 | ${PYSITELIB}/sigal/plugins/encrypt/static/sw.js | |
37 | ${PYSITELIB}/sigal/plugins/extended_caching.py | 39 | ${PYSITELIB}/sigal/plugins/extended_caching.py | |
38 | ${PYSITELIB}/sigal/plugins/extended_caching.pyc | 40 | ${PYSITELIB}/sigal/plugins/extended_caching.pyc | |
39 | ${PYSITELIB}/sigal/plugins/feeds.py | 41 | ${PYSITELIB}/sigal/plugins/feeds.py | |
40 | ${PYSITELIB}/sigal/plugins/feeds.pyc | 42 | ${PYSITELIB}/sigal/plugins/feeds.pyc | |
41 | ${PYSITELIB}/sigal/plugins/media_page.py | 43 | ${PYSITELIB}/sigal/plugins/media_page.py | |
42 | ${PYSITELIB}/sigal/plugins/media_page.pyc | 44 | ${PYSITELIB}/sigal/plugins/media_page.pyc | |
43 | ${PYSITELIB}/sigal/plugins/nomedia.py | 45 | ${PYSITELIB}/sigal/plugins/nomedia.py | |
44 | ${PYSITELIB}/sigal/plugins/nomedia.pyc | 46 | ${PYSITELIB}/sigal/plugins/nomedia.pyc | |
45 | ${PYSITELIB}/sigal/plugins/nonmedia_files.py | 47 | ${PYSITELIB}/sigal/plugins/nonmedia_files.py | |
46 | ${PYSITELIB}/sigal/plugins/nonmedia_files.pyc | 48 | ${PYSITELIB}/sigal/plugins/nonmedia_files.pyc | |
49 | ${PYSITELIB}/sigal/plugins/titleregexp.py | |||
50 | ${PYSITELIB}/sigal/plugins/titleregexp.pyc | |||
47 | ${PYSITELIB}/sigal/plugins/upload_s3.py | 51 | ${PYSITELIB}/sigal/plugins/upload_s3.py | |
48 | ${PYSITELIB}/sigal/plugins/upload_s3.pyc | 52 | ${PYSITELIB}/sigal/plugins/upload_s3.pyc | |
49 | ${PYSITELIB}/sigal/plugins/watermark.py | 53 | ${PYSITELIB}/sigal/plugins/watermark.py | |
50 | ${PYSITELIB}/sigal/plugins/watermark.pyc | 54 | ${PYSITELIB}/sigal/plugins/watermark.pyc | |
51 | ${PYSITELIB}/sigal/plugins/zip_gallery.py | 55 | ${PYSITELIB}/sigal/plugins/zip_gallery.py | |
52 | ${PYSITELIB}/sigal/plugins/zip_gallery.pyc | 56 | ${PYSITELIB}/sigal/plugins/zip_gallery.pyc | |
53 | ${PYSITELIB}/sigal/settings.py | 57 | ${PYSITELIB}/sigal/settings.py | |
54 | ${PYSITELIB}/sigal/settings.pyc | 58 | ${PYSITELIB}/sigal/settings.pyc | |
55 | ${PYSITELIB}/sigal/signals.py | 59 | ${PYSITELIB}/sigal/signals.py | |
56 | ${PYSITELIB}/sigal/signals.pyc | 60 | ${PYSITELIB}/sigal/signals.pyc | |
57 | ${PYSITELIB}/sigal/templates/sigal.conf.py | 61 | ${PYSITELIB}/sigal/templates/sigal.conf.py | |
58 | ${PYSITELIB}/sigal/templates/sigal.conf.pyc | 62 | ${PYSITELIB}/sigal/templates/sigal.conf.pyc | |
59 | ${PYSITELIB}/sigal/themes/colorbox/static/css/colorbox.css | 63 | ${PYSITELIB}/sigal/themes/colorbox/static/css/colorbox.css |
@@ -1,7 +1,7 @@ | @@ -1,7 +1,7 @@ | |||
1 | $NetBSD: distinfo,v 1.2 2023/03/08 21:05:58 wiz Exp $ | 1 | $NetBSD: distinfo,v 1.3 2023/10/19 15:39:44 wiz Exp $ | |
2 | 2 | |||
3 | BLAKE2s (sigal-2.3.tar.gz) = a8b9a0f0f937e287b1283a2a9fe7551e268c1438235db8a27e9ca3fa9c002856 | 3 | BLAKE2s (sigal-2.4.tar.gz) = 5fab877c426c6bda5dd839f784b060b33cbc0a5ccd2c2c2a788c70a98d00c76d | |
4 | SHA512 (sigal-2.3.tar.gz) = e7eafc3c624497f19fdc9eb96fce67789db027b3c34c28eadcc162dd176a2462e101f16ffd54e08ee85baf1a9d264c5657e6cd264c40e155def4eee539242597 | 4 | SHA512 (sigal-2.4.tar.gz) = 1cc53760a73ae868491714d22a3108eaf95a84d61895591349b644ea523f0dfd88344c1e09f0792eb23164dd113833ac4bb112f687ef551ce15f70b6c70b07d3 | |
5 | Size (sigal-2.3.tar.gz) = 4652875 bytes | 5 | Size (sigal-2.4.tar.gz) = 4773394 bytes | |
6 | SHA1 (patch-sigal_gallery.py) = a59c0e1cb954b9045be3436c4686f073d099b1e0 | 6 | SHA1 (patch-src_sigal_gallery.py) = bf5b5100947b77799d84f24223c0aa3956138d81 | |
7 | SHA1 (patch-sigal_image.py) = ab9da9578da4c3a7d364f05978803fd538fdc886 | 7 | SHA1 (patch-src_sigal_image.py) = 9eccca4fd65e05b8d676038362c95c5ee8225502 |
$NetBSD: patch-src_sigal_gallery.py,v 1.1 2023/10/19 15:39:44 wiz Exp $
Fix bug in img_format configuration parameter.
https://github.com/saimn/sigal/issues/436
--- src/sigal/gallery.py.orig 2023-09-29 07:03:55.000000000 +0000
+++ src/sigal/gallery.py
@@ -243,6 +243,7 @@ class Image(Media):
# Register all formats
PILImage.init()
+ PILImage.registered_extensions()
if imgformat and PILImage.EXTENSION[self.src_ext] != imgformat.upper():
# Find the extension that should match img_format
extensions = {v: k for k, v in PILImage.EXTENSION.items()}
$NetBSD: patch-src_sigal_image.py,v 1.1 2023/10/19 15:39:44 wiz Exp $
Add HEIF support using pillow_heif, if it's installed.
https://github.com/saimn/sigal/issues/436
--- src/sigal/image.py.orig 2023-09-29 07:03:55.000000000 +0000
+++ src/sigal/image.py
@@ -49,6 +49,11 @@ from . import signals, utils
# Force loading of truncated files
ImageFile.LOAD_TRUNCATED_IMAGES = True
+try:
+ from pillow_heif import HeifImagePlugin
+except ImportError:
+ HeifImagePlugin = None
+
def _has_exif_tags(img):
return hasattr(img, "info") and "exif" in img.info