%bcond_with check

Summary:	Cairo - multi-platform 2D graphics library.
Summary(ja):	Cairo - マルチプラットフォーム 2D グラフィックスライブラリ
Name:		cairo
Version:	1.17.6
Release:	1%{?_dist_release}
Group:		system
Vendor:		Project Vine
Distribution:	Vine Linux

License:	LGPL/MPL
URL:		https://cairographics.org/
%define		shortver %(echo %{version} | cut -d. -f1-2)
Source0:	https://download.gnome.org/sources/%{name}/%{shortver}/%{name}-%{version}.tar.xz
# https://gitlab.freedesktop.org/cairo/cairo/merge_requests/1
Patch1:		0001-Set-default-LCD-filter-to-FreeType-s-default.patch
# https://gitlab.freedesktop.org/cairo/cairo/-/issues/547
Patch2:		cairo-1.17.6-meson-fixes.patch

# security fixes
# none

BuildRoot:	%{_tmppath}/%{name}-%{version}-root

BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: expat-devel
BuildRequires: pixman-devel
BuildRequires: freetype2-devel
BuildRequires: fontconfig-devel
BuildRequires: glib2-devel
BuildRequires: libpng-devel
BuildRequires: librsvg2-devel
BuildRequires: libX11-devel
BuildRequires: libXrender-devel
BuildRequires: gtk-doc
BuildRequires: mesa-libGL-devel
BuildRequires: mesa-libEGL-devel

BuildConflicts: XOrg-compat70-devel

%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}

%description
Cairo provides anti-aliased vector-based rendering for X. Paths
consist of line segments and cubic splines and can be rendered at any
width with various join and cap styles. All colors may be specified
with optional translucence (opacity/alpha) and combined using the
extended Porter/Duff compositing algebra as found in the X Render
Extension.

Cairo exports a stateful rendering API similar in spirit to the path
construction, text, and painting operators of PostScript, (with the
significant addition of translucence in the imaging model). When
complete, the API is intended to support the complete imaging model of
PDF 1.4.

Cairo relies on the Xc library for backend rendering. Xc provides an
abstract interface for rendering to multiple target types. As of this
writing, Xc allows Cairo to target X drawables as well as generic
image buffers. Future backends such as PostScript, PDF, and perhaps
OpenGL are currently being planned.

%package -n compat32-%{name}
Summary:	Cairo - multi-platform 2D graphics library.
Summary(ja):	Cairo - マルチプラットフォーム 2D グラフィックスライブラリ
Group:		system,legacy
Requires:	%{name} = %{version}

%description -n compat32-%{name}
Cairo provides anti-aliased vector-based rendering for X. Paths
consist of line segments and cubic splines and can be rendered at any
width with various join and cap styles. All colors may be specified
with optional translucence (opacity/alpha) and combined using the
extended Porter/Duff compositing algebra as found in the X Render
Extension.

Cairo exports a stateful rendering API similar in spirit to the path
construction, text, and painting operators of PostScript, (with the
significant addition of translucence in the imaging model). When
complete, the API is intended to support the complete imaging model of
PDF 1.4.

Cairo relies on the Xc library for backend rendering. Xc provides an
abstract interface for rendering to multiple target types. As of this
writing, Xc allows Cairo to target X drawables as well as generic
image buffers. Future backends such as PostScript, PDF, and perhaps
OpenGL are currently being planned.


%package devel
Summary:	Development files for Cairo library.
Summary(ja):	Cairo ライブラリの開発用ファイル
Group:		programming
Provides:	lib%{name}-devel = %{version}-%{release}
Requires:	%{name} = %{version}
Requires:	libpng-devel
Requires:	freetype2-devel
Requires:	fontconfig-devel
Requires:	libX11-devel
Requires:	libXrender-devel
Requires:	pixman-devel
Requires:	glib2-devel
Requires:	mesa-libEGL-devel

%description devel
Development files for Cairo library.


%package tools
Summary: Development tools for cairo
Group: programming

%description tools
Cairo is a 2D graphics library designed to provide high-quality display
and print output.

This package contains tools for working with the cairo graphics library.
 * cairo-trace: Record cairo library calls for later playback


%debug_package


%prep
%autosetup -p1


%build
	
%meson \
  -Dfreetype=enabled \
  -Dfontconfig=enabled \
  -Dglib=enabled \
  -Dgtk_doc=true \
  -Dspectre=disabled \
  -Dsymbol-lookup=disabled \
  -Dtee=enabled \
  -Dtests=disabled \
  -Dxcb=enabled \
  -Dxlib=enabled \
  -Dxml=disabled

%meson_build


%install
%meson_install


%if %{with check}
%check
make check
%endif


%files 
%license COPYING COPYING-*
%doc AUTHORS BIBLIOGRAPHY BUGS NEWS README
%{_libdir}/lib*.so.*

%files devel
%doc ChangeLog PORTING_GUIDE
%{_libdir}/lib*.so
%{_includedir}/*
%{_libdir}/pkgconfig/*.pc
#{_libdir}/lib*.a
%{_datadir}/gtk-doc/html/cairo

%files tools
%{_bindir}/cairo-trace
%{_bindir}/cairo-sphinx
%{_libdir}/cairo

%if %{build_compat32}
%files -n compat32-%{name}
%{_libdir}/lib*.so.*
%endif


%changelog
* Thu Aug 11 2022 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.17.6-1
- dropped Patch1,5,6 and 1000.
- renumberd Patch4 to 1.

* Fri Mar 26 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.16.0-1
- imported Patch1000 from upstream to fix CVE-2020-35492.
- dropped ldconfig scriptlets.

* Fri Oct 18 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.16.0-1
- new upstream release.
- imported Patch4-6 from rawhide.

* Sat Jan 06 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.14.12-1
- new upstream release.

* Sun Dec 20 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.14.6-1
- new upstream release 

* Thu Nov 12 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.14.4-2
- fix spec file

* Thu Oct 29 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.14.4-1
- new upstream release 

* Sun May 10 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.14.2-2
- remove *.la files

* Sat Mar 28 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.14.2-1
- new upstream release 

* Sun Nov 16 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.12.18-1
- new upstream release 

* Sun Jul 13 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.12.16-2
- rebuild with libpng-1.6.12

* Thu Dec 26 2013 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.12.16-1
- new upstream release 

* Sat May 25 2013 Daisuke SUZUKI <daisuke@linux.or.jp> 1.12.14-2
- remove hardcoded libdir and runpath from libtool

* Sun Feb 17 2013 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.12.14-1
- new upstream release 

* Wed Jan 02 2013 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.12.8-1
- new upstream release 

* Fri Nov 02 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.12.6-1
- new upstream release 

* Sat Oct 13 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.12.4-1
- new upstream release 

* Sun Jul 22 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.12.2-2
- add Requires: mesa-libEGL-devel

* Sat Jul 21 2012 Daisuke SUZUKI <daisuke@linux.or.jp> 1.12.2-1
- new upstream release 
- Enable OpenGL backend
- add BR: librsvg2-devel, mesa-libGL-devel, mesa-libEGL-devel

* Sat Mar 31 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.12.0-1
- new upstream release

* Mon Mar 28 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 1.10.2-2
- enable tee support
- add configure options specifically
- disable static library

* Wed Jan 05 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.10.2-1
- new upstream release
- add BuildRequires: glib2-devel
- add Requires: glib2-devel (devel package)

* Wed Oct 13 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 1.10.0-2
- add patch1 from ubuntu to fix performance regressions
  - don't use serverside gradients, most drivers don't handle those and are
    really slow, should workaround performances issues for ati, nouveau and nvidia
    https://launchpad.net/ubuntu/maverick/+source/cairo/1.10.0-1ubuntu1

* Sat Oct 02 2010 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.10.0-1
- new upstream release
- add tools sub package

* Tue Sep 21 2010 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.8.10-3
- add BuildRequires: fontconfig-devel
- add Requires: fontconfig-devel (devel package)

* Tue Sep 21 2010 IWAI, Masaharu <iwai@alib.jp> 1.8.10-2
- build with rpm-4.8.1-1 for pkg-config file

* Tue Mar  2 2010 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 1.8.10-1
- new upstream release

* Tue Jun 30 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 1.8.8-1
- new upstream release

* Sat May 02 2009 Munehiro Yamamoto <munepi@cg8.so-net.ne.jp> 1.8.6-2
- applied cairo-1.8.6-status-return-fix.patch from Gentoo Linux
- added BuildRequires: gtk-doc

* Sat Jan 10 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 1.8.6-1
- new upstream release

* Tue Nov 25 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.8.4-1
- new upstream release

* Fri Sep 26 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.8.0-1
- new upstream release

* Tue Sep 23 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.7.6-1
- new upstream release

* Sat Sep 20 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.7.4-1
- new upstream release

* Wed May 28 2008 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 1.6.4-3
- add  Requires: pixman-devel to -devel

* Sun May 25 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.6.4-2
- rebuilt with xorg-x11 7.3
- spec in UTF-8

* Thu May  1 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.6.4-1
- new upstream release
- removed lib*.la from devel package

* Thu Mar 20 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.4.14-1vl5
- used %%{?_dist_release}

* Thu Feb  7 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.4.14-0vl1
- new upstream release

* Sun Dec  9 2007 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.4.12-0vl1
- new upstream release

* Tue Jul 17 2007 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.4.10-0vl1
- new upstream release

* Sun May 20 2007 Daisuke SUZUKI <daisuke@linux.or.jp> 1.4.6-0vl1
- new upstream release
- remove BuildRequires: pango-devel, gtk2-devel
  (these are only needed for testing)

* Sat Mar 31 2007 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.4.2-0vl1
- upstream release
- Patch30 and Patch40 is skipped (not working correctly)
  but held in src.rpm
- add BUGS, ROADMAP to %%doc
- add BuildRequires: pango-devel, gtk2-devel

* Tue Oct 24 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.4-0vl2
- rebuild without XOrg-compat70-devel
- add BuildConflicts: XOrg-compat70-devel

* Sun Oct 22 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.4-0vl1
- new upstream release
- remove unneeded Patch20 which breaks 8bpp rendering (<BTS:297>)

* Tue Sep 19 2006 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 1.2.2-0vl3
- added Patch40 for 15bpp problem

* Tue Sep  5 2006 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 1.2.2-0vl2
- added ad-hoc Patch30 for 16bpp problem

* Thu Aug 10 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.2-0vl1
- new upstream release

* Sat Aug 05 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.0-0vl1
- new upstream release

* Sun May 28 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.4-0vl1
- new upstream release

* Sat May 20 2006 NAKAMURA Kenta <kenta@vinelinux.org> 1.0.2-0vl4
- added compat32- package for x86_64 architecture support

* Sun Mar 05 2006 Shu KONNO <owa@bg.wakwak.com> 1.0.2-0vl3
- added x86_64 architecture support

* Sat Dec 24 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.2-0vl2
- add Patch20 to fix broken desktop rendering on xorg-x11-6.9
  - add X.Org 6.9.0 (6090000) to blacklist

* Wed Oct 05 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.2-0vl1
- new upstream release

* Tue Oct 04 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.0-0vl5
- update Patch10

* Sun Oct 02 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.0-0vl4
- add Patch10 to use embedded bitmap font if available.
  (controllable by "embeddedbitmap" in fontconfig)

* Thu Sep 29 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.0-0vl3
- rebuild with new fontconfig

* Sun Sep 25 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.0-0vl2
- add Requires: libpng-devel, XOrg-devel, freetype2-devel
  to devel package instead of BuildRequires (typo)
- add Japanese summaries

* Sun Aug 28 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.0-0vl1
- new upstream release
- remove libpixman dependency (which is now included in cairo)
- obsoletes libpixman <= 0.1.6
- add more BuildRequires

* Sat Aug 20 2005 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 0.9.2-0vl1
- new upstream version

* Sun Jul 10 2005 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 0.5.1-0vl1
- new upstream version
- fixed License (http://cairographics.org/introduction)

* Sun Mar 20 2005 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 0.4.0-0vl1
- new upstream version
- include gtk-doc files 

* Sun Jan 23 2005 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 0.3.0-0vl1
- new upstream version
- add Requires: libpixman

* Mon Nov 01 2004 Satoshi MACHINO <machino@vinelinux.org> 0.2.0-0vl1
- new upstream version (cairo-0.2.0)

* Mon Oct 11 2004 Satoshi MACHINO <machino@vinelinux.org> 0.1.23-1vl1
- rebuilt for VineLinux

* Tue Jun 01 2004 Marcel Pol <mpol@mandrake.org> 0.1.23-1mdk
- 0.1.23
- reenable libtoolize

* Wed May  5 2004 G魚Waschk <waschk@linux-mandrake.com> 0.1.22-1mdk
- fix devel provides
- drop redundant buildrequires
- requires new pixman
- autoconf 2.5 macro
- New release 0.1.22

* Fri Feb 06 2004 Marcel Pol <mpol@mandrake.org> 0.1.17-2mdk
- build with X11

* Sun Feb 01 2004 Marcel Pol <mpol@mandrake.org> 0.1.17-1mdk
- 0.1.17
- provides cairo
- drop patch, use --disable-xlib
- buildrequires
- don't run libtoolize

* Sun Dec 14 2003 Marcel Pol <mpol@mandrake.org> 0.1.13-1mdk
- initial mandrake package

