commit 8ba574cff59f36f8f3c87922f72657d89416054e54da812cb830d688e54bb275 Author: Adrian Schröter Date: Tue Mar 11 05:52:11 2014 +0000 Accepting request 225522 from home:garloff:Photography Submit gmic package to openSUSE:Factory via the graphics Devel package. Sidenote: While I will continue to build the full gmic binary in my home:garloff:Photography project (and use MMX,SSE on i386) for continuity reasons, I follow upstream to only build gmic the float type for openSUSE submission, covering probably 99% of the use cases ... This is controlled by a %define in the specfile, so I can keep the packages in sync otherwise at least for the time being. OBS-URL: https://build.opensuse.org/request/show/225522 OBS-URL: https://build.opensuse.org/package/show/graphics/gmic?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..24b5d90 --- /dev/null +++ b/_constraints @@ -0,0 +1,9 @@ + + + + + 1920 + + 3 + + diff --git a/gmic-cflags.diff b/gmic-cflags.diff new file mode 100644 index 0000000..dd51a9f --- /dev/null +++ b/gmic-cflags.diff @@ -0,0 +1,134 @@ +Index: gmic-1.5.8.4/src/Makefile +=================================================================== +--- gmic-1.5.8.4.orig/src/Makefile ++++ gmic-1.5.8.4/src/Makefile +@@ -75,10 +75,10 @@ endif + # Flags to enable 'beta' version. + IS_BETA_CFLAGS = + + # Flags that are mandatory to compile 'gmic'. +-MANDATORY_CFLAGS += -Dgmic_build -I$(USR)/include +-MANDATORY_LDFLAGS += -L$(USR)/lib ++MANDATORY_CFLAGS += $(CFLAGS) -Dgmic_build -I$(USR)/include ++MANDATORY_LDFLAGS += -L$(USR)/$(LIB) + ifeq ($(CC),g++) + MANDATORY_CFLAGS += -Wall -W + MANDATORY_LDFLAGS += -lm + endif +@@ -94,9 +94,9 @@ endif + DEBUG_CFLAGS = -Dcimg_verbosity=3 -g + + # Flags to enable optimizations. + ifeq ($(CC),g++) +-OPT_CFLAGS = -O3 -mtune=generic # -fno-tree-pre # -ffast-math ++OPT_CFLAGS = -O3 # -mtune=generic # -fno-tree-pre # -ffast-math + endif + ifeq ($(CC),clang++) + OPT_CFLAGS = -O1 + endif +@@ -121,15 +121,15 @@ endif + # (keep /usr/ dirname here since X11 is located in /usr/ on Mac too). + # This requires the presence of the X11 include and library files. + # (package 'libx11-dev' on Debian). + X11_CFLAGS = -Dcimg_display=1 -Dcimg_appname=\\\"gmic\\\" -I/usr/X11R6/include #-Dcimg_use_xrandr +-X11_LDFLAGS = -L/usr/X11R6/lib -lX11 -lpthread #-lXrandr ++X11_LDFLAGS = -L/usr/X11R6/$(LIB) -lX11 -lpthread #-lXrandr + + # Flags to enable fast display, using XShm. + # This requires the presence of the X11 extension include and library files. + # (package 'libx11-dev' on Debian). + XSHM_CFLAGS = -Dcimg_use_xshm +-XSHM_LDFLAGS = -L$(USR)/X11R6/lib -lXext ++XSHM_LDFLAGS = -L$(USR)/X11R6/$(LIB) -lXext + + # Flags to enable image display, using GDI32. + # This requires the presence of the GDI32 include and library files. + GDI32_CFLAGS = -Dcimg_display=2 -Dcimg_appname=\\\"gmic\\\" +@@ -232,9 +232,9 @@ MINIMAL_UNIX_CFLAGS = $(MANDATORY_CFLAGS + MINIMAL_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(X11_LDFLAGS) \ + ${TIFF_LDFLAGS} ${PNG_LDFLAGS} $(ZLIB_LDFLAGS) $(FFTW_LDFLAGS) # $(OPENCV_LDFLAGS) + + # Unix : Static build. +-STATIC_PATH = /usr/lib/ ++STATIC_PATH = /usr/$(LIB)/ + STATIC_EXTRA = + STATIC_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(CHECKIMAGE_CFLAGS) $(PARALLEL_CFLAGS) $(PNG_CFLAGS) $(JPEG_CFLAGS) $(TIFF_CFLAGS) $(ZLIB_CFLAGS) $(FFTW_CFLAGS) -Dcimg_display=0 + STATIC_UNIX_LDFLAGS = $(PARALLEL_LDFLAGS) \ + $(STATIC_PATH)/libpng.a \ +@@ -279,9 +279,9 @@ STD_LIB_CFLAGS = $(MANDATORY_CFLAGS) $(C + STD_LIB_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(FFTW_LDFLAGS) + + # GMICol : Standard build. + GMICOL_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(CHECKIMAGE_CFLAGS) $(PARALLEL_CFLAGS) $(PNG_CFLAGS) $(JPEG_CFLAGS) $(ZLIB_CFLAGS) $(FFTW_CFLAGS) -Dcimg_display=0 +-GMICOL_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(PNG_LDFLAGS) $(JPEG_LDFLAGS) $(ZLIB_LDFLAGS) /usr/lib/x86_64-linux-gnu/libfftw3.a /usr/lib/x86_64-linux-gnu/libfftw3_threads.a ++GMICOL_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(PNG_LDFLAGS) $(JPEG_LDFLAGS) $(ZLIB_LDFLAGS) /usr/$(LIB)/libfftw3.a /usr/$(LIB)/libfftw3_threads.a + + #-------------------------- + # Define Makefile entries. + #-------------------------- +@@ -307,9 +307,9 @@ else + endif + endif + + gimp: +- $(MAKE) "CFLAGS=$(STD_GIMP_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_GIMP_LDFLAGS) $(OPT_LDFLAGS)" "STRIP_EXE=1" gmic_gimp ++ $(MAKE) "CFLAGS=$(STD_GIMP_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_GIMP_LDFLAGS) $(OPT_LDFLAGS)" gmic_gimp + + lib: + $(MAKE) "CFLAGS=$(STD_LIB_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_LIB_LDFLAGS) $(OPT_LDFLAGS)" gmic_lib + +@@ -330,15 +330,15 @@ static: + minimal: + $(MAKE) "CFLAGS+=$(MINIMAL_UNIX_CFLAGS)" "LDFLAGS+=$(MINIMAL_UNIX_LDFLAGS)" gmic_cli_standard + + linux: +- $(MAKE) "CFLAGS=$(STD_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_UNIX_LDFLAGS)" "STRIP_EXE=1" gmic_cli_standard ++ $(MAKE) "CFLAGS=$(STD_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_UNIX_LDFLAGS)" gmic_cli_standard + + linux_alltypes: +- $(MAKE) "CFLAGS=$(STD_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_UNIX_LDFLAGS)" "STRIP_EXE=1" gmic_cli_alltypes ++ $(MAKE) "CFLAGS=$(STD_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_UNIX_LDFLAGS)" gmic_cli_alltypes + + custom: +- $(MAKE) "CFLAGS=$(CUST_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(CUST_UNIX_LDFLAGS)" "STRIP_EXE=1" gmic_cli_alltypes ++ $(MAKE) "CFLAGS=$(CUST_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(CUST_UNIX_LDFLAGS)" gmic_cli_alltypes + + solaris: + $(MAKE) "CFLAGS=$(STD_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_UNIX_LDFLAGS) -R$(USR)/X11R6/lib -lrt -lnsl -lsocket" "STRIP_EXE=1" gmic_cli_standard + +@@ -415,13 +415,13 @@ install: + ifneq ($(OS),Darwin) + mkdir -p $(DESTDIR)$(USR)/share + # mkdir -p $(DESTDIR)$(USR)/share/zart + # cp -f ../zart/zart $(DESTDIR)$(USR)/bin/zart +- mkdir -p $(DESTDIR)$(USR)/lib +- cp -f libgmic.so $(DESTDIR)$(USR)/lib/libgmic.so.1.5.8 +- ln -s libgmic.so.1.5.8 $(DESTDIR)$(USR)/lib/libgmic.so.1 +-# ln -s libgmic.so.1.5.8 $(DESTDIR)$(USR)/lib/libgmic.so.1 +- ln -s libgmic.so.1 $(DESTDIR)$(USR)/lib/libgmic.so ++ mkdir -p $(DESTDIR)$(USR)/$(LIB) ++ cp -f libgmic.so $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1.5.8 ++ ln -s libgmic.so.1.5.8 $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1 ++# ln -s libgmic.so.1.5.8 $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1 ++ ln -s libgmic.so.1 $(DESTDIR)$(USR)/$(LIB)/libgmic.so + endif + mkdir -p $(DESTDIR)$(USR)/share/man/ + mkdir -p $(DESTDIR)$(USR)/share/man/man1/ + mkdir -p $(DESTDIR)$(USR)/share/man/fr/man1/ +@@ -432,12 +432,12 @@ endif + + uninstall: + rm -f $(DESTDIR)$(USR)/bin/gmic + rm -f $(DESTDIR)$(USR)/include/gmic.h +- rm -f $(DESTDIR)$(USR)/lib/libgmic.so.1.5.8 +-# rm -f $(DESTDIR)$(USR)/lib/libgmic.so.1.5 +- rm -f $(DESTDIR)$(USR)/lib/libgmic.so.1 +- rm -f $(DESTDIR)$(USR)/lib/libgmic.so ++ rm -f $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1.5.8 ++# rm -f $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1.5 ++ rm -f $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1 ++ rm -f $(DESTDIR)$(USR)/$(LIB)/libgmic.so + rm -rf $(DESTDIR)$(USR)/share/doc/gmic/ + rm -f $(DESTDIR)$(USR)/share/man/man1/gmic.1.gz + rm -f $(DESTDIR)$(USR)/share/man/fr/man1/gmic.1.gz + # rm -f $(DESTDIR)$(USR)/bin/zart diff --git a/gmic-docdir.diff b/gmic-docdir.diff new file mode 100644 index 0000000..1221cc4 --- /dev/null +++ b/gmic-docdir.diff @@ -0,0 +1,26 @@ +Index: gmic-1.5.8.4/src/Makefile +=================================================================== +--- gmic-1.5.8.4.orig/src/Makefile ++++ gmic-1.5.8.4/src/Makefile +@@ -67,8 +67,10 @@ endif + ifeq ($(OSTYPE),msys) + EXE = .exe + endif + ++DOCDIR = $(USR)/share/doc ++ + #------------------------------------------------ + # Set compilation flags for build customization. + #------------------------------------------------ + +@@ -436,9 +438,9 @@ uninstall: + rm -f $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1.5.8 + # rm -f $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1.5 + rm -f $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1 + rm -f $(DESTDIR)$(USR)/$(LIB)/libgmic.so +- rm -rf $(DESTDIR)$(USR)/share/doc/gmic/ ++ rm -rf $(DESTDIR)$(DOCDIR)/gmic/ + rm -f $(DESTDIR)$(USR)/share/man/man1/gmic.1.gz + rm -f $(DESTDIR)$(USR)/share/man/fr/man1/gmic.1.gz + # rm -f $(DESTDIR)$(USR)/bin/zart + # rm -rf $(DESTDIR)$(USR)/share/zart/ diff --git a/gmic-magick.diff b/gmic-magick.diff new file mode 100644 index 0000000..2366681 --- /dev/null +++ b/gmic-magick.diff @@ -0,0 +1,20 @@ +Index: gmic-1.5.5.2/src/Makefile +=================================================================== +--- gmic-1.5.5.2.orig/src/Makefile ++++ gmic-1.5.5.2/src/Makefile +@@ -204,13 +204,13 @@ BOARD_LDFLAGS = -lboard + # Sets of flags for building different configurations. + STD_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(X11_CFLAGS) $(XSHM_CFLAGS) $(PNG_CFLAGS) \ + $(JPEG_CFLAGS) $(TIFF_CFLAGS) $(ZLIB_CFLAGS) \ + $(EXR_CFLAGS) $(FFTW_CFLAGS) $(OPENMP_CFLAGS) \ +- $(OPENCV_CFLAGS) # $(FFMPEG_CFLAGS) # $(XSHM_CFLAGS) # $(MAGICK_CFLAGS) ++ $(OPENCV_CFLAGS) $(MAGICK_CFLAGS) # $(FFMPEG_CFLAGS) # $(XSHM_CFLAGS) + STD_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(X11_LDFLAGS) $(XSHM_LDFLAGS) $(PNG_LDFLAGS) \ + $(JPEG_LDFLAGS) $(TIFF_LDFLAGS) $(ZLIB_LDFLAGS) \ + $(EXR_LDFLAGS) $(FFTW_LDFLAGS) $(OPENMP_LDFLAGS) \ +- $(OPENCV_LDFLAGS) # $(FFMPEG_LDFLAGS) # $(XSHM_LDFLAGS) # $(MAGICK_LDFLAGS) ++ $(OPENCV_LDFLAGS) $(MAGICK_LDFLAGS) # $(FFMPEG_LDFLAGS) # $(XSHM_LDFLAGS) + + CUST_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(X11_CFLAGS) $(XSHM_CFLAGS) $(PNG_CFLAGS) \ + $(JPEG_CFLAGS) $(TIFF_CFLAGS) $(ZLIB_CFLAGS) \ + $(FFTW_CFLAGS) $(EXR_CFLAGS) $(FFMPEG_CFLAGS) # $(MAGICK_CFLAGS) $(BOARD_CFLAGS) $(MINC2_CFLAGS) $(OPENCV_CFLAGS) diff --git a/gmic-make-zart.diff b/gmic-make-zart.diff new file mode 100644 index 0000000..9fcb842 --- /dev/null +++ b/gmic-make-zart.diff @@ -0,0 +1,28 @@ +Index: gmic-1.5.8.4/src/Makefile +=================================================================== +--- gmic-1.5.8.4.orig/src/Makefile ++++ gmic-1.5.8.4/src/Makefile +@@ -422,10 +422,8 @@ install: + mkdir -p $(DESTDIR)$(USR)/include/ + cp -f gmic.h $(DESTDIR)$(USR)/include/ + ifneq ($(OS),Darwin) + mkdir -p $(DESTDIR)$(USR)/share +-# mkdir -p $(DESTDIR)$(USR)/share/zart +-# cp -f ../zart/zart $(DESTDIR)$(USR)/bin/zart + mkdir -p $(DESTDIR)$(USR)/$(LIB) + cp -f libgmic.so $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1.5.8 + ln -s libgmic.so.1.5.8 $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1 + # ln -s libgmic.so.1.5.8 $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1 +@@ -438,8 +436,12 @@ endif + cp -f ../man/gmic.1.gz $(DESTDIR)$(USR)/share/man/fr/man1/gmic.1.gz + if test -d /etc/bash_completion.d/; then mkdir -p $(DESTDIR)/etc/bash_completion.d/; cp -f gmic_bashcompletion.sh $(DESTDIR)/etc/bash_completion.d/gmic; fi + if test -d /opt/local/etc/bash_completion.d/; then mkdir -p $(DESTDIR)/opt/local/etc/bash_completion.d/; cp -f gmic_bashcompletion.sh $(DESTDIR)/opt/local/etc/bash_completion.d/gmic; fi + ++install-zart: zart ++ mkdir -p $(DESTDIR)$(USR)/share/zart ++ cp -f ../zart/zart $(DESTDIR)$(USR)/bin/zart ++ + uninstall: + rm -f $(DESTDIR)$(USR)/bin/gmic + rm -f $(DESTDIR)$(USR)/include/gmic.h + rm -f $(DESTDIR)$(USR)/$(LIB)/libgmic.so.1.5.8 diff --git a/gmic-opencv-old.diff b/gmic-opencv-old.diff new file mode 100644 index 0000000..ed8bc1b --- /dev/null +++ b/gmic-opencv-old.diff @@ -0,0 +1,18 @@ +Index: gmic-1.5.5.2/src/Makefile +=================================================================== +--- gmic-1.5.5.2.orig/src/Makefile ++++ gmic-1.5.5.2/src/Makefile +@@ -159,10 +159,10 @@ ifeq ($(OS),Darwin) + OPENCV_CFLAGS = -Dcimg_use_opencv -I$(USR)/include -I$(USR)/include/opencv + OPENCV_LDFLAGS = `pkg-config opencv --libs` #-> Use this for OpenCV 2.2.0 ! + else + OPENCV_CFLAGS = -Dcimg_use_opencv -I$(USR)/include -I$(USR)/include/opencv +-# OPENCV_LDFLAGS = -lcv -lhighgui +-OPENCV_LDFLAGS = -lopencv_core -lopencv_highgui #-> Use this for OpenCV >= 2.2.0 ! ++OPENCV_LDFLAGS = -lcv -lhighgui ++#OPENCV_LDFLAGS = -lopencv_core -lopencv_highgui #-> Use this for OpenCV >= 2.2.0 ! + endif + + # Flags to enable native support of most classical image file formats, using the GraphicsMagick++ library. + # This requires the presence of the GraphicsMagick++ include and library files. + diff --git a/gmic-opencv.diff b/gmic-opencv.diff new file mode 100644 index 0000000..5d2f24c --- /dev/null +++ b/gmic-opencv.diff @@ -0,0 +1,20 @@ +Index: gmic-1.5.8.4/src/Makefile +=================================================================== +--- gmic-1.5.8.4.orig/src/Makefile ++++ gmic-1.5.8.4/src/Makefile +@@ -226,13 +226,13 @@ BOARD_LDFLAGS = -lboard + # Unix : Standard build. + STD_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(CHECKIMAGE_CFLAGS) $(PARALLEL_CFLAGS) $(X11_CFLAGS) $(XSHM_CFLAGS) $(PNG_CFLAGS) \ + $(JPEG_CFLAGS) $(TIFF_CFLAGS) $(ZLIB_CFLAGS) \ + $(EXR_CFLAGS) $(FFTW_CFLAGS) $(OPENMP_CFLAGS) \ +- # $(OPENCV_CFLAGS) $(FFMPEG_CFLAGS) # $(MAGICK_CFLAGS) ++ $(OPENCV_CFLAGS) # $(FFMPEG_CFLAGS) # $(MAGICK_CFLAGS) + STD_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(X11_LDFLAGS) $(XSHM_LDFLAGS) $(PNG_LDFLAGS) \ + $(JPEG_LDFLAGS) $(TIFF_LDFLAGS) $(ZLIB_LDFLAGS) \ + $(EXR_LDFLAGS) $(FFTW_LDFLAGS) $(OPENMP_LDFLAGS) \ +- # $(OPENCV_LDFLAGS) $(FFMPEG_LDFLAGS) # $(MAGICK_LDFLAGS) ++ $(OPENCV_LDFLAGS) # $(FFMPEG_LDFLAGS) # $(MAGICK_LDFLAGS) + + # Unix : Minimal build. + MINIMAL_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(CHECKIMAGE_CFLAGS) $(PARALLEL_CFLAGS) $(DEBUG_CFLAGS) $(X11_CFLAGS) $(XSHM_CFLAGS) \ + ${TIFF_CFLAGS} ${PNG_CFLAGS} $(ZLIB_CFLAGS) $(FFTW_CFLAGS) # $(OPENCV_CFLAGS) diff --git a/gmic-openmp-gcc43.diff b/gmic-openmp-gcc43.diff new file mode 100644 index 0000000..334283d --- /dev/null +++ b/gmic-openmp-gcc43.diff @@ -0,0 +1,50 @@ +Index: gmic-1.5.8.4/src/CImg.h +=================================================================== +--- gmic-1.5.8.4.orig/src/CImg.h ++++ gmic-1.5.8.4/src/CImg.h +@@ -220,8 +220,13 @@ + // OpenMP directives may be used in a (very) few CImg functions to get + // advantages of multi-core CPUs. + #ifdef cimg_use_openmp + #include "omp.h" ++#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) ++#define COLLAPSE(x) collapse(x) ++#else ++#define COLLAPSE(x) ++#endif + #endif + + // Configure OpenCV support. + // (http://opencv.willowgarage.com/wiki/) +@@ -24304,27 +24309,27 @@ namespace cimg_library_suffixed { + + switch (naxis) { + case 'x' : { + #ifdef cimg_use_openmp +-#pragma omp parallel for collapse(3) ++#pragma omp parallel for COLLAPSE(3) + #endif + cimg_forYZC(*this,y,z,c) _cimg_recursive_apply<4>(data(0,y,z,c),filter,_width,1U,order,boundary_conditions); + } break; + case 'y' : { + #ifdef cimg_use_openmp +-#pragma omp parallel for collapse(3) ++#pragma omp parallel for COLLAPSE(3) + #endif + cimg_forXZC(*this,x,z,c) _cimg_recursive_apply<4>(data(x,0,z,c),filter,_height,(unsigned long)_width,order,boundary_conditions); + } break; + case 'z' : { + #ifdef cimg_use_openmp +-#pragma omp parallel for collapse(3) ++#pragma omp parallel for COLLAPSE(3) + #endif + cimg_forXYC(*this,x,y,c) _cimg_recursive_apply<4>(data(x,y,0,c),filter,_depth,(unsigned long)(_width*_height),order,boundary_conditions); + } break; + default : { + #ifdef cimg_use_openmp +-#pragma omp parallel for collapse(3) ++#pragma omp parallel for COLLAPSE(3) + #endif + cimg_forXYZ(*this,x,y,z) _cimg_recursive_apply<4>(data(x,y,z,0),filter,_spectrum,(unsigned long)(_width*_height*_depth),order,boundary_conditions); + } + } diff --git a/gmic-openmp.diff b/gmic-openmp.diff new file mode 100644 index 0000000..0525bd9 --- /dev/null +++ b/gmic-openmp.diff @@ -0,0 +1,33 @@ +Index: gmic-1.5.8.4/src/Makefile +=================================================================== +--- gmic-1.5.8.4.orig/src/Makefile ++++ gmic-1.5.8.4/src/Makefile +@@ -209,8 +209,11 @@ FFTW_LDFLAGS = -lfftw3 -lfftw3_threads + ifeq ($(OSTYPE),msys) + FFTW_LDFLAGS = -lfftw3-3 + endif + ++OPENMP_CFLAGS = -fopenmp -Dcimg_use_openmp ++OPENMP_LDFLAGS = -fopenmp ++ + # Flags to enable the use of the BOARD library. + # This requires the presence of the BOARD include and library files. + # (no packages exist for Debian at this time). + BOARD_CFLAGS = -Dcimg_use_board +@@ -222,12 +225,14 @@ BOARD_LDFLAGS = -lboard + + # Unix : Standard build. + STD_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(CHECKIMAGE_CFLAGS) $(PARALLEL_CFLAGS) $(X11_CFLAGS) $(XSHM_CFLAGS) $(PNG_CFLAGS) \ + $(JPEG_CFLAGS) $(TIFF_CFLAGS) $(ZLIB_CFLAGS) \ +- $(EXR_CFLAGS) $(FFTW_CFLAGS) # $(OPENCV_CFLAGS) $(FFMPEG_CFLAGS) # $(MAGICK_CFLAGS) ++ $(EXR_CFLAGS) $(FFTW_CFLAGS) $(OPENMP_CFLAGS) \ ++ # $(OPENCV_CFLAGS) $(FFMPEG_CFLAGS) # $(MAGICK_CFLAGS) + STD_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(X11_LDFLAGS) $(XSHM_LDFLAGS) $(PNG_LDFLAGS) \ + $(JPEG_LDFLAGS) $(TIFF_LDFLAGS) $(ZLIB_LDFLAGS) \ +- $(EXR_LDFLAGS) $(FFTW_LDFLAGS) # $(OPENCV_LDFLAGS) $(FFMPEG_LDFLAGS) # $(MAGICK_LDFLAGS) ++ $(EXR_LDFLAGS) $(FFTW_LDFLAGS) $(OPENMP_LDFLAGS) \ ++ # $(OPENCV_LDFLAGS) $(FFMPEG_LDFLAGS) # $(MAGICK_LDFLAGS) + + # Unix : Minimal build. + MINIMAL_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(CHECKIMAGE_CFLAGS) $(PARALLEL_CFLAGS) $(DEBUG_CFLAGS) $(X11_CFLAGS) $(XSHM_CFLAGS) \ + ${TIFF_CFLAGS} ${PNG_CFLAGS} $(ZLIB_CFLAGS) $(FFTW_CFLAGS) # $(OPENCV_CFLAGS) diff --git a/gmic-opt-parallel-make.diff b/gmic-opt-parallel-make.diff new file mode 100644 index 0000000..4efebe2 --- /dev/null +++ b/gmic-opt-parallel-make.diff @@ -0,0 +1,15 @@ +Index: gmic-1.5.8.4/src/Makefile +=================================================================== +--- gmic-1.5.8.4.orig/src/Makefile ++++ gmic-1.5.8.4/src/Makefile +@@ -395,9 +395,9 @@ gmic_int.o: gmic.cpp + gmic_float.o: gmic.cpp + $(CC) -o gmic_float.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_float -Dgmic_main + gmic_double.o: gmic.cpp + $(CC) -o gmic_double.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_double +-gmic_cli_alltypes: gmic_bool.o gmic_uchar.o gmic_char.o gmic_ushort.o gmic_short.o gmic_uint.o gmic_int.o gmic_float.o gmic_double.o gmic_def.h ++gmic_cli_alltypes: gmic_float.o gmic_uchar.o gmic_char.o gmic_uint.o gmic_int.o gmic_double.o gmic_bool.o gmic_ushort.o gmic_short.o gmic_def.h + $(CC) -o gmic gmic_bool.o gmic_uchar.o gmic_char.o gmic_ushort.o gmic_short.o gmic_uint.o gmic_int.o gmic_float.o gmic_double.o $(LDFLAGS) + strip gmic$(EXE) + + gmic_cli_standard: gmic.cpp diff --git a/gmic-overflow.diff b/gmic-overflow.diff new file mode 100644 index 0000000..d93ac81 --- /dev/null +++ b/gmic-overflow.diff @@ -0,0 +1,15 @@ +Index: gmic-1.5.8.4/src/CImg.h +=================================================================== +--- gmic-1.5.8.4.orig/src/CImg.h ++++ gmic-1.5.8.4/src/CImg.h +@@ -45929,9 +45929,9 @@ namespace cimg_library_suffixed { + filename?filename:"(FILE*)"); + #endif + std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); + const char *const ptype = pixel_type(), *const etype = cimg::endianness()?"big":"little"; +- if (std::strstr(ptype,"unsigned")==ptype) std::fprintf(nfile,"%u unsigned_%s %s_endian\n",_width,ptype+9,etype); ++ if (std::strlen(ptype)>9 && std::strstr(ptype,"unsigned")==ptype) std::fprintf(nfile,"%u unsigned_%s %s_endian\n",_width,ptype+9,etype); + else std::fprintf(nfile,"%u %s %s_endian\n",_width,ptype,etype); + cimglist_for(*this,l) { + const CImg& img = _data[l]; + std::fprintf(nfile,"%u %u %u %u",img._width,img._height,img._depth,img._spectrum); diff --git a/gmic-unstrip.diff b/gmic-unstrip.diff new file mode 100644 index 0000000..b885e13 --- /dev/null +++ b/gmic-unstrip.diff @@ -0,0 +1,37 @@ +Index: gmic-1.5.8.4/src/Makefile +=================================================================== +--- gmic-1.5.8.4.orig/src/Makefile ++++ gmic-1.5.8.4/src/Makefile +@@ -323,9 +323,9 @@ lib: + QMAKE = qmake + + zart: lib + ifneq ($(OS),Darwin) +- cd ../zart && $(QMAKE) zart.pro && $(MAKE) && strip zart ++ cd ../zart && $(QMAKE) zart.pro && $(MAKE) && strip -S zart + else + cd ../zart && $(QMAKE) zart.pro && $(MAKE) "CFLAGS=$(STD_MACOSX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_MACOSX_LDFLAGS) $(OPT_LDFLAGS)" + endif + +@@ -375,9 +375,9 @@ endif + gmic_gimp.o: gmic.cpp gmic_def.h + $(CC) -o gmic_gimp.o -c gmic.cpp $(CFLAGS) -Dgmic_gimp -Dgmic_float_only + gmic_gimp : gmic_gimp.o gmic_gimp.cpp + $(CC) -o gmic_gimp gmic_gimp.cpp gmic_gimp.o `gimptool-2.0$(EXE) --cflags` $(CFLAGS) `gimptool-2.0$(EXE) --libs` $(LDFLAGS) +- strip gmic_gimp$(EXE) ++ strip -S gmic_gimp$(EXE) + + gmic_bool.o: gmic.cpp + $(CC) -o gmic_bool.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_bool + gmic_uchar.o: gmic.cpp +@@ -397,9 +397,9 @@ gmic_float.o: gmic.cpp + gmic_double.o: gmic.cpp + $(CC) -o gmic_double.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_double + gmic_cli_alltypes: gmic_float.o gmic_uchar.o gmic_char.o gmic_uint.o gmic_int.o gmic_double.o gmic_bool.o gmic_ushort.o gmic_short.o gmic_def.h + $(CC) -o gmic gmic_bool.o gmic_uchar.o gmic_char.o gmic_ushort.o gmic_short.o gmic_uint.o gmic_int.o gmic_float.o gmic_double.o $(LDFLAGS) +- strip gmic$(EXE) ++ strip -S gmic$(EXE) + + gmic_cli_standard: gmic.cpp + $(CC) -o gmic gmic.cpp $(CFLAGS) -Dgmic_float_only -Dgmic_main $(LDFLAGS) + diff --git a/gmic-x11opts.diff b/gmic-x11opts.diff new file mode 100644 index 0000000..5fe86aa --- /dev/null +++ b/gmic-x11opts.diff @@ -0,0 +1,43 @@ +Index: gmic-1.5.8.4/src/Makefile +=================================================================== +--- gmic-1.5.8.4.orig/src/Makefile ++++ gmic-1.5.8.4/src/Makefile +@@ -122,10 +122,10 @@ endif + # Flags to enable image display, using X11 + # (keep /usr/ dirname here since X11 is located in /usr/ on Mac too). + # This requires the presence of the X11 include and library files. + # (package 'libx11-dev' on Debian). +-X11_CFLAGS = -Dcimg_display=1 -Dcimg_appname=\\\"gmic\\\" -I/usr/X11R6/include #-Dcimg_use_xrandr +-X11_LDFLAGS = -L/usr/X11R6/$(LIB) -lX11 -lpthread #-lXrandr ++X11_CFLAGS = -Dcimg_display=1 -Dcimg_appname=\\\"gmic\\\" -I/usr/X11R6/include -Dcimg_use_xrandr ++X11_LDFLAGS = -L/usr/X11R6/$(LIB) -lX11 -lpthread -lXrandr + + # Flags to enable fast display, using XShm. + # This requires the presence of the X11 extension include and library files. + # (package 'libx11-dev' on Debian). +@@ -220,19 +220,19 @@ BOARD_LDFLAGS = -lboard + # Predefined sets of flags for different default configurations. + #---------------------------------------------------------------- + + # Unix : Standard build. +-STD_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(CHECKIMAGE_CFLAGS) $(PARALLEL_CFLAGS) $(X11_CFLAGS) $(PNG_CFLAGS) \ ++STD_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(CHECKIMAGE_CFLAGS) $(PARALLEL_CFLAGS) $(X11_CFLAGS) $(XSHM_CFLAGS) $(PNG_CFLAGS) \ + $(JPEG_CFLAGS) $(TIFF_CFLAGS) $(ZLIB_CFLAGS) \ +- $(EXR_CFLAGS) $(FFTW_CFLAGS) # $(XSHM_CFLAGS) $(OPENCV_CFLAGS) $(FFMPEG_CFLAGS) # $(MAGICK_CFLAGS) +-STD_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(X11_LDFLAGS) $(PNG_LDFLAGS) \ ++ $(EXR_CFLAGS) $(FFTW_CFLAGS) # $(OPENCV_CFLAGS) $(FFMPEG_CFLAGS) # $(MAGICK_CFLAGS) ++STD_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(X11_LDFLAGS) $(XSHM_LDFLAGS) $(PNG_LDFLAGS) \ + $(JPEG_LDFLAGS) $(TIFF_LDFLAGS) $(ZLIB_LDFLAGS) \ +- $(EXR_LDFLAGS) $(FFTW_LDFLAGS) # $(XSHM_LDFLAGS) $(OPENCV_LDFLAGS) $(FFMPEG_LDFLAGS) # $(MAGICK_LDFLAGS) ++ $(EXR_LDFLAGS) $(FFTW_LDFLAGS) # $(OPENCV_LDFLAGS) $(FFMPEG_LDFLAGS) # $(MAGICK_LDFLAGS) + + # Unix : Minimal build. +-MINIMAL_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(CHECKIMAGE_CFLAGS) $(PARALLEL_CFLAGS) $(DEBUG_CFLAGS) $(X11_CFLAGS) \ ++MINIMAL_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(CHECKIMAGE_CFLAGS) $(PARALLEL_CFLAGS) $(DEBUG_CFLAGS) $(X11_CFLAGS) $(XSHM_CFLAGS) \ + ${TIFF_CFLAGS} ${PNG_CFLAGS} $(ZLIB_CFLAGS) $(FFTW_CFLAGS) # $(OPENCV_CFLAGS) +-MINIMAL_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(X11_LDFLAGS) \ ++MINIMAL_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(X11_LDFLAGS) $(XSHM_LDFLAGS) \ + ${TIFF_LDFLAGS} ${PNG_LDFLAGS} $(ZLIB_LDFLAGS) $(FFTW_LDFLAGS) # $(OPENCV_LDFLAGS) + + # Unix : Static build. + STATIC_PATH = /usr/$(LIB)/ diff --git a/gmic-zart-qmake.diff b/gmic-zart-qmake.diff new file mode 100644 index 0000000..5a98e5c --- /dev/null +++ b/gmic-zart-qmake.diff @@ -0,0 +1,22 @@ +Index: gmic-1.5.8.4/src/Makefile +=================================================================== +--- gmic-1.5.8.4.orig/src/Makefile ++++ gmic-1.5.8.4/src/Makefile +@@ -319,13 +319,15 @@ gimp: + + lib: + $(MAKE) "CFLAGS=$(STD_LIB_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_LIB_LDFLAGS) $(OPT_LDFLAGS)" gmic_lib + ++QMAKE = qmake ++ + zart: lib + ifneq ($(OS),Darwin) +- cd ../zart && qmake-qt4 zart.pro && $(MAKE) && strip zart ++ cd ../zart && $(QMAKE) zart.pro && $(MAKE) && strip zart + else +- cd ../zart && qmake zart.pro && $(MAKE) "CFLAGS=$(STD_MACOSX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_MACOSX_LDFLAGS) $(OPT_LDFLAGS)" ++ cd ../zart && $(QMAKE) zart.pro && $(MAKE) "CFLAGS=$(STD_MACOSX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_MACOSX_LDFLAGS) $(OPT_LDFLAGS)" + endif + + # Entries for other configurations. + gmicol: diff --git a/gmic.changes b/gmic.changes new file mode 100644 index 0000000..8dead19 --- /dev/null +++ b/gmic.changes @@ -0,0 +1,428 @@ +------------------------------------------------------------------- +Sat Mar 8 19:47:38 CET 2014 - kurt@garloff.de + +- Update to gmic-1.5.8.4: + * New command -imageblocks3d (and corresponding gimp plugin). + * New filter Degradations / Blur [depth-of-field]. + * Improved -endian command (accepts optional datatype). + * Tiff output type can be specified. + * -apply_files can now force filename extensions. + * ability to wait for threads run with -parallel. + * Math parser now understands med() and kth(). + * Reduce stack footprint of main parser. + * Request higher minimal stack size when possible. + * New output modes for Arrays & tiles / Extract objects. + * More imporvements to -inpaint. + * Fix line number displayed when error in .gmic file found. + * Fix thread destruction with non-wait mode and sub-commands. + +------------------------------------------------------------------- +Fri Feb 14 12:10:02 CET 2014 - kurt@garloff.de + +- Add logic to avoid excessive compilation time: + * Limit parallel make to available memory + * Set OBS _constraint to provide enough memory + * Reorder build targets to improve parallelism + +------------------------------------------------------------------- +Thu Feb 13 15:42:00 CET 2014 - kurt@garloff.de + +- Update to 1.5.8.3: + * New plug-in filter Frames / Frame[blur] + * Improvements: Less warnings on TIFFs, valgrind found bugfixes, + OS name in plug-in titlebar, slightly better -inpaint_patch, + more options for -taquin, significantly better -inpaint + * Fixed invalid mem access when reading command files + * Update reference manual. + +------------------------------------------------------------------- +Fri Jan 10 10:04:17 CET 2014 - kurt@garloff.de + +- Update to 1.5.8.2: + * New commands -puzzle, -map_sprites, -detect_skin + * Improvements to -bilateral amd debugging custom commands + * Fix bug with -display for images with NaNs +- Update to 1.5.8.1: + * New command -split_details + * New (GIMP plugin) filters Details/Details equalizer and + Repair/Smooth [skin]. + * -repair is merged with -inpaint + * Improve UI of -display and -select + * Fix crash of -bilateral on blank image + * Fixes for Ctrl+F in GIMP plugin + * 3D object display light source follows object zoom now +- Update to 1.5.8.0: + * Bugfixes, Optimizations, and Improvements + * Small API changes +- Update to 1.5.7.2: + * New commands -output_ggr, -at_line, -x_metaballs, -cubes3d, + -color_med, -x_bouncing, -mutex + * Fast marching algo available in -distance + * New substituion $"*" which does quoting to protect whitespace + * GIMP plugin filters Rendering/Gradient [custom shape] and + [from line] + * Improvements for -display, -ball and documentation + * Fix CPU eating of gmic display + * Compilation improvements (for clang++) +- Update to 1.5.7.1: + * Improve parallelization (-fft, -apply_parallel, + -apply_parallel_overlap) + + +------------------------------------------------------------------- +Fri Sep 13 17:09:48 CEST 2013 - kurt@garloff.de + +- Update to 1.5.7.0: + * Parallelization: Multiple threads can be used now, commands + -parallel, -apply_parallel, -apply_parallel{2,4,8} to use + it. Smoothing and sharpening filters use it already ... + * New: -image_integral, -autocrop_components, -bilateral + * Bugfixes: Added more randomness to the PRNG (gimp plugin), bug + in -polygon, in -output (% symbol), valgrind warings (false + positives actually) +- Update to 1.5.6.1: + * New filters 'Lights & Shadows / Drop shadow 3d', 'Colors / + Colorize comics' + * New commands '-pack_sprites', '-rprogress' + * Converted native commands '-haar' and '-ihaar' as custom + commands, re-organized filter tree sections (gimp), volumetric + images zoom in viewer keeps displaying z-coords. + * Bugfixes: raw files now correctly use unsigned int when requested + so (instead of unsigned short), -polygon, gimp non-interactive + mode. +- Update to 1.5.6.0: + * New command (and filter) -bokeh + * Math parser accepts 'j(dx,_dy,_dz,_dc,_interpolation,_boundary)' + * Commands '-deblur_richardsonlucy' and '-deblur_goldmeinel' + integrated into trunk. + * gimp plug-in external filter source management, optimiztion of + math parser, replace native -resize2x and 3x with custom + -scale2x and 3x, -blend_median recoded + * Integrate external filters in gimp plugin + * Bugfix: 3d rendering with parallel projection + +------------------------------------------------------------------- +Tue May 14 06:37:54 CEST 2013 - kurt@garloff.de + +- Disable GraphicsMagick features again (dependency hell). + +------------------------------------------------------------------- +Tue May 14 06:02:43 CEST 2013 - kurt@garloff.de + +- Include reference documentation (PDF) in -doc subpackage. + +------------------------------------------------------------------- +Tue May 14 05:39:29 CEST 2013 - kurt@garloff.de + +- Require same lib version from -devel package. +- Enable openmp, xshm, xrandr, opencv and magick features. + +------------------------------------------------------------------- +Sun May 12 00:55:20 CEST 2013 - kurt@garloff.de + +- Split off -zart and -gimp sub packages. + +------------------------------------------------------------------- +Fri May 10 01:16:53 CEST 2013 - kurt@garloff.de + +- Update to 1.5.5.2 +- Update to 1.5.5.1: + * Inpainting (-repair) to reconstruct image areas +- Update to 1.5.5.0: + * New logo (GREYC's Magic for Image Computing) + * New blending modes for -blend + * opencv allows requesting specific resolution for camera capture + * -alert box display + * improve image resolution for pdf files + * -richardson_lucy was a misnomer and is now called -deblur + * Various bugfixes +- Update to 1.5.4.0: + * Spanish translations + * Colors/Recolorize added + * -weave + * -compose_* deprecated, use -blend instead + * bugfixes +- Update to 1.5.3.0: + * _sort_str sorts in lexicographic order + * -echo_stdout and -echo_file + * -gimp_list_filters + * -symmetrice + * bug fixes +- Update to 1.5.2.2: + * multiple frames of animated GIF files supported + * interactive demo -x_quantize_rgb + * -uniform_distribution + * bugfixes +- Update to 1.5.2.0: + * Web interface G'MIC online http://gmicol.greyc.fr/ + * -text_pointcloud3d + * -vignette + * -ssd_patch + * -circle and -rectangle + * -x_pacman game + * -region_feature + * -average_color + * -histogram_pointwise + * -img2str + * -sprites3d + * -star3d + * -stars + * Bugfixes and Optimizations +- Update to 1.5.1.9: + * -med, -mad, -variance_noise, -resize_pow2, -denoise_haar + * Enhancement/Smooth [wavelets] + * -autocrop_seq + * -x_tetris + * Bugfixes + +------------------------------------------------------------------- +Wed Oct 19 15:37:32 CEST 2011 - garloff@suse.de + +- Split out libgmic1 and libgmic-devel subpackages. +- Update to 1.5.0.4: + * New features: -replace_nan, -min_patch/-max_patch, -rodilius. + * Bugfixes: -compose_alpha. + * Improvements: -gaussian. +- Update to 1.5.0.3: + * Improvements: P7 pink file format, image list name duplication limit, + -paper renamed to -texturize_paper. + * New features: -x_rubber3d, -texturize_canvas, Lylejk's painting + plug-in filter, -compose_alpha. + * Bug fixes: -select with feature_type=3. +- Update to 1.5.0.2: + * New features: -tensro2eigen, -eigen2tensor, space pauses -animate, + Solve Labyrith filter, managing empty images (-input 0), -maze + * Improvements: -split can split an image along several axes now + * Bug fixes: -ripple, -minimal_distance, @{x,-y} substitutions. +- Update to 1.5.0.1: + * New features: -output_pink3d, -ripple. + * Improvements: Remove 'beta' marker from man pages, reading BMP. + * Bug fixes: -convolve, -autocrop, modulo corrected for negative + numbers, -label (high connectivity mode). +- Update to 1.5.0.0: + * New features: -x_shadebobs, multi-line text parameter widget (plug-in), + paned GUI, faves copying in plug-in, allow specifying filename format + without filename extension, -uncase, compression of built-in commands, + gmic reference page documents convenient functions, -fire_edges. + * Improvements: Image copies have ~ appended, -mirror can now mirror + along several axes, outlined labels for -plot, -display_graph, labels + in command calls may reference several images, support for extended + ASCII chars, enlarge the size of preview window, chose RGBA channels + for plug-in filters. + * Bug fixes: -apply_channels, expand now displays last folder, -split, + faves. +- Update to 1.4.9.5: + * New features: -update, counter for documented commands, -x_blobs. + * Improvements: Kuwahara filter, more robust faves, GPT filter, + prefix for saved files in visualization module is now gmic_. +- Update to 1.4.9.4: + * New features: -distance (new mode), -gmicky, -minimal_path, + -x_minimal_path, -kuwahara, + * Improvements: -pointcloud3d, diplay start and end of shortened messages, + -input and -command now accept URLs, -select. + * Bug fixes: -ffast-math now safer, -pointcloud precision, remove update + files from temp dir. +- Update to 1.4.9.3: + * New features: -rgb2srgb, -srgb2rgb, -mdic, -discard, Plaid filter, + 3d colored object filter, -otsu, -hough, -x_hough, -houghsketchbw. + * Improvements: g++-4.6 compatibility, -quotify renamed to -quote, + -pointcloud, decrease verbosity in substitutions, -hardsketchbw, + -pointcloud3d. +- Update to 1.4.9.2: + * Improvments: package libgmic and header in .deb package, -flood, -label. + * Bug fixes: -round, 'Mirrored array' filter. +- Update to 1.4.9.1: + * New features: -svd, -diagonal matrix functions. + * Improvements: Progress bar disabling in plug-in. + * Bug fixes: -split, -dijkstra ... allow rounding values. +- Update to 1.4.9.0: + * New features: Stained glass, plasma filters, input_network command, + poker tournament score board, external filter sources, -quotify. + * Improvements: multi-page TIFF support, -displacement w/ negative + smoothness (anisotropic), raw pixel types, fave management, -return. + * A number of smaller bug fixes. +- Update to 1.4.8.3: + * New features: -onfail, -srand, -reset, -replace. + * Improvements: More restrictive syntax for -do, -while, -if, ..., + -r3d shortcut, code examples with gmic -h command and on reference + page, removed HTML documentation from tar balls, -streamline3d, + -trisolve, -sharpen, real global vars, better reference doc (at + http://gmic.sourceforge.net/reference.shtml). + * Bug fixes: -break, -sort, -resize3x, -display, -equalize, -histogram, + -solve, -normalize. +- Update to 1.4.8.2: + * Bug corrections: -isosurface3d, -isoline3d, -extrude3d. + * New features: PINK extensions (.pgm), P1+P4 .pnm files, new filter + Light&Shadows/Light glow. + * Improvements: Avoid using xshm X11 extension, -gpt command. +- Update to 1.4.8.1: + * New features: (Partial) support of MINC2 files. + * Bug fixes: -append, image rations, -split, -text, '\r' handling. +- Update to 1.4.8.0: + * Improvements: -break, -continue, -return control flow, maintain some + special chars in variable names. + * Bug fixes: segfault reading filter zoon factor, display bugs in -shell + mode, DICOM format (3d), diplay of image lists and visualization windows + for very small images. +- Update to 1.4.7.4: + * New features: -distance with custom metric, -label threshold, interactive + navigation through image lists, HSV equalizer. + * Improvements: Auto-completion, class name for windows, -display_array, + -append. + * Bug fixes: Manage mouse wheel again in -animate. +- Update to 1.4.7.3: + * Bug corrections: -graph, plug-in with gimp 2.7.x + * New features: -display_array, Grain merge and Grain extract layer mode, + -distance metrics, -label, 3d view for 3d volumetric images (Ctrl-V). + * Improvements: Image display, -split. +- Update to 1.4.7.2: + * G'MIC interpreter: Substitution expressions '${>}' and '${' and '$<', + '@*', command line with spaces in filenames handling, large 3d object + handling. + * G'MIC commands: -split improvement, .off 3D file handling, new + -pointcloud3d, -colorcube3d, updated -histogram3d, -primitive3d, + -primitives3d. Bugfix for -primitive3d, -resize, -graph. New -gpt. +- Update to 1.4.7.1: + * Significant optimization in managing named variables, introduction of + global variables (start with _). Improved image selection. +- Update to 1.4.7.0: + * Significant cleanups. + +------------------------------------------------------------------- +Fri Dec 10 10:32:44 CET 2010 - garloff@suse.de + +- Update to 1.4.5.2: + * Raised precision for the sliders in the G'MIC for GIMP +- Update to 1.4.5.0: + * New command '-display_graph' that renders a graph plot + * New in GIMP plug-in : 'Rendering/Equation plot' + * Bugfixes: '-convolve', '-correlate', '-erode', '-dilate'. + Added boolean parameter for the computation of normalized versions. + * Bugifixes: small bugs in '-grid', '-graph' and '-plot'. + * New in GIMP plug-in: 'Various/Do nothing', 'Polka dots' +- Update to 1.4.4.2: + * Layers are now named after the G'MIC command generating them +- Update to 1.4.4.0: + * New filters 'Rendering/3d lathing', 'Contours/Skeleton' + * Improvement of 3d rendering capabilities in the G'MIC plug-in. + * Improvement of the 'Sequence' folder. + * Bugfixes in the internal G'MIC engine, in particula '-break'. +- Update to 1.4.3.0: + * Small improvements over 1.4.2.0 +- Update to 1.4.2.0: + * Many bug fixes, and some speed improvements. + * Some new options in the 3d objects filters. +- Update to 1.4.1.0: + * Bugfixes: Display of 3d objects containing point primitives, + bad memory access in command '-input', typos in various + error/warning messages. + * Features: '-gyroid3d', '-texturize3d', new default colormaps + for '-map' and '-index' (8 in total) : hot, jet, cube, ..., + '-label_points3d' + * New in the GIMP plug-in : sphere and gyroid. +- Update to 1.4.0.0: + - New native commands '-trisolve', '-camera', '-rotation3d' + - New custom commands ('-tunnel','-apply_camera','-function1d', + 'chessboard',...). New internal timer with a ms precision. + - New in the GIMP plug-in: RGB/YCbCr/Lab curves, Tunnel effect, + Tone Mapping and Chessboard filters. + - The command line version of G'MIC can now manage the webcam, + through the use of the OpenCV library. + - Small bugfixes and optimization. +* Update to 1.3.9.0: + - Small bugfixes and optimizations +* Update to 1.3.8.0: + - Various bugfixes +* Update to 1.3.7.2: + - Simplify the variable management in the G'MIC language + - Some small bugfixes + - Slightly reduced memory footprint of the interpreter + - Updates to The technical reference documentation +* Update to 1.3.7.1: + - Minor bugfixes +* Update to 1.3.7.0: + - Bugfixes +* Update to 1.3.6.0: + - Small improvements and optimizations: Better substitution mechanism + (with labels, making filter writing more comfortable), new ('-grid') + and improved commands + - Demo for new label mechanism: gmic -x_jawbreaker + +------------------------------------------------------------------- +Fri Jun 25 10:59:01 CEST 2010 - garloff@suse.de + +- Update to 1.3.5.7: + * Final stable version +- Update to 1.3.5.6: + * Maximize preview button (plugin dialog) + * New filters in plugin + * Small optimizations +- Update to 1.3.5.5: + * Processing engine now allows custom functions w/ return values + * Scrollbar in plugin parameters dialog +- Update to 1.3.5.3: + * deriche command + * Improved stability +- Update to 1.3.5.1: + * Optimize memory usage +- Update to 1.3.5.0: + * Quick preview toggling + * Median filtering + * Layers/Shape average + * Internal changes and optimizations +- Update to 1.3.4.1: + * Minor bug fixes + +------------------------------------------------------------------- +Sun Mar 21 15:40:07 CET 2010 - garloff@suse.de + +- Fix GraphicsMagick++ vs. (Image)Magick++ mess; work with either, + not both. + +------------------------------------------------------------------- +Fri Mar 19 01:20:57 CET 2010 - garloff@suse.de + +- Update do gmic-1.3.4.0: + * gmic lang interpreter stabilized + * Minor fixes and improvements + * Major performance gains + * Smarter preview + * gimp plugin more in line with the rest +- Drop parallel make patch (is upstream). +- Compile flag -fno-tree-pre now determined by detected compiled + version (4.3*). + +------------------------------------------------------------------- +Mon Nov 23 08:48:32 CET 2009 - garloff@suse.de + +- Parallel make. + +------------------------------------------------------------------- +Sun Nov 22 22:02:20 CET 2009 - garloff@suse.de + +- Update to 1.3.2.9: + * Non-interactive mode possible + * Bug fixes and new modes + +------------------------------------------------------------------- +Mon Jul 6 19:56:03 CEST 2009 - garloff@suse.de + +- Update to 1.3.2.0: + * Documentation improvements. + * Better image transfer with gimp. + +------------------------------------------------------------------- +Tue Mar 31 10:41:35 CEST 2009 - garloff@suse.de + +- Update to 1.3.1.1. + +------------------------------------------------------------------- +Mon Mar 2 12:02:43 CET 2009 - garloff@suse.de + +- Fix compiler overflow warning. + +------------------------------------------------------------------- +Fri Feb 27 11:19:09 CET 2009 - garloff@suse.de + +- Initial creation of package. (1.3.0.3) + diff --git a/gmic.spec b/gmic.spec new file mode 100644 index 0000000..cbe7278 --- /dev/null +++ b/gmic.spec @@ -0,0 +1,302 @@ +Name: gmic +Version: 1.5.8.4 +Release: 0 +Group: Productivity/Graphics/Bitmap Editors +URL: http://gmic.sourceforge.net/ +Packager: kurt@garloff.de +Source: %{name}_%{version}.tar.bz2 +Source1: http://gmic.sourceforge.net/gmic_reference.pdf +Patch1: gmic-cflags.diff +Patch2: gmic-docdir.diff +Patch3: gmic-overflow.diff +Patch10: gmic-x11opts.diff +Patch11: gmic-openmp.diff +Patch12: gmic-openmp-gcc43.diff +Patch15: gmic-opencv.diff +Patch16: gmic-opencv-old.diff +Patch17: gmic-magick.diff +Patch20: gmic-zart-qmake.diff +Patch21: gmic-make-zart.diff +Patch30: gmic-opt-parallel-make.diff +Patch31: gmic-unstrip.diff +Summary: GREYC's Magick for Image Computing (denoise and others) +License: CECILL v.2.0 (GPL compatible) +Prefix: /usr +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: procps +BuildRequires: fftw3-devel gcc-c++ libstdc++-devel dos2unix OpenEXR-devel +BuildRequires: libqt4-devel +%if 0%{?suse_version} >= 1110 +BuildRequires: libjpeg-devel libtiff-devel +BuildRequires: opencv-devel libjasper1 +BuildRequires: fftw3-threads-devel +#BuildRequires: GraphicsMagick-devel +%else +%if 0%{?fedora_version} > 16 +BuildRequires: libjpeg-devel libtiff-devel opencv-devel jasper-libs +#BuildRequires: fftw-libs-threads +%else +%if 0%{?mandriva_version} > 0 +BuildRequires: libtiff-devel +%endif +%endif +%endif +%if 0%{?suse_version} == 1030 +BuildRequires: gimp-unstable-devel +%else +BuildRequires: gimp-devel +%endif +%if 0%{?sles_version} == 11 +BuildRequires: glib2-branding-SLES +%endif + +%define openSUSE_submit 1 + + +%description +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. Technically speaking, what it does is: + + Define a lightweight but powerful script language (the G'MIC language) dedicated to the design of image processing operators and pipelines. + + Provide several user interfaces embedding the corresponding interpreter: + + A command-line executable gmic, to use the G'MIC framework from a shell. + In this setting, G'MIC may be seen as a serious (and friendly) competitor of the ImageMagick or GraphicsMagick software suites. + + A plug-in gmic_gimp, to bring G'MIC capabilities to the GIMP image retouching software. (gmic-gimp) + + A web service G'MIC Online, to allow users applying image processing algorithms directly in a web browser. + + A Qt-based interface ZArt, for real-time mainpulation of webcam images. (gmic-zart) + + A C++ library libgmic, to be linked to third-party applications. (libgmic1, gmic-devel) + +G'MIC is focused on the design of possibly complex pipelines for converting, manipulating, filtering and visualizing generic 1d/2d/3d multi-spectral image datasets. This includes of course color images, but also more complex data as image sequences or 3d(+t) volumetric float-valued datasets. + +G'MIC is an open framework: the default language can be extended with custom G'MIC-written commands, defining thus new available image filters or effects. By the way, G'MIC already contains a substantial set of pre-defined image processing algorithms and pipelines (more than 1000). + +G'MIC has been designed with portability in mind and runs on different platforms (Windows, Unix, MacOSX). It is distributed under the CeCILL license (GPL-compatible). Since 2008, it is developed in the Image Team of the GREYC laboratory, in Caen/France, by permanent researchers working in the field of image processing on a daily basis. + +G'MIC has superior denoising and sharpening capabilities. + +Authors +------- + + David Tschumperle ( http://www.greyc.ensicaen.fr/~dtschump/ ) (source code) + Claude Bulin ( http://www.xcfa.tuxfamily.org/ ) (packaging) + Angelo Lama ( historical developper of EKD : http://ekd.tuxfamily.org, + post-prod software for videos and images) (testing) + Stephane de la Linuxerie (http://linuxerie.midiblogs.com and http://polariscorp.free.fr) (design & gimp plug-in) + Jerome Ferrari (testing) + + GREYC Image / CNRS UMR 6072 / FRANCE + Team web page : http://www.greyc.ensicaen.fr/EquipeImage/ + +%package -n libgmic1 +Summary: Shared library that belongs to gmic +Group: Productivity/Graphics/Bitmap Editors + +%package -n libgmic-devel +Summary: Header and library from gmic for use in other C++ projects +Group: Development/Libraries/C and C++ +Requires: libgmic1 = %{version} + +%description -n libgmic1 +Shared library allows you to use gmic functionality from other +programs. + +%description -n libgmic-devel +Header and library from gmic to needed to develop C++ code that +uses the gmic functionality provided by the gmic library. + +%package gimp +Summary: GMIC plugin for gimp +Group: Productivity/Graphics/Bitmap Editors + +%description gimp +This is a plugin for gimp that exposes many of the nice gmic features +for interactive use in gimp. + +%package zart +Summary: Real-time web cam video stream manipulation +Group: Productivity/Graphics/Bitmap editors + +%description zart +This program allows you to capture video from a web cam and apply +(real time) gmic image manipulations on the video stream. + +%package doc +Summary: GMIC reference documentation +Group: Productivity/Graphics/Bitmap editors + +%description doc +This is the reference documentation for G'MIC in .pdf format. + +%prep +%setup +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +# More gmic features ... +%patch15 -p1 +%if 0%{?fedora_version} > 16 +#nothing +%else +%if 0%{?suse_version} < 1100 +%patch16 -p1 +%endif +%endif +#%patch17 -p1 +%patch20 -p1 +%patch21 -p1 +%patch30 -p1 +%patch31 -p1 +# Remove build time references so build-compare can do its work +FAKE_BUILDTIME=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%H:%%M') +FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y') +sed -i "s/__TIME__/\"$FAKE_BUILDTIME\"/g" src/CImg.h +sed -i "s/__DATE__/\"$FAKE_BUILDDATE\"/g" src/CImg.h +sed -i "s/__TIME__/\"$FAKE_BUILDTIME\"/g" src/gmic.cpp +sed -i "s/__DATE__/\"$FAKE_BUILDDATE\"/g" src/gmic.cpp +# Replacement for documentation that was formerly included +echo -e "\nG'MIC documentation" > index.html +echo -e "

