summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2022-07-13 16:54:21 +0100
committerMarek Szuba <marecki@gentoo.org>2022-07-13 16:55:32 +0100
commit0b720cdd65bf37337aa5d1e8715f825a9c8977e8 (patch)
tree62a80648efbfa3ffcd31066141a25bd6ba18f5c6 /media-gfx/gmic
parentsys-cluster/singularity: treeclean (diff)
downloadgentoo-0b720cdd65bf37337aa5d1e8715f825a9c8977e8.tar.gz
gentoo-0b720cdd65bf37337aa5d1e8715f825a9c8977e8.tar.bz2
gentoo-0b720cdd65bf37337aa5d1e8715f825a9c8977e8.zip
media-gfx/gmic: add 3.1.5, masked
Serious upstream borkage of build scripts since 3.1.0, needs more work to get rid of all QA violations. Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'media-gfx/gmic')
-rw-r--r--media-gfx/gmic/Manifest1
-rw-r--r--media-gfx/gmic/files/gmic-3.1.5-makefile_automagic.patch131
-rw-r--r--media-gfx/gmic/gmic-3.1.5.ebuild107
3 files changed, 239 insertions, 0 deletions
diff --git a/media-gfx/gmic/Manifest b/media-gfx/gmic/Manifest
index 12e056f95844..baa4209a704d 100644
--- a/media-gfx/gmic/Manifest
+++ b/media-gfx/gmic/Manifest
@@ -1 +1,2 @@
DIST gmic_3.0.1.tar.gz 10457923 BLAKE2B b495d10237abf5abe3d7df166119d2fc0b04142975d97db01ab0c5aa177f6e681931799fb392844e5c34d0503874a16d946a7146c5152cca1e64107948c02c03 SHA512 4bc08a3510e8987eea0463bfcf04de6dfd9a8ee8a38c14661ff201b8f563cab1b914dc60dc35b082cb5e868eb6232e2240a2d6703e0751215a82d6709236946a
+DIST gmic_3.1.5.tar.gz 10782647 BLAKE2B 9334f61b4309dec31d5dd0c52b87a97628bfa819602f3bac03cbc74c26a65dc660c0f4ae5c84d2aba5062ebc2869ae3d656e6fc2b2f9c9d0565d07762a920d21 SHA512 7e27856db8b68fde33e50f09a9d07479b67843388a98edc891deab51828d922200af20afee163984e0c7660e46387d1fe514d35ac3e3d9c8ebe02b0aa89cbc96
diff --git a/media-gfx/gmic/files/gmic-3.1.5-makefile_automagic.patch b/media-gfx/gmic/files/gmic-3.1.5-makefile_automagic.patch
new file mode 100644
index 000000000000..8dbe50d6e194
--- /dev/null
+++ b/media-gfx/gmic/files/gmic-3.1.5-makefile_automagic.patch
@@ -0,0 +1,131 @@
+Includes the OpenEXR3 patch as well as support for building with USE=-X,
+as the relevant lines are deeply embedded in the automagic stuff.
+
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -226,8 +226,10 @@
+
+ # Enable parallelization in CImg, using OpenMP.
+ # (http://www.openmp.org/)
++ifeq ($(GMIC_USE_OPENMP),yes)
+ OPENMP_CFLAGS = -fopenmp -Dcimg_use_openmp
+ OPENMP_LIBS = -lgomp
++endif
+
+ # Enable software debugging.
+ # (Use address sanitizer and thus slows down the code)
+@@ -249,9 +251,13 @@
+ # Enable image display, using X11 (Unix).
+ # (Keep /usr/ dirname here since X11 is located in /usr/ on Mac too)
+ ifneq ($(OS),Darwin)
++ifeq ($(GMIC_USE_X11),yes)
+ X11_CFLAGS = -Dcimg_display=1 $(shell pkg-config --cflags x11 || echo -I/usr/X11R6/include) #-Dcimg_use_xrandr
+ X11_LIBS = $(shell pkg-config --libs x11 || echo -L/usr/X11R6/lib -lX11) -lpthread # $(shell pkg-config --libs xrandr || echo -lXrandr)
+ else
++X11_CFLAGS = -Dcimg_display=0
++endif
++else
+ ifeq (,$(wildcard /usr/X11))
+ X11_CFLAGS = -Dcimg_display=0 #-Dcimg_use_xrandr
+ X11_LIBS = -lpthread # $(shell pkg-config --libs xrandr || echo -lXrandr)
+@@ -263,8 +269,10 @@
+
+ # Enable faster X11 display, using XShm extension.
+ # (ftp://www.x.org/pub/X11R7.7/doc/man/man3/XShm.3.xhtml)
++ifeq ($(GMIC_USE_XSHM),yes)
+ XSHM_CFLAGS = -Dcimg_use_xshm $(shell pkg-config --cflags xcb-shm)
+ XSHM_LIBS = $(shell pkg-config --libs xcb-shm || echo -L$(USR)/X11R6/lib) -lXext
++endif
+
+ # Enable image display, using GDI32 (Windows).
+ GDI32_CFLAGS = -Dcimg_display=2
+@@ -273,8 +281,10 @@
+ # Enable native support of PNG image files, using the PNG library.
+ # (http://www.libpng.org/pub/png/libpng.html)
+ ifneq ($(OS),Darwin)
++ifeq ($(GMIC_USE_PNG),yes)
+ PNG_CFLAGS = -Dcimg_use_png $(shell pkg-config --cflags libpng)
+ PNG_LIBS = $(shell pkg-config --libs libpng || echo -lpng -lz)
++endif
+ else
+ ifeq (,$(wildcard /tmp/skl))
+ PNG_CFLAGS = -Dcimg_use_png $(shell pkg-config --cflags libpng)
+@@ -287,56 +297,76 @@
+
+ # Enable native support of JPEG image files, using the JPEG library.
+ # (http://libjpeg.sourceforge.net/)
++ifeq ($(GMIC_USE_JPEG),yes)
+ JPEG_CFLAGS = -Dcimg_use_jpeg $(shell pkg-config --cflags libjpeg)
+ JPEG_LIBS = $(shell pkg-config --libs libjpeg || echo -ljpeg)
++endif
+
+ # Enable native support of TIFF image files, using the TIFF library.
+ # (http://www.libtiff.org/)
++ifeq ($(GMIC_USE_TIFF),yes)
+ TIFF_CFLAGS = -Dcimg_use_tiff $(shell pkg-config --cflags libtiff-4)
+ TIFF_LIBS = $(shell pkg-config --libs libtiff-4 || echo -ltiff)
++endif
+
+ # Enable native support for loading HEIC/AVIF image files, using the libheif library.
+ # ( https://github.com/strukturag/libheif )
++ifeq ($(GMIC_USE_HEIF),yes)
+ HEIF_CFLAGS = -Dcimg_use_heif
+ HEIF_LIBS = -lheif
++endif
+
+ # Enable native support of MINC2 image files, using the MINC2 library.
+ # ( http://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_Users_Guide )
++ifeq ($(GMIC_USE_MINC2),yes)
+ MINC2_CFLAGS = -Dcimg_use_minc2 -I${HOME}/local/include
+ MINC2_LIBS = -lminc_io -lvolume_io2 -lminc2 -lnetcdf -lhdf5 -lz -L${HOME}/local/lib
++endif
+
+ # Enable native support for downloading files from the network.
+ # ( http://curl.haxx.se/libcurl/ )
++ifeq ($(GMIC_USE_CURL),yes)
+ CURL_CFLAGS = -Dcimg_use_curl $(shell pkg-config --cflags libcurl)
+ CURL_LIBS = $(shell pkg-config --libs libcurl || echo -lcurl)
++endif
+
+ # Enable native support of webcams and video streaming, using the OpenCV library.
+ # (https://opencv.org/)
++ifeq ($(GMIC_USE_OPENCV),yes)
+ OPENCV_CFLAGS = -Dcimg_use_opencv $(shell pkg-config opencv --cflags) -I/usr/include/opencv -I/usr/include/opencv4
+ OPENCV_LIBS = $(shell pkg-config opencv --libs || echo -lopencv_core -lopencv_highgui -lopencv_videoio)
++endif
+
+ # Enable support of most classical image file formats, using the GraphicsMagick++ library.
+ # (http://www.graphicsmagick.org/Magick++/)
++ifeq ($(GMIC_USE_GRAPHICSMAGICK),yes)
+ MAGICK_CFLAGS = -Dcimg_use_magick $(shell pkg-config --cflags GraphicsMagick++ || echo -I$(USR)/$(INCLUDE)/GraphicsMagick)
+ MAGICK_LIBS = $(shell pkg-config --libs GraphicsMagick++ || echo -lGraphicsMagick++)
++endif
+
+ # Enable native support of EXR image files, using the OpenEXR library.
+ # (http://www.openexr.com/)
+-OPENEXR_CFLAGS = -Dcimg_use_openexr $(shell pkg-config --cflags OpenEXR || echo -I$(USR)/$(INCLUDE)/OpenEXR)
+-OPENEXR_LIBS = $(shell pkg-config --libs OpenEXR || echo -lIlmImf -lHalf)
++ifeq ($(GMIC_USE_EXR),yes)
++OPENEXR_CFLAGS = -Dcimg_use_openexr $(shell pkg-config --cflags OpenEXR || echo -I$(USR)/$(INCLUDE)/OpenEXR -I$(USR)/$(INCLUDE)/Imath)
++OPENEXR_LIBS = $(shell pkg-config --libs OpenEXR || echo -lOpenEXR -lImath)
++endif
+
+ # Enable Fast Fourier Transforms, using the FFTW3 library.
+ # (http://www.fftw.org/)
++ifeq ($(GMIC_USE_FFTW),yes)
+ FFTW_CFLAGS = -Dcimg_use_fftw3 $(shell pkg-config --cflags fftw3)
+ FFTW_LIBS = $(shell pkg-config --libs fftw3 || echo -lfftw3)
+ ifneq ($(OS),Windows)
+ FFTW_LIBS += -lfftw3_threads
+ endif
++endif
+
+ # Enable native support of the BOARD library.
+ # (https://github.com/c-koi/libboard)
++ifeq ($(GMIC_USE_BOARD),yes)
+ BOARD_CFLAGS = -Dcimg_use_board
+ BOARD_LIBS = -lboard
++endif
+
+ GMIC_STD_CFLAGS = $(MANDATORY_CFLAGS) $(ABORT_CFLAGS) $(PARALLEL_CFLAGS) $(FFTW_CFLAGS) $(CURL_CFLAGS) $(PNG_CFLAGS) $(JPEG_CFLAGS) $(TIFF_CFLAGS)
+ GMIC_STD_LIBS = $(MANDATORY_LIBS) $(PARALLEL_LIBS) $(FFTW_LIBS) $(CURL_LIBS) $(PNG_LIBS) $(JPEG_LIBS) $(TIFF_LIBS)
diff --git a/media-gfx/gmic/gmic-3.1.5.ebuild b/media-gfx/gmic/gmic-3.1.5.ebuild
new file mode 100644
index 000000000000..a4e2815a060b
--- /dev/null
+++ b/media-gfx/gmic/gmic-3.1.5.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 toolchain-funcs
+
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/dtschump/gmic.git"
+ inherit git-r3
+else
+ SRC_URI="https://gmic.eu/files/source/${PN}_${PV}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="GREYC's Magic Image Converter"
+HOMEPAGE="https://gmic.eu/ https://github.com/dtschump/gmic"
+
+LICENSE="CeCILL-2 GPL-3"
+SLOT="0"
+IUSE="cli curl ffmpeg fftw gimp graphicsmagick jpeg opencv openexr openmp png qt5 tiff X"
+REQUIRED_USE="
+ gimp? ( png fftw X )
+ qt5? ( png fftw X )
+"
+
+# No test suite, hand-crafted Makefiles barf out on 'emake check'
+RESTRICT="test"
+
+MIN_QT_VER="5.2.0"
+QT_DEPEND="
+ >=dev-qt/qtcore-${MIN_QT_VER}:5=
+ >=dev-qt/qtgui-${MIN_QT_VER}:5=
+ >=dev-qt/qtnetwork-${MIN_QT_VER}:5=
+ >=dev-qt/qtwidgets-${MIN_QT_VER}:5=
+"
+COMMON_DEPEND="
+ sys-libs/zlib:0=
+ curl? ( net-misc/curl )
+ fftw? ( sci-libs/fftw:3.0=[threads] )
+ gimp? (
+ media-gfx/gimp:0/2
+ ${QT_DEPEND}
+ )
+ graphicsmagick? ( media-gfx/graphicsmagick:0= )
+ jpeg? ( virtual/jpeg:0 )
+ opencv? ( >=media-libs/opencv-2.3.1a-r1:0= )
+ openexr? (
+ dev-libs/imath:=
+ media-libs/openexr:=
+ )
+ png? ( media-libs/libpng:0= )
+ qt5? ( ${QT_DEPEND} )
+ tiff? ( media-libs/tiff:0 )
+ X? (
+ x11-libs/libX11
+ x11-libs/libXext
+ )"
+RDEPEND="${COMMON_DEPEND}
+ ffmpeg? ( media-video/ffmpeg:0= )
+"
+DEPEND="${COMMON_DEPEND}
+ gimp? ( dev-qt/linguist-tools )
+ qt5? ( dev-qt/linguist-tools )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.1.5-makefile_automagic.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+gmic_emake() {
+ emake -j1 -C src \
+ GMIC_USE_CURL=$(usex curl) \
+ GMIC_USE_EXR=$(usex openexr) \
+ GMIC_USE_FFTW=$(usex fftw) \
+ GMIC_USE_GRAPHICSMAGICK=$(usex graphicsmagick) \
+ GMIC_USE_JPEG=$(usex jpeg) \
+ GMIC_USE_OPENCV=$(usex opencv) \
+ GMIC_USE_OPENMP=$(usex openmp) \
+ GMIC_USE_PNG=$(usex png) \
+ GMIC_USE_TIFF=$(usex tiff) \
+ GMIC_USE_X11=$(usex X) \
+ QMAKE="qmake5" \
+ $@
+}
+
+# FIXME:
+# - do not pre-strip binaries
+# - honour user LDFLAGS on lib{,c}gmic.so
+# - fix multilib-strict violation on same
+# - nuke relative DT_RUNPATH on same
+# - GIMP plug-in dir should only be created if USE=gimp, otherwise it ends up being just /plug-ins
+src_compile() {
+ gmic_emake lib libc
+ use cli && gmic_emake cli_shared
+ use gimp && gmic_emake gimp_shared
+ use qt5 && gmic_emake gmic_qt_shared
+}