From e8622c06b4d4a99555b91eb256a3eda6c3f1e655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Giancarlo=20Dess=C3=AC?= Date: Fri, 2 Jun 2023 21:36:37 +0100 Subject: [PATCH] graphics/FotoKilof: Added (graphic interface for ImageMagick) Signed-off-by: bedlam Signed-off-by: Willy Sudiarto Raharjo --- graphics/FotoKilof/FotoKilof.SlackBuild | 154 ++++++++++++++++++ graphics/FotoKilof/FotoKilof.info | 10 ++ graphics/FotoKilof/README | 23 +++ graphics/FotoKilof/doinst.sh | 13 ++ graphics/FotoKilof/icon.png | Bin 0 -> 35212 bytes .../move_fotokilof-to-__main__.patch | 94 +++++++++++ graphics/FotoKilof/slack-desc | 19 +++ 7 files changed, 313 insertions(+) create mode 100644 graphics/FotoKilof/FotoKilof.SlackBuild create mode 100644 graphics/FotoKilof/FotoKilof.info create mode 100644 graphics/FotoKilof/README create mode 100644 graphics/FotoKilof/doinst.sh create mode 100644 graphics/FotoKilof/icon.png create mode 100644 graphics/FotoKilof/move_fotokilof-to-__main__.patch create mode 100644 graphics/FotoKilof/slack-desc diff --git a/graphics/FotoKilof/FotoKilof.SlackBuild b/graphics/FotoKilof/FotoKilof.SlackBuild new file mode 100644 index 0000000000..af907a449e --- /dev/null +++ b/graphics/FotoKilof/FotoKilof.SlackBuild @@ -0,0 +1,154 @@ +#!/bin/bash + +# Slackware build script for FotoKilof + +# Copyright 2023 Giancarlo Dessì, Cagliari, IT +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=FotoKilof +VERSION=${VERSION:-4.3.2} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# Global patch to allow the build from source without postinstall issues +# occurred in Slackware: fotokilof.py must be moved to __main__.py +# Thanks to Team-TL aka Tomasz Łuczak for the support +patch -p0 < $CWD/move_fotokilof-to-__main__.patch +mv ./fotokilof/fotokilof.py ./fotokilof/__main__.py + +python3 setup.py install --root=$PKG + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +#Install the application icon and desktop entry +mkdir -p $PKG/usr/share/icons/hicolor/256x256/apps +cp -a $CWD/icon.png $PKG/usr/share/icons/hicolor/256x256/apps/fotokilof.png + +mkdir -p $PKG/usr/share/applications +cat << EOF > $PKG/usr/share/applications/fotokilof.desktop +[Desktop Entry] +Type=Application +Name=FotoKilof +GenericName=Graphical Interface for ImageMagick +GenericName[bg]=Графичен интерфейс за ImageMagick +GenericName[de]=Grafische Benutzeroberfläche für ImageMagick +GenericName[es]=Interfaz gráfica para ImageMagick +GenericName[fr]=Interface graphique pour ImageMagick +GenericName[id]=Antarmuka Grafis untuk ImageMagick +GenericName[it]=Interfaccia grafica per ImageMagick +GenericName[pl]=Interfejs graficzny dla ImageMagick +GenericName[pt]=Interface Gráfica para ImageMagick +GenericName[tr]=ImageMagick için Grafik Arayüzü +Comment=Graphical Interface to various ImageMagick functions for processing pictures +Comment[bg]=Графичен интерфейс към различни функции на ImageMagick за обработка на снимки +Comment[de]=Grafische Benutzeroberfläche zu verschiedenen ImageMagick-Funktionen zur Bildbearbeitung +Comment[es]=Interfaz gráfica para varias funciones de ImageMagick para el procesamiento de imágenes +Comment[fr]=Interface graphique vers diverses fonctions ImageMagick pour le traitement des images +Comment[id]=Antarmuka Grafis ke berbagai fungsi ImageMagick untuk memproses gambar +Comment[it]=Interfaccia grafica a varie funzioni di ImageMagick per l'elaborazione delle immagini +Comment[pl]=Interfejs graficzny do różnych funkcji ImageMagick do przetwarzania obrazów +Comment[pt]=Interface gráfica para várias funções do ImageMagick para processamento de imagens +Comment[tr]=Resimleri işlemek için çeşitli ImageMagick işlevlerine Grafik Arayüzü +Exec=/usr/bin/fotokilof +Icon=/usr/share/icons/hicolor/256x256/apps/fotokilof.png +Terminal=false +Categories=Graphics; +StartupNotify=true +MimeType=image/jpeg;image/png;image/tiff; + +EOF + +# Create manually and install an executable python script needed to +# launch the application (Derived from the FotoKilof package installed with pip) +mkdir -p $PKG/usr/bin +cat << 'EOF' > $PKG/usr/bin/fotokilof +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from fotokilof import __main__ +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(__main__()) + +EOF + +chmod 755 $PKG/usr/bin/fotokilof + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a *.md $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/graphics/FotoKilof/FotoKilof.info b/graphics/FotoKilof/FotoKilof.info new file mode 100644 index 0000000000..16699608e6 --- /dev/null +++ b/graphics/FotoKilof/FotoKilof.info @@ -0,0 +1,10 @@ +PRGNAM="FotoKilof" +VERSION="4.3.2" +HOMEPAGE="https://github.com/TeaM-TL/FotoKilof" +DOWNLOAD="https://github.com/TeaM-TL/FotoKilof/archive/4.3.2/FotoKilof-4.3.2.tar.gz" +MD5SUM="36ee5d7e6db63772cf536d496b16e87d" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="python-wand ttkbootstrap" +MAINTAINER="Giancarlo Dessì" +EMAIL="slack@giand.it" diff --git a/graphics/FotoKilof/README b/graphics/FotoKilof/README new file mode 100644 index 0000000000..167cd0441d --- /dev/null +++ b/graphics/FotoKilof/README @@ -0,0 +1,23 @@ +FotoKilof is a Graphical User Interface for ImageMagick and Wand +that allows, as alternative to command line approach, the processing +of pictures and other graphic files in JPEG, PNG, TIFF, and (for +import) SVG formats. + +FotoKilof does not give access to the whole functionality of +ImageMagick, but it supports most of its usual functions and features, +so may be useful for users that have no familiarity with the shell +interface to ImageMagick. Also, the preview features allow to prevent +errors from accidental overwriting of a number of pictures by setting +incorrect options to ImageMagick commands, i.e. when users crop or +resize images. + +FotoKilof supports common kinds of graphic conversion like resizing, +crop, rotation, mirroring, addition of text, logos, borders, +conversion in other formats, applying of filters or effects (sepia, +black-white, equalization, contrast increase/decrease, histogram +stretching, ecc.). For a full information about features and functions +of FotoKilof please see the home page of the project. + +FotoKilof is written in Python and its GUI uses tkinter (already +included in the Slackware's Python 3 package), the python theme engine +for Tk, so your system must have the Tk/Tcl platform installed. diff --git a/graphics/FotoKilof/doinst.sh b/graphics/FotoKilof/doinst.sh new file mode 100644 index 0000000000..aea0f894eb --- /dev/null +++ b/graphics/FotoKilof/doinst.sh @@ -0,0 +1,13 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +if [ -x /usr/bin/update-mime-database ]; then + /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 +fi + +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi diff --git a/graphics/FotoKilof/icon.png b/graphics/FotoKilof/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f413117be0c7de0a79f8c59744bee390f7043f5b GIT binary patch literal 35212 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 literal 0 HcmV?d00001 diff --git a/graphics/FotoKilof/move_fotokilof-to-__main__.patch b/graphics/FotoKilof/move_fotokilof-to-__main__.patch new file mode 100644 index 0000000000..5771767cbd --- /dev/null +++ b/graphics/FotoKilof/move_fotokilof-to-__main__.patch @@ -0,0 +1,94 @@ +This patch solves the issues in the build from source from Slackware +It is extracted from the last changes committed in the current git branch +by the author Team-TL. +Thanks to Team-TL (aka Tomasz Łuczak) + +--- fotokilof/fotokilof.sh 2023-04-26 21:00:46.000000000 +0200 ++++ fotokilof/fotokilof.sh 2023-06-01 19:05:41.388973243 +0200 +@@ -2,5 +2,5 @@ + + # MYPATH - path to FotoKilof python source +-MAIN=fotokilof.py ++MAIN=__main__.py + MYPATH="${0%/*}" + cd $MYPATH + +--- ./fotokilof/__init__.py 2023-04-26 21:00:46.000000000 +0200 ++++ ./fotokilof/__init__.py 2023-06-01 19:04:14.564973735 +0200 +@@ -2,5 +2,5 @@ + + """ +-Copyright (c) 2019-2022 Tomasz Łuczak, TeaM-TL ++Copyright (c) 2019-2023 Tomasz Łuczak, TeaM-TL + + Permission is hereby granted, free of charge, to any person obtaining a copy + +--- ./setup.py 2023-04-26 21:00:46.000000000 +0200 ++++ ./setup.py 2023-06-01 19:01:40.430974610 +0200 +@@ -1,3 +1,3 @@ +-import setuptools ++from setuptools import setup, find_packages + + with open("README.md", "r") as fh: +@@ -7,5 +7,5 @@ + with open("fotokilof/version.py") as fp: + exec(fp.read(), pkg_vars) +-setuptools.setup( ++setup( + name=pkg_vars['__appname__'], + version=pkg_vars['__version__'], +@@ -17,5 +17,4 @@ + long_description=long_description, + long_description_content_type="text/markdown", +- packages=setuptools.find_packages(), + license="MIT", + classifiers=[ +@@ -26,11 +25,12 @@ + ], + python_requires='>=3.6', +- install_requires=['pillow','wand','ttkbootstrap'], +- entry_points = { +- "gui_scripts": [ +- "fotokilof = fotokilof:__main__", +- ] +- }, + include_package_data=True, ++ packages=find_packages(), ++ install_requires=['pillow','wand','ttkbootstrap'], ++# entry_points = { ++# "gui_scripts": [ ++# "fotokilof = fotokilof:__main__", ++# ] ++# }, + ) + +--- ./scripts/0_pypi_setuptools.sh 2023-04-26 21:00:46.000000000 +0200 ++++ ./scripts/0_pypi_setuptools.sh 2023-06-01 19:07:20.691972680 +0200 +@@ -4,13 +4,8 @@ + rm -rf ../fotokilof/__pycache__ + CWD=`pwd` +-INITPY="fotokilof/__init__.py" +-MAINPY="fotokilof/fotokilof.py" +-MAIN__PY="fotokilof/__main__.py" + + echo "- PyPI ---" + + cd .. +-touch $INITPY +-mv $MAINPY $MAIN__PY + + # Python 3.8 +@@ -19,5 +14,4 @@ + python3 setup.py sdist bdist_wheel + +-mv $MAIN__PY $MAINPY + cd $CWD + +--- ./MANIFEST.in 2023-04-26 21:00:46.000000000 +0200 ++++ ./MANIFEST.in 2023-06-01 19:00:41.446974944 +0200 +@@ -11,4 +11,4 @@ + + # Include locale +-recursive-include fotokilof/locale * ++recursive-include locale *.mo + diff --git a/graphics/FotoKilof/slack-desc b/graphics/FotoKilof/slack-desc new file mode 100644 index 0000000000..da6f0e503a --- /dev/null +++ b/graphics/FotoKilof/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +FotoKilof: FotoKilof (graphic interface for ImageMagick functionality) +FotoKilof: +FotoKilof: FotoKilof is a Graphical interface written in Python which +FotoKilof: allows you to process pictures with ImageMagick as alternative to +FotoKilof: command line. +FotoKilof: It supports most ImageMagick functionality giving at the same time a +FotoKilof: comfortable graphical user interface. +FotoKilof: +FotoKilof: Home page: https://github.com/TeaM-TL/FotoKilof +FotoKilof: +FotoKilof: