diff --git a/.gitignore b/.gitignore index 26be8e7..c8a6374 100644 --- a/.gitignore +++ b/.gitignore @@ -2,9 +2,11 @@ /.build-*.log *~ x86_64/ +/gmic-2.*/ /gmic_*.tar.gz -/gmic-1.6.6.1-qmake.patch -/gmic-1.6.7-qmake.patch -/gmic-1.6.9-qmake.patch -/gmic-1.7.1-qmake.patch -/gmic-1.7.2-qmake.patch +/gmic-qt-*.tar.gz +/gmic-qt/ +/gmic-community-*.tar.gz +/gmic-community/ +/zart*.tar.gz +/zart/ \ No newline at end of file diff --git a/gmic-1.6.5.0-qmake.patch b/gmic-1.6.5.0-qmake.patch deleted file mode 100644 index 3fd2a54..0000000 --- a/gmic-1.6.5.0-qmake.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -rup gmic-1.6.5.0.orig/src/Makefile gmic-1.6.5.0.new/src/Makefile ---- gmic-1.6.5.0.orig/src/Makefile 2015-06-23 10:00:24.000000000 +0100 -+++ gmic-1.6.5.0.new/src/Makefile 2015-06-23 13:12:03.085987526 +0100 -@@ -348,7 +348,7 @@ zart: lib - ifeq ($(OS),Darwin) - cd ../zart && qmake zart.pro && $(MAKE) "CFLAGS=$(OPT_CFLAGS)" "SUBLIBS=$(OPT_LIBS)" && strip zart.app/Contents/MacOS/zart - else -- cd ../zart && qmake zart.pro && $(MAKE) && strip zart -+ cd ../zart && qmake-qt5 zart.pro && $(MAKE) && strip zart - endif - - # Internal rules to build compilation modules. diff --git a/gmic.spec b/gmic.spec index 3b8068e..bce35cd 100644 --- a/gmic.spec +++ b/gmic.spec @@ -1,14 +1,24 @@ %global gimpplugindir %(gimptool --gimpplugindir)/plug-ins -%define use_system_cimg 0 +%global use_system_cimg 0 + +# As generated by new-snapshot.sh script +%global zart_version 20180110git54bc6ec +%global gmic_qt_version 20180110git6267a65 +%global gmic_community_version 20180110git1ac6216 Summary: GREYC's Magic for Image Computing Name: gmic -Version: 1.7.2 -Release: 6%{?dist} -Source: http://gmic.eu/files/source/%{name}_%{version}.tar.gz -Patch1: %{name}-%{version}-qmake.patch -License: CeCILL +Version: 2.1.8 +Release: 1%{?dist} +Source0: http://gmic.eu/files/source/%{name}_%{version}.tar.gz +# GIT archive snapshot of https://github.com/c-koi/zart +Source1: zart-%{zart_version}.tar.gz +# GIT archive snapshot of https://github.com/c-koi/gmic-qt +Source2: gmic-qt-%{gmic_qt_version}.tar.gz +# GIT archive snapshot of https://github.com/dtschump/gmic-community +Source3: gmic-community-%{gmic_community_version}.tar.gz +License: CeCILL and GPLv3+ Url: http://gmic.sourceforge.net/index.shtml Buildroot: %{_tmppath}/%{name}-%{version}-root Group: Applications/Multimedia @@ -23,7 +33,6 @@ BuildRequires: libjpeg-devel BuildRequires: fftw-devel BuildRequires: OpenEXR-devel BuildRequires: zlib-devel -BuildRequires: gtk2-devel BuildRequires: gimp-devel-tools BuildRequires: hdf5-devel BuildRequires: opencv-devel @@ -31,6 +40,9 @@ BuildRequires: GraphicsMagick-c++-devel BuildRequires: ilmbase-devel BuildRequires: qt5-qtbase-devel BuildRequires: libcurl-devel +# The C library binding was mistakenly put in a -static +# package despite being a shared library +Obsoletes: gmic-static <= 2.1.8 %description G'MIC is an open and full-featured framework for image processing, providing @@ -42,10 +54,6 @@ multi-spectral volumetric images. Requires: %{name}%{?_isa} = %{version}-%{release} Summary: Development files for G'MIC -%package static -Requires: %{name}%{?_isa} = %{version}-%{release} -Summary: static-linked development files for G'MIC - %package gimp Requires: %{name}%{?_isa} = %{version}-%{release} Summary: G'MIC plugin for GIMP @@ -58,15 +66,6 @@ multi-spectral volumetric images. Provides files for building applications against the G'MIC API -%description static -G'MIC is an open and full-featured framework for image processing, providing -several different user interfaces to convert/manipulate/filter/visualize -generic image datasets, from 1d scalar signals to 3d+t sequences of -multi-spectral volumetric images. - -Provides statically linked files for building applications -against the G'MIC API - %description gimp G'MIC is an open and full-featured framework for image processing, providing several different user interfaces to convert/manipulate/filter/visualize @@ -76,13 +75,16 @@ multi-spectral volumetric images. Provides a plugin for using G'MIC from GIMP %prep - -%setup -q -%patch1 -p1 +%setup -q -a 1 -a 2 -a 3 %build export CCACHE_DISABLE=1 cd src + +ln -fs ../gmic-community/libcgmic/gmic_libc.cpp . +ln -fs ../gmic-community/libcgmic/gmic_libc.h . +ln -fs ../gmic-community/libcgmic/use_libcgmic.c . + %if %{use_system_cimg} # We want to build against the system installed CImg package. # G'MIC provides no way todo this, so we just copy the file @@ -91,13 +93,21 @@ mv CImg.h CImg.h.bak cp /usr/include/CImg.h CImg.h %endif -# Setting FFMPEG flags to empty string to disable G'MIC's -# use of that library. It will fallback to exec'ing the -# CLI tools if they happen to be installed. -make FFMPEG_CFLAGS= FFMPEG_LDFLAGS= OPT_CFLAGS="%{optflags} -fsigned-char" +make OPT_CFLAGS="%{optflags} -g" NOSTRIP=1 cli lib libc + +cd ../gmic-qt +%{qmake_qt5} CONFIG+=release GMIC_PATH=../src HOST=gimp gmic_qt.pro && %{make_build} +%{qmake_qt5} CONFIG+=release GMIC_PATH=../src HOST=none gmic_qt.pro && %{make_build} + +cd ../zart +%{qmake_qt5} CONFIG+=release GMIC_PATH=../src zart.pro && %{make_build} %install +mv gmic-qt/COPYING COPYING-gmic-qt +mv gmic-community/libcgmic/COPYING COPYING-libcgmic + iconv -f iso8859-1 -t utf-8 COPYING > COPYING.conv && mv -f COPYING.conv COPYING +iconv -f iso8859-1 -t utf-8 COPYING-libcgmic > COPYING-libcgmic.conv && mv -f COPYING-libcgmic.conv COPYING-libcgmic cd src make DESTDIR=$RPM_BUILD_ROOT install @@ -109,9 +119,10 @@ then fi # Makefile creates too many intermediate symlinks for the library -rm -f $RPM_BUILD_ROOT/%{_libdir}/libgmic.so.1 -rm -f $RPM_BUILD_ROOT/%{_libdir}/libgmic.so.1.5 -ln -s libgmic.so.%{version} $RPM_BUILD_ROOT/%{_libdir}/libgmic.so.1 +rm -f $RPM_BUILD_ROOT/%{_libdir}/libgmic.so.2 +rm -f $RPM_BUILD_ROOT/%{_libdir}/libcgmic.so.2 +ln -s libgmic.so.%{version} $RPM_BUILD_ROOT/%{_libdir}/libgmic.so.2 +ln -s libcgmic.so.%{version} $RPM_BUILD_ROOT/%{_libdir}/libcgmic.so.2 # Sourced files shouldn't be executable chmod -x $RPM_BUILD_ROOT/%{_sysconfdir}/bash_completion.d/gmic @@ -122,28 +133,26 @@ chmod -x $RPM_BUILD_ROOT/%{_sysconfdir}/bash_completion.d/gmic %files %defattr(-,root,root) -%doc README COPYING +%doc README COPYING COPYING-gmic-qt COPYING-libcgmic %{_bindir}/gmic +%{_bindir}/gmic_qt %{_bindir}/zart %{_sysconfdir}/bash_completion.d/gmic %{_libdir}/libgmic.so.* +%{_libdir}/libcgmic.so.* %{_mandir}/man1/%{name}.1.gz %{_mandir}/fr/man1/%{name}.1.gz %files devel %defattr(-,root,root) %{_prefix}/include/gmic.h -%{_libdir}/libgmic.so - -%files static -%defattr(-,root,root) %{_prefix}/include/gmic_libc.h +%{_libdir}/libgmic.so %{_libdir}/libcgmic.so -%{_libdir}/libcgmic.so.* %files gimp %defattr(-,root,root) -%{gimpplugindir}/gmic_gimp +%{gimpplugindir}/gmic_gimp_qt %{gimpplugindir}/gmic_film_cluts.gmz %changelog diff --git a/new-snapshot.sh b/new-snapshot.sh new file mode 100755 index 0000000..ca4b35c --- /dev/null +++ b/new-snapshot.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +function archive_it() { + name=$1 + uri=$2 + path=$3 + + if test -d $name + then + cd $name + git checkout master + git reset --hard + git pull + cd .. + else + git clone $uri + fi + + DATE=`date +"%Y%m%d"` + + cd $name + HASH=`git rev-parse --short HEAD` + + FILE=${name}-${DATE}git${HASH}.tar.gz + + git archive --format tar.gz --prefix ${name}/ -o ../$FILE HEAD $path + cd .. +} + +archive_it zart https://github.com/c-koi/zart . +archive_it gmic-qt https://github.com/c-koi/gmic-qt . +archive_it gmic-community https://github.com/dtschump/gmic-community libcgmic diff --git a/sources b/sources index 4a36065..1c08082 100644 --- a/sources +++ b/sources @@ -1,2 +1,4 @@ -93ca12905081f1b6004ce8f2e8ddcc8f gmic_1.7.2.tar.gz -59d827ca3f8c5c6ef78463e5dd443271 gmic-1.7.2-qmake.patch +SHA512 (gmic_2.1.8.tar.gz) = 2629ac29ae65615c281a31e85fbfdcab78259efc4845a30b32edc0b39ce2dfac1ae664545d20dc9fb2f86ec1a5b063b30d21e44e6c0dafe0e0f9b2febd270034 +SHA512 (zart-20180110git54bc6ec.tar.gz) = 3922f571174483d6834bab089cb873eef7f8d8dceaa8978f6f70c5a5ff85900d687da1e8aadfd3ab9eb0e79e0062d43841ee474eaa6f7d56729f6dd38c220cc8 +SHA512 (gmic-qt-20180110git6267a65.tar.gz) = 44798f1ff7e734d12ca75fdd759cc98c3b7508c256f0bf3418fccaeacf730ed8b133c7b0f6c6ce308ad1275c59feb119066c71b491280a1df6d8f7a820b4aaa2 +SHA512 (gmic-community-20180110git1ac6216.tar.gz) = f99c90fc5f7d0cdbfcf31ac1edc8ddc0951818643aba7ca3203af5402cfaf9e6cd5c61681922d31cd73eafe6dd6fa6b8e29cfeb31875fd2df7a7a9856e4eeb0b