Home | History | Annotate | Download | only in ImageMagick
      1 %global VERSION  @PACKAGE_VERSION@
      2 %global Patchlevel  @PACKAGE_RELEASE@
      3 
      4 
      5 Name:           @PACKAGE_NAME@
      6 Version:        %{VERSION}
      7 Release:        %{Patchlevel}
      8 Summary:        Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats.  In addition resize, rotate, shear, distort and transform images.
      9 Group:          Applications/Multimedia
     10 License:        http://www.imagemagick.org/script/license.php
     11 Url:            http://www.imagemagick.org/
     12 Source0:        http://www.imagemagick.org/download/%{name}/%{name}-%{VERSION}-%{Patchlevel}.tar.bz2
     13 
     14 Requires:       %{name}-libs = %{version}-%{release}
     15 
     16 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
     17 BuildRequires:  bzip2-devel, freetype-devel, libjpeg-devel, libpng-devel
     18 BuildRequires:  libtiff-devel, giflib-devel, zlib-devel, perl-devel >= 5.8.1
     19 BuildRequires:  ghostscript-devel, djvulibre-devel
     20 BuildRequires:  libwmf-devel, jasper-devel, libtool-ltdl-devel
     21 BuildRequires:  libX11-devel, libXext-devel, libXt-devel
     22 BuildRequires:  lcms2-devel, libxml2-devel, librsvg2-devel, OpenEXR-devel
     23 BuildRequires:  fftw-devel, OpenEXR-devel, libwebp-devel
     24 BuildRequires:  jbigkit-devel
     25 BuildRequires:  openjpeg2-devel >= 2.1.0
     26 
     27 %description
     28 ImageMagick is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bzier curves.
     29 
     30 The functionality of ImageMagick is typically utilized from the command-line or you can use the features from programs written in your favorite language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), L-Magick (Lisp), Lua (LuaJIT), NMagick (Neko/haXe), Magick.NET (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.
     31 
     32 ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.
     33 
     34 ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under the Apache 2.0 license.
     35 
     36 The ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to prevent security vulnerabilities.
     37 
     38 The authoritative ImageMagick web site is http://www.imagemagick.org. The authoritative source code repository is http://git.imagemagick.org/repos/ImageMagick. We maintain a source code mirror at GitHub.
     39 
     40 %package devel
     41 Summary: Library links and header files for ImageMagick application development
     42 Group: Development/Libraries
     43 Requires: %{name} = %{version}-%{release}
     44 Requires: libX11-devel, libXext-devel, libXt-devel, ghostscript-devel
     45 Requires: bzip2-devel, freetype-devel, libtiff-devel, libjpeg-devel, lcms2-devel
     46 Requires: libwebp-devel, OpenEXR-devel, jasper-devel, pkgconfig
     47 Requires: %{name}-libs = %{version}-%{release}
     48 
     49 %description devel
     50 ImageMagick-devel contains the library links and header files you'll
     51 need to develop ImageMagick applications. ImageMagick is an image
     52 manipulation program.
     53 
     54 If you want to create applications that will use ImageMagick code or
     55 APIs, you need to install ImageMagick-devel as well as ImageMagick.
     56 You do not need to install it if you just want to use ImageMagick,
     57 however.
     58 
     59 %package libs
     60 Summary: ImageMagick libraries to link with
     61 Group: Applications/Multimedia
     62 
     63 %description libs
     64 This packages contains a shared libraries to use within other applications.
     65 
     66 %package djvu
     67 Summary: DjVu plugin for ImageMagick
     68 Group: Applications/Multimedia
     69 Requires: %{name} = %{version}-%{release}
     70 
     71 %description djvu
     72 This packages contains a plugin for ImageMagick which makes it possible to
     73 save and load DjvU files from ImageMagick and libMagickCore using applications.
     74 
     75 
     76 %package doc
     77 Summary: ImageMagick HTML documentation
     78 Group: Documentation
     79 
     80 %description doc
     81 ImageMagick documentation, this package contains usage (for the
     82 commandline tools) and API (for the libraries) documentation in HTML format.
     83 Note this documentation can also be found on the ImageMagick website:
     84 http://www.imagemagick.org/.
     85 
     86 
     87 %package perl
     88 Summary: ImageMagick perl bindings
     89 Group: System Environment/Libraries
     90 Requires: %{name} = %{version}-%{release}
     91 Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
     92 
     93 
     94 %description perl
     95 Perl bindings to ImageMagick.
     96 
     97 Install ImageMagick-perl if you want to use any perl scripts that use
     98 ImageMagick.
     99 
    100 
    101 %package c++
    102 Summary: ImageMagick Magick++ library (C++ bindings)
    103 Group: System Environment/Libraries
    104 Requires: %{name} = %{version}-%{release}
    105 
    106 %description c++
    107 This package contains the Magick++ library, a C++ binding to the ImageMagick
    108 graphics manipulation library.
    109 
    110 Install ImageMagick-c++ if you want to use any applications that use Magick++.
    111 
    112 
    113 %package c++-devel
    114 Summary: C++ bindings for the ImageMagick library
    115 Group: Development/Libraries
    116 Requires: %{name}-c++ = %{version}-%{release}
    117 Requires: %{name}-devel = %{version}-%{release}
    118 
    119 %description c++-devel
    120 ImageMagick-devel contains the static libraries and header files you'll
    121 need to develop ImageMagick applications using the Magick++ C++ bindings.
    122 ImageMagick is an image manipulation program.
    123 
    124 If you want to create applications that will use Magick++ code
    125 or APIs, you'll need to install ImageMagick-c++-devel, ImageMagick-devel and
    126 ImageMagick.
    127 
    128 You don't need to install it if you just want to use ImageMagick, or if you
    129 want to develop/compile applications using the ImageMagick C interface,
    130 however.
    131 
    132 
    133 %prep
    134 %setup -q -n %{name}-%{VERSION}-%{Patchlevel}
    135 
    136 # for %%doc
    137 mkdir Magick++/examples
    138 cp -p Magick++/demo/*.cpp Magick++/demo/*.miff Magick++/examples
    139 
    140 %build
    141 %configure --enable-shared \
    142         --disable-static \
    143         --with-modules \
    144         --with-perl \
    145         --with-x \
    146         --with-threads \
    147         --with-magick_plus_plus \
    148         --with-gslib \
    149         --with-wmf \
    150         --with-webp \
    151         --with-openexr \
    152         --with-rsvg \
    153         --with-xml \
    154         --with-perl-options="INSTALLDIRS=vendor %{?perl_prefix} CC='%__cc -L$PWD/MagickCore/.libs' LDDLFLAGS='-shared -L$PWD/MagickCore/.libs'" \
    155         --without-dps  \
    156         --without-gcc-arch \
    157         --with-jbig \
    158         --with-openjp2
    159 
    160 # Do *NOT* use %%{?_smp_mflags}, this causes PerlMagick to be silently misbuild
    161 make
    162 
    163 
    164 %install
    165 make %{?_smp_mflags} install DESTDIR=%{buildroot} INSTALL="install -p"
    166 cp -a www/source %{buildroot}%{_datadir}/doc/%{name}-%{VERSION}
    167 rm %{buildroot}%{_libdir}/*.la
    168 
    169 # fix weird perl Magick.so permissions
    170 chmod 755 %{buildroot}%{perl_vendorarch}/auto/Image/Magick/*/*.so
    171 
    172 # perlmagick: fix perl path of demo files
    173 %{__perl} -MExtUtils::MakeMaker -e 'MY->fixin(@ARGV)' PerlMagick/demo/*.pl
    174 
    175 # perlmagick: cleanup various perl tempfiles from the build which get installed
    176 find %{buildroot} -name "*.bs" |xargs rm -f
    177 find %{buildroot} -name ".packlist" |xargs rm -f
    178 find %{buildroot} -name "perllocal.pod" |xargs rm -f
    179 
    180 # perlmagick: build files list
    181 echo "%defattr(-,root,root,-)" > perl-pkg-files
    182 find %{buildroot}/%{_libdir}/perl* -type f -print \
    183         | sed "s@^%{buildroot}@@g" > perl-pkg-files 
    184 find %{buildroot}%{perl_vendorarch} -type d -print \
    185         | sed "s@^%{buildroot}@%dir @g" \
    186         | grep -v '^%dir %{perl_vendorarch}$' \
    187         | grep -v '/auto$' >> perl-pkg-files 
    188 if [ -z perl-pkg-files ] ; then
    189     echo "ERROR: EMPTY FILE LIST"
    190     exit -1
    191 fi
    192 
    193 # fix multilib issues: Rename provided file with platform-bits in name.
    194 # Create platform independant file inplace of provided and conditionally include required.
    195 # $1 - filename.h to process.
    196 function multilibFileVersions(){
    197 mv $1 ${1%%.h}-%{__isa_bits}.h
    198 
    199 local basename=$(basename $1)
    200 
    201 cat >$1 <<EOF
    202 #include <bits/wordsize.h>
    203 
    204 #if __WORDSIZE == 32
    205 # include "${basename%%.h}-32.h"
    206 #elif __WORDSIZE == 64
    207 # include "${basename%%.h}-64.h"
    208 #else
    209 # error "unexpected value for __WORDSIZE macro"
    210 #endif
    211 EOF
    212 }
    213 
    214 multilibFileVersions %{buildroot}%{_includedir}/%{name}-7/MagickCore/magick-config.h
    215 multilibFileVersions %{buildroot}%{_includedir}/%{name}-7/MagickCore/magick-baseconfig.h
    216 multilibFileVersions %{buildroot}%{_includedir}/%{name}-7/MagickCore/version.h
    217 
    218 
    219 %check
    220 export LD_LIBRARY_PATH=%{buildroot}/%{_libdir}
    221 make %{?_smp_mflags} check
    222 
    223 %post libs -p /sbin/ldconfig
    224 
    225 %post c++ -p /sbin/ldconfig
    226 
    227 %postun libs -p /sbin/ldconfig
    228 
    229 %postun c++ -p /sbin/ldconfig
    230 
    231 %files
    232 %doc README.txt LICENSE NOTICE AUTHORS.txt NEWS.txt ChangeLog Platforms.txt
    233 %{_bindir}/[a-z]*
    234 %{_mandir}/man[145]/[a-z]*
    235 %{_mandir}/man1/%{name}.*
    236 
    237 %files libs
    238 %doc LICENSE NOTICE AUTHORS.txt QuickStart.txt
    239 %{_libdir}/libMagickCore-7.Q16HDRI.so.*
    240 %{_libdir}/libMagickWand-7.Q16HDRI.so.*
    241 %{_libdir}/%{name}-%{VERSION}
    242 %{_datadir}/%{name}-7
    243 %exclude %{_libdir}/%{name}-%{VERSION}/modules-Q16HDRI/coders/djvu.*
    244 %{_sysconfdir}/%{name}-7
    245 
    246 %files devel
    247 %{_bindir}/MagickCore-config
    248 %{_bindir}/MagickWand-config
    249 %{_libdir}/libMagickCore-7.Q16HDRI.so
    250 %{_libdir}/libMagickWand-7.Q16HDRI.so
    251 %{_libdir}/pkgconfig/MagickCore.pc
    252 %{_libdir}/pkgconfig/MagickCore-7.Q16HDRI.pc
    253 %{_libdir}/pkgconfig/ImageMagick.pc
    254 %{_libdir}/pkgconfig/ImageMagick-7.Q16HDRI.pc
    255 %{_libdir}/pkgconfig/MagickWand.pc
    256 %{_libdir}/pkgconfig/MagickWand-7.Q16HDRI.pc
    257 %dir %{_includedir}/%{name}-7
    258 %{_includedir}/%{name}-7/MagickCore
    259 %{_includedir}/%{name}-7/MagickWand
    260 %{_mandir}/man1/MagickCore-config.*
    261 %{_mandir}/man1/MagickWand-config.*
    262 
    263 %files djvu
    264 %{_libdir}/%{name}-%{VERSION}/modules-Q16HDRI/coders/djvu.*
    265 
    266 %files doc
    267 %doc %{_datadir}/doc/%{name}-7
    268 %doc %{_datadir}/doc/%{name}-%{VERSION}
    269 %doc LICENSE
    270 
    271 %files c++
    272 %doc Magick++/AUTHORS Magick++/ChangeLog Magick++/NEWS Magick++/README
    273 %doc www/Magick++/COPYING
    274 %{_libdir}/libMagick++-7.Q16HDRI.so.*
    275 
    276 %files c++-devel
    277 %doc Magick++/examples
    278 %{_bindir}/Magick++-config
    279 %{_includedir}/%{name}-7/Magick++
    280 %{_includedir}/%{name}-7/Magick++.h
    281 %{_libdir}/libMagick++-7.Q16HDRI.so
    282 %{_libdir}/pkgconfig/Magick++.pc
    283 %{_libdir}/pkgconfig/Magick++-7.Q16HDRI.pc
    284 %{_mandir}/man1/Magick++-config.*
    285 
    286 %files perl -f perl-pkg-files
    287 %{_mandir}/man3/*
    288 %doc PerlMagick/demo/ PerlMagick/Changelog PerlMagick/README.txt
    289 
    290 %changelog
    291 * Sun May 01 2005 Cristy <cristy (a] mystic.es.dupont.com> 1.0-0
    292 -  Port of Redhat's RPM script to support ImageMagick.
    293