Blob Blame History Raw
%if 0%{?rhel}
%bcond_with workshop
%else
%bcond_without workshop
%endif

# skip all tests
%global skip_all_checks 1
# skip tests known to be problematic in a specific version
%global skip_checks_version 0.2.0
# for some reason or other comparing generated to reference images segfaults in
# two test cases
# Well, now it is all of them, not just two. :/
%global skip_checks compositions/run-*.xml.sh

Summary:    A graph based image processing framework
Name:       gegl
Version:    0.2.0
Release:    19%{?dist}

# Compute some version related macros
# Ugly hack, you need to get your quoting backslashes/percent signs straight
%global major %(ver=%version; echo ${ver%%%%.*})
%global minor %(ver=%version; ver=${ver#%major.}; echo ${ver%%%%.*})
%global micro %(ver=%version; ver=${ver#%major.%minor.}; echo ${ver%%%%.*})
%global apiver %major.%minor

# The binary is under the GPL, while the libs are under LGPL
License:    LGPLv3+ and GPLv3+
Group:      System Environment/Libraries
URL:        http://www.gegl.org/
Source0:    ftp://ftp.gimp.org/pub/gegl/%{apiver}/%{name}-%{version}.tar.bz2
Patch0:     gegl-0.2.0-lua-5.2.patch
Patch1:     gegl-0.2.0-CVE-2012-4433.patch
Patch2:     gegl-0.2.0-remove-src-over-op.patch
BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:  asciidoc
BuildRequires:  babl-devel >= 0.1.10
BuildRequires:  cairo-devel
BuildRequires:  enscript
BuildRequires:  exiv2-devel
BuildRequires:  gdk-pixbuf2-devel >= 2.18.0
BuildRequires:  glib2-devel >= 2.28.0
BuildRequires:  graphviz
BuildRequires:  gtk2-devel >= 2.18.0
BuildRequires:  intltool >= 0.40.1
BuildRequires:  jasper-devel >= 1.900.1
%if %{with workshop}
BuildRequires:  lensfun-devel >= 0.2.5
%endif
BuildRequires:  libjpeg-devel
BuildRequires:  libopenraw-devel >= 0.0.5
BuildRequires:  libpng-devel
BuildRequires:  librsvg2-devel >= 2.14.0
BuildRequires:  libspiro-devel
BuildRequires:  libv4l-devel
BuildRequires:  lua-devel >= 5.1.0
BuildRequires:  OpenEXR-devel
BuildRequires:  pango-devel
BuildRequires:  perl-devel
BuildRequires:  pkgconfig
BuildRequires:  ruby
BuildRequires:  SDL-devel
BuildRequires:  suitesparse-devel
Requires:       babl%{?_isa} >= 0.1.10
Requires:	dcraw

%description
GEGL (Generic Graphics Library) is a graph based image processing framework. 
GEGLs original design was made to scratch GIMPs itches for a new
compositing and processing core. This core is being designed to have
minimal dependencies. and a simple well defined API.

%if %{with workshop}
%package operations-workshop
Summary:    Experimental operations for GEGL
Group:      System Environment/Libraries
Requires:   %{name}%{_isa} = %{version}-%{release}

%description operations-workshop
This package contains experimental operations for GEGL. If used they may yield
unwanted results, or even crash. You're warned!
%endif

%package devel
Summary:    Headers for developing programs that will use %{name}
Group:      Development/Libraries
Requires:   %{name}%{_isa} = %{version}-%{release}
Requires:   pkgconfig
Requires:   babl-devel%{_isa}
Requires:   glib2-devel%{_isa}

%description devel
This package contains the libraries and header files needed for
developing with %{name}.

%prep
%setup -q
%patch0 -p1 -b .lua-5.2
%patch1 -p1 -b .CVE-2012-4433
%patch2 -p1 -b .remove-src-over-op

%build
# use hardening compiler/linker flags because gegl is likely to deal with
# untrusted input
%define _hardened_build 1

# Needed by Ruby 1.9.3.
export LANG=en_US.utf8

%configure \
%if %{with workshop}
    --enable-workshop \
%else
    --disable-workshop \
%endif
    --with-pic \
    --with-gio \
    --with-gtk \
    --with-cairo \
    --with-pango \
    --with-pangocairo \
    --with-gdk-pixbuf \
    --with-lensfun \
    --with-libjpeg \
    --with-libpng \
    --with-librsvg \
    --with-openexr \
    --with-sdl \
    --with-libopenraw \
    --with-jasper \
    --with-graphviz \
    --with-lua \
    --without-libavformat \
    --with-libv4l \
    --with-libspiro \
    --with-exiv2 \
    --with-umfpack \
    --disable-static \
    --disable-gtk-doc

make %{?_smp_mflags}

%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} install INSTALL='install -p'
pushd operations
# favor non-workshop binaries
make SUBDIRS= install INSTALL='install -p'
for d in */; do
    d="${d%/}"
    if [ "$d" != "workshop" ]; then
        pushd "$d"
        make DESTDIR=%{buildroot} install INSTALL='install -p'
        popd
    fi
done
popd

rm -f %{buildroot}%{_libdir}/*.la
rm -f %{buildroot}%{_libdir}/gegl-%{apiver}/*.la

# keep track of workshop/non-workshop operations
opsdir="$PWD/operations"

files_ws="$PWD/operations_files_workshop"
files_non_ws="$PWD/operations_files"
non_ws_filenames_file="$PWD/non_ws_filenames"

find "$opsdir" -path "$opsdir/workshop" -prune -o -regex '.*/\.libs/.*\.so' -printf '%f\n' > "$non_ws_filenames_file"

echo '%%defattr(-, root, root, -)' > "$files_non_ws"
echo '%%defattr(-, root, root, -)' > "$files_ws"

pushd %{buildroot}%{_libdir}/gegl-%{apiver}
for opfile in *.so; do
    if fgrep -q -x "$opfile" "$non_ws_filenames_file"; then
        echo "%{_libdir}/gegl-%{apiver}/$opfile" >> "$files_non_ws"
    else
        echo "%{_libdir}/gegl-%{apiver}/$opfile" >> "$files_ws"
    fi
done
popd

%find_lang %{name}-%{apiver}

%check
%if 0%{skip_all_checks} < 1
# skip tests known to be problematic in a specific version
%if "%version" == "%skip_checks_version"
pushd tests
for problematic in %skip_checks; do
    rm -f "$problematic"
    cat << EOF > "$problematic"
#!/bin/sh
echo Skipping test "$problematic"
EOF
    chmod +x "$problematic"
done
popd
%endif
make check
%endif

%clean
rm -rf %{buildroot}

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files -f operations_files -f %{name}-%{apiver}.lang
%defattr(-, root, root, -)
%doc AUTHORS ChangeLog COPYING COPYING.LESSER NEWS README
%{_bindir}/gegl
%{_libdir}/*.so.*
%dir %{_libdir}/gegl-%{apiver}/

%if %{with workshop}
%files operations-workshop -f operations_files_workshop
%endif

%files devel
%defattr(-, root, root, -)
%doc %{_datadir}/gtk-doc/
%{_includedir}/gegl-%{apiver}/
%{_libdir}/*.so
%{_libdir}/pkgconfig/%{name}-%{apiver}.pc

%changelog
* Thu Dec  1 2016 Josef Ridky <jridky@redhat.com> - 0.2.0-19
- add Requires: dcraw (#1279144)

* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 0.2.0-18
- Mass rebuild 2014-01-24

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 0.2.0-17
- Mass rebuild 2013-12-27

* Wed Dec 04 2013 Nils Philippsen <nils@redhat.com> - 0.2.0-16
- remove BR: w3m, it's only needed for "make dist"

* Tue Dec 03 2013 Rex Dieter <rdieter@fedoraproject.org> - 0.2.0-15
- rebuild (exiv2)

* Wed Nov 27 2013 Rex Dieter <rdieter@fedoraproject.org> - 0.2.0-14
- rebuild (openexr)

* Thu Sep 12 2013 Kalev Lember <kalevlember@gmail.com> - 0.2.0-13
- Rebuilt for ilmbase soname bump

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.0-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Mon Jul 01 2013 Nils Philippsen <nils@redhat.com> - 0.2.0-11
- replace lua-5.2 patch by upstream commit
- fix buffer overflow in and add plausibility checks to ppm-load op
  (CVE-2012-4433)
- fix multi-lib issue in generated documentation

* Wed May 15 2013 Tom Callaway <spot@fedoraproject.org> - 0.2.0-10
- rebuild for lua 5.2
- disable check suite (so broken)

* Sun Mar 10 2013 Rex Dieter <rdieter@fedoraproject.org> - 0.2.0-9
- rebuild (OpenEXR)

* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Fri Jan 18 2013 Adam Tkac <atkac redhat com> - 0.2.0-7
- rebuild due to "jpeg8-ABI" feature drop

* Fri Dec 21 2012 Adam Tkac <atkac redhat com> - 0.2.0-6
- rebuild against new libjpeg

* Fri Oct 19 2012 Nils Philippsen <nils@redhat.com> - 0.2.0-5
- don't catch "make check" errors but skip known problematic tests

* Fri Oct 19 2012 Nils Philippsen <nils@redhat.com> - 0.2.0-4
- don't require lensfun-devel for building without workshop ops

* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Wed May 02 2012 Rex Dieter <rdieter@fedoraproject.org> - 0.2.0-2
- rebuild (exiv2)

* Tue Apr 03 2012 Nils Philippsen <nils@redhat.com> - 0.2.0-1
- version 0.2.0
- split off workshop (i.e. experimental) operations
- don't build/package workshop operations on EL

* Mon Feb 06 2012 Vít Ondruch <vondruch@redhat.com> - 0.1.8-3
- Rebuilt for Ruby 1.9.3.

* Tue Jan 10 2012 Nils Philippsen <nils@redhat.com> - 0.1.8-2
- rebuild for gcc 4.7

* Tue Dec 13 2011 Nils Philippsen <nils@redhat.com> - 0.1.8-1
- version 0.1.8
- drop all patches
- add BRs: gdk-pixbuf2-devel, lensfun-devel
- update BR version: glib2-devel
- use %%_hardened_build macro instead of supplying our own hardening flags

* Thu Nov 17 2011 Nils Philippsen <nils@redhat.com> - 0.1.6-5
- don't require gtk-doc (#707554)

* Mon Nov 07 2011 Nils Philippsen <nils@redhat.com> - 0.1.6-4
- rebuild (libpng)

* Fri Oct 14 2011 Rex Dieter <rdieter@fedoraproject.org> - 0.1.6-3
- rebuild (exiv2)

* Wed Apr 06 2011 Nils Philippsen <nils@redhat.com> - 0.1.6-2
- fix crash when using hstack operation (#661533)

* Tue Feb 22 2011 Nils Philippsen <nils@redhat.com> - 0.1.6-1
- version 0.1.6
- remove obsolete patches
- fix erroneous use of destdir
- correct source URL
- add BR: exiv2-devel, jasper-devel, suitesparse-devel
- update BR versions
- update --with-*/--without-* configure flags
- replace tabs with spaces for consistency

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Tue Oct 19 2010 Nils Philippsen <nils@redhat.com> - 0.1.2-4
- don't leak "root" symbol which clashes with (equally broken) xvnkb input
  method (#642992)

* Wed Jun 23 2010 Nils Philippsen <nils@redhat.com> - 0.1.2-3
- build with -fno-strict-aliasing
- use PIC/PIE because gegl is likely to deal with data coming from untrusted
  sources

* Fri Feb 26 2010 Nils Philippsen <nils@redhat.com>
- use tabs consistently
- let devel depend on gtk-doc

* Fri Feb 19 2010 Nils Philippsen <nils@redhat.com> - 0.1.2-2
- ignore make check failures for now

* Wed Feb 17 2010 Nils Philippsen <nils@redhat.com>
- avoid buffer overflow in gegl_buffer_header_init()
- correct gegl library version, use macro for it

* Tue Feb 16 2010 Nils Philippsen <nils@redhat.com> - 0.1.2-1
- version 0.1.2
- remove obsolete cflags, babl-instrumentation, autoreconf patches
- backported: don't leak each node set on a GeglProcessor

* Sat Jan 23 2010 Deji Akingunola <dakingun@gmail.com> - 0.1.0-3
- Rebuild for babl-0.1.2
- Backport upstream patch that removed babl processing time instrumentation

* Wed Jan 20 2010 Nils Philippsen <nils@redhat.com>
- use tabs consistently to appease rpmdiff

* Tue Aug 18 2009 Nils Philippsen <nils@redhat.com>
- explain patches

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Thu Jul 02 2009 Nils Philippsen - 0.1.0-1
- fix cflags for building

* Thu Jul 02 2009 Nils Philippsen
- version 0.1.0
- use "--disable-gtk-doc" to avoid rebuilding documentation (#481404)
- remove *.la files in %%{_libdir}/gegl-*/ (#509292)

* Thu Jun 04 2009 Deji Akingunola <dakingun@gmail.com> - 0.0.22-5
- Apply patch to build with babl-0.1.0 API changes

* Thu Jun 04 2009 Nils Philippsen - 0.0.22-4
- rebuild against babl-0.1.0

* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.22-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Thu Jan 29 2009 Nils Philippsen - 0.0.22-2
- use the same timestamps for certain documentation files on all architectures
  to avoid multi-lib conflicts (#481404)
- consolidate spec files between OS releases
- reenable building documentation on ppc64
- explicitly list more build requirements and/or versions to catch eventual
  problems during future builds

* Tue Jan 13 2009 Deji Akingunola <dakingun@gmail.com> - 0.0.22-1
- Update to version 0.0.22

* Tue Oct 07 2008 Deji Akingunola <dakingun@gmail.com> - 0.0.20-1
- Update to latest release

* Thu Jul 10 2008 Deji Akingunola <dakingun@gmail.com> - 0.0.18-1
- Update to latest release

* Thu Feb 28 2008 Deji Akingunola <dakingun@gmail.com> - 0.0.16-1
- New release

* Thu Jan 17 2008 Deji Akingunola <dakingun@gmail.com> - 0.0.15-1.svn20080117
- Update to a svn snapshot for gnome-scan
- Apply patch to fix extensions loading on 64bit systems
- Building the docs on ppc64 segfaults, avoid it for now.

* Sat Dec 08 2007 Deji Akingunola <dakingun@gmail.com> - 0.0.14-1
- Update to 0.0.14 release
- License change from GPLv2+ to GPLv3+

* Thu Oct 25 2007 Deji Akingunola <dakingun@gmail.com> - 0.0.13-0.7.20071011svn
- Include missing requires for the devel subpackage

* Thu Oct 25 2007 Deji Akingunola <dakingun@gmail.com> - 0.0.13-0.6.20071011svn
- BR graphiz instead of graphiz-devel
- Remove the spurious exec flag from a couple of source codes

* Tue Oct 23 2007 Deji Akingunola <dakingun@gmail.com> - 0.0.13-0.5.20071011svn
- Fix missing directory ownership

* Mon Oct 22 2007 Deji Akingunola <dakingun@gmail.com> - 0.0.13-0.4.20071011svn
- Update the License field 

* Fri Oct 12 2007 Deji Akingunola <dakingun@gmail.com> - 0.0.13-0.3.20071011svn
- Package the extension libraries in the main package
- Run 'make check'

* Fri Oct 12 2007 Deji Akingunola <dakingun@gmail.com> - 0.0.13-0.2.20071011svn
- Remove the use of inexistent source

* Thu Oct 11 2007 Deji Akingunola <dakingun@gmail.com> - 0.0.13-0.1.20071011svn
- Initial packaging for Fedora