G'MIC documentation links

\n\n\n" >> index.html +mv zart/README zart/README.zart +cp -p %{SOURCE1} . + +%build +RPM_OPT_FLAGS="`echo $RPM_OPT_FLAGS | sed 's/-fstack-protector//'`" +RPM_OPT_FLAGS="$RPM_OPT_FLAGS -O3 -ffast-math -ftree-vectorize" +# Compile times are exorbitant as are, -funroll-loops makes it worse +#RPM_OPT_FLAGS="$RPM_OPT_FLAGS -funroll-loops" +%ifarch %{ix86} x86_64 +RPM_OPT_FLAGS="$RPM_OPT_FLAGS -momit-leaf-frame-pointer" +%endif +%if 0%{?openSUSE_submit} == 0 +%ifarch %{ix86} +RPM_OPT_FLAGS="$RPM_OPT_FLAGS -mmmx -msse -mfpmath=sse,387" +%endif +%endif +# gcc-4.3 needs -fno-tree-pre, see gcc bug 36439 +GCCVER="`gcc --version | head -n1 | sed 's/^gcc[^0-9]*\([^ ]*\).*$/\1/'`" +#echo $GCCVER +case $GCCVER in 4.3*) + RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-tree-pre" + ;; + 4.5*) + RPM_OPT_FLAGS="`echo $RPM_OPT_FLAGS | sed 's/\-funroll\-loops //'`" + ;; +esac +# Limit parallel build to avoid overloading machines +free -m +MEM=`free -m | grep '^Mem:' | sed 's/^Mem: *\([0-9]*\).*$/\1/'` +# x86(-64) needs 0.6GB per gmic_XXX except gmic_float (main) with 1 GB +MAXJOBS=$((($MEM-300)/540)) +echo "Limiting Jobs %jobs -> $MAXJOBS" +if test -n "%jobs" -a $MAXJOBS -gt 1; then + if test %jobs -gt $MAXJOBS; then + JOBS="-j$MAXJOBS" + else + JOBS="-j%jobs" + fi +else + JOBS="" +fi +#make CFLAGS="$RPM_OPT_FLAGS" +cd src +%if 0%{?fedora_version} > 16 +make $JOBS CFLAGS="$RPM_OPT_FLAGS" LIB=%{_lib} QMAKE=qmake-qt4 linux_alltypes +make $JOBS CFLAGS="$RPM_OPT_FLAGS" LIB=%{_lib} QMAKE=qmake-qt4 gimp lib +make $JOBS CFLAGS="$RPM_OPT_FLAGS" LIB=%{_lib} QMAKE=qmake-qt4 zart +%else +%if 0%{?openSUSE_submit} == 0 +make $JOBS CFLAGS="$RPM_OPT_FLAGS" LIB=%{_lib} linux_alltypes +%else +make $JOBS CFLAGS="$RPM_OPT_FLAGS" LIB=%{_lib} linux +%endif +make $JOBS CFLAGS="$RPM_OPT_FLAGS" LIB=%{_lib} gimp lib +make $JOBS CFLAGS="$RPM_OPT_FLAGS" LIB=%{_lib} zart +%endif +#make %{?jobs:-j%jobs} CFLAGS="$RPM_OPT_FLAGS" gimp +free -m + +%install +mkdir -p $RPM_BUILD_ROOT/usr/%{_lib}/gimp/2.0/plug-ins/ +cd src +make install DESTDIR=$RPM_BUILD_ROOT DOCDIR=%{_docdir} MANDIR=%{_mandir} LIB=%{_lib} +#ln -s libgmic.so.1 $RPM_BUILD_ROOT/usr/%{_lib}/libgmic.so +%if 0%{?fedora_version} > 16 +make install-zart DESTDIR=$RPM_BUILD_ROOT DOCDIR=%{_docdir} MANDIR=%{_mandir} LIB=%{_lib} QMAKE=qmake-qt4 +%else +make install-zart DESTDIR=$RPM_BUILD_ROOT DOCDIR=%{_docdir} MANDIR=%{_mandir} LIB=%{_lib} +%endif +#mkdir -p $RPM_BUILD_ROOT%{_docdir}/gmic/html +#for name in images res js slides thumbs; do +# cp -ax html/$name $RPM_BUILD_ROOT%{_docdir}/gmic/html/ +#done +#for name in README AUTHORS ChangeLog COPYING; do +# cp -p $name $RPM_BUILD_ROOT%{_docdir}/gmic/ +#done +strip -S $RPM_BUILD_ROOT/usr/bin/gmic +strip -S $RPM_BUILD_ROOT/usr/%{_lib}/gimp/2.0/plug-ins/gmic_gimp +# ZART +strip -S $RPM_BUILD_ROOT/usr/bin/zart +# Duplicate man page ... +rm $RPM_BUILD_ROOT/%{_mandir}/fr/man1/gmic.1.gz +# Reference manual +#install -d $RPM_BUILD_ROOT/%{_docdir}/gmic +#install -m 0644 %{SOURCE1} $RPM_BUILD_ROOT/%{_docdir}/gmic/ + +%post -n libgmic1 +%{run_ldconfig} + +%postun -n libgmic1 +%{run_ldconfig} + +%files +%defattr(-,root,root) +/usr/bin/gmic +%if 0%{?mandriva_version} == 0 +#%{_mandir}/fr/man1/gmic.1.gz +%{_mandir}/man1/gmic.1.gz +%else +#%{_mandir}/fr/man1/gmic.1.lzma +%{_mandir}/man1/gmic.1.lzma +%endif +#%dir %{_docdir}/gmic +#%doc README COPYING AUTHORS index.html +%doc README COPYING index.html +%config %attr(0644,root,root) /etc/bash_completion.d/gmic + +%files zart +%defattr(-,root,root) +/usr/bin/zart +%doc zart/Licence_CeCILL_V2-en.html zart/README.zart + +%files gimp +%defattr(-,root,root) +/usr/%{_lib}/gimp/2.0/plug-ins/gmic_gimp + +%files -n libgmic1 +%defattr(-,root,root) +%{_libdir}/libgmic.so.1* + +%files -n libgmic-devel +%defattr(-,root,root) +/usr/include/gmic.h +%{_libdir}/libgmic.so + +%files doc +%defattr(-,root,root) +#%dir %{_docdir}/gmic +%doc gmic_reference.pdf + diff --git a/gmic_1.5.8.4.tar.bz2 b/gmic_1.5.8.4.tar.bz2 new file mode 100644 index 0000000..25d1d55 --- /dev/null +++ b/gmic_1.5.8.4.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18c4fc427b7f620b9143115b4f2b5cb0b2d825c444c6969b19367b038b7fb056 +size 1676335 diff --git a/gmic_reference.pdf b/gmic_reference.pdf new file mode 100644 index 0000000..a925538 --- /dev/null +++ b/gmic_reference.pdf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0ea576f2ad1a444b9559025bb31f984b8d056ff0ba12d3473fd05fe02bc2e86 +size 24650031