--- /dev/null
+Index: cairo-1.10.0/util/cairo-fdr/Makefile.am
+===================================================================
+--- cairo-1.10.0.orig/util/cairo-fdr/Makefile.am
++++ cairo-1.10.0/util/cairo-fdr/Makefile.am
+@@ -9,5 +9,5 @@ AM_CPPFLAGS = -I$(top_srcdir)/src \
+ cairo_fdr_la_SOURCES = fdr.c
+ cairo_fdr_la_CPPFLAGS = $(AM_CPPFLAGS)
+ cairo_fdr_la_CFLAGS = $(CAIRO_CFLAGS)
+-cairo_fdr_la_LDFLAGS = -module -no-undefined
++cairo_fdr_la_LDFLAGS = -module -no-undefined -avoid-version
+ cairo_fdr_la_LIBADD = -ldl
+Index: cairo-1.10.0/util/cairo-trace/Makefile.am
+===================================================================
+--- cairo-1.10.0.orig/util/cairo-trace/Makefile.am
++++ cairo-1.10.0/util/cairo-trace/Makefile.am
+@@ -11,7 +11,7 @@ libcairo_trace_la_SOURCES = trace.c
+ libcairo_trace_la_CPPFLAGS = -DCAIRO_TRACE_OUTDIR="\"$(cairooutdir)\"" \
+ $(AM_CPPFLAGS)
+ libcairo_trace_la_CFLAGS = $(CAIRO_CFLAGS) $(real_pthread_CFLAGS)
+-libcairo_trace_la_LDFLAGS = -no-undefined
++libcairo_trace_la_LDFLAGS = -no-undefined -module -avoid-version
+
+ libcairo_trace_la_LIBADD = $(real_pthread_LIBS) -lz
+ if CAIRO_HAS_DL
+Index: cairo-1.10.0/util/cairo-sphinx/Makefile.am
+===================================================================
+--- cairo-1.10.0.orig/util/cairo-sphinx/Makefile.am
++++ cairo-1.10.0/util/cairo-sphinx/Makefile.am
+@@ -11,7 +11,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/src \
+ cairo_sphinx_la_SOURCES = fdr.c
+ cairo_sphinx_la_CPPFLAGS = $(AM_CPPFLAGS)
+ cairo_sphinx_la_CFLAGS = $(CAIRO_CFLAGS)
+-cairo_sphinx_la_LDFLAGS = -module -no-undefined
++cairo_sphinx_la_LDFLAGS = -module -no-undefined -avoid-version
+ cairo_sphinx_la_LIBADD = -ldl
+
+ cairo_sphinx_SOURCES = sphinx.c
--- /dev/null
+%define build_xcb_backend 0
+%define build_gl_backend 1
+
+Name: cairo
+Version: 1.12.4
+Release: 0
+License: LGPL-2.1+ or MPL-1.1
+Summary: Vector Graphics Library with Cross-Device Output Support
+Url: http://cairographics.org/
+Group: System/Libraries
+Source: http://cairographics.org/releases/%{name}-%{version}.tar.xz
+Source99: baselibs.conf
+# PATCH-FIX-UPSTREAM cairo-modules-no-version.patch fdo#29319 dimstar@opensuse.org -- Build modules with -module -avoid-version.
+Patch0: cairo-modules-no-version.patch
+BuildRequires: gtk-doc
+# Needed by patch0
+BuildRequires: libtool
+BuildRequires: pkg-config
+BuildRequires: xz
+BuildRequires: pkgconfig(fontconfig)
+BuildRequires: pkgconfig(freetype2)
+BuildRequires: pkgconfig(gobject-2.0)
+BuildRequires: pkgconfig(libpng)
+BuildRequires: pkgconfig(pixman-1)
+BuildRequires: pkgconfig(x11)
+%if %build_xcb_backend
+BuildRequires: pkgconfig(xcb)
+BuildRequires: pkgconfig(xcb-shm)
+%endif
+%if %build_gl_backend
+BuildRequires: mesa-devel
+#BuildRequires: pkgconfig(wayland-egl)
+%endif
+BuildRequires: pkgconfig(xrender)
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+
+%description
+Cairo is a vector graphics library with cross-device output support.
+Currently supported output targets include the X Window System,
+in-memory image buffers, and PostScript. Cairo is designed to produce
+identical output on all output media while taking advantage of display
+hardware acceleration when available.
+
+%package -n libcairo
+License: LGPL-2.1+ or MPL-1.1
+Summary: Vector Graphics Library with Cross-Device Output Support
+Group: System/Libraries
+Provides: cairo = %{version}
+Obsoletes: cairo < %{version}
+
+%description -n libcairo
+Cairo is a vector graphics library with cross-device output support.
+Currently supported output targets include the X Window System,
+in-memory image buffers, and PostScript. Cairo is designed to produce
+identical output on all output media while taking advantage of display
+hardware acceleration when available.
+
+%package -n libcairo-gobject
+License: LGPL-2.1+ or MPL-1.1
+Summary: Vector Graphics Library with Cross-Device Output Support
+Group: System/Libraries
+
+%description -n libcairo-gobject
+Cairo is a vector graphics library with cross-device output support.
+Currently supported output targets include the X Window System,
+in-memory image buffers, and PostScript. Cairo is designed to produce
+identical output on all output media while taking advantage of display
+hardware acceleration when available.
+
+This library contains GType declarations for Cairo types. It is also
+meant to support gobject-introspection binding creation.
+
+%package -n libcairo-script-interpreter
+License: LGPL-2.1+ or MPL-1.1
+Summary: Vector Graphics Library with Cross-Device Output Support
+Group: System/Libraries
+
+%description -n libcairo-script-interpreter
+Cairo is a vector graphics library with cross-device output support.
+Currently supported output targets include the X Window System,
+in-memory image buffers, and PostScript. Cairo is designed to produce
+identical output on all output media while taking advantage of display
+hardware acceleration when available.
+
+%package tools
+License: GPL-3.0+
+Summary: Vector Graphics Library with Cross-Device Output Support -- Utilities
+Group: Development/Libraries/X11
+# We need an explicit requires since nothing links to the cairo library
+Requires: libcairo = %{version}
+
+%description tools
+Cairo is a vector graphics library with cross-device output support.
+Currently supported output targets include the X Window System,
+in-memory image buffers, and PostScript. Cairo is designed to produce
+identical output on all output media while taking advantage of display
+hardware acceleration when available.
+
+This package contains various cairo utilities.
+
+%package devel
+License: LGPL-2.1+ or MPL-1.1
+Summary: Development environment for cairo
+Group: Development/Libraries/X11
+Requires: libcairo = %{version}
+Requires: libcairo-gobject = %{version}
+Requires: libcairo-script-interpreter = %{version}
+
+%description devel
+This package contains all files necessary to build binaries using
+cairo.
+
+%prep
+%setup -q
+%patch0 -p1
+
+%build
+# Needed by patch0
+NOCONFIGURE=1 ./autogen.sh
+%configure \
+ --with-pic \
+ --enable-fc \
+ --enable-ft \
+%if %build_gl_backend
+ --enable-gl --enable-egl \
+%endif
+ --enable-ps \
+ --enable-pdf \
+ --enable-script \
+ --enable-svg \
+ --enable-tee \
+%if %build_xcb_backend
+ --enable-xcb \
+%endif
+ --enable-xlib \
+ --disable-gtk-doc \
+ --disable-static
+make %{?_smp_mflags} V=1
+
+%install
+%make_install
+
+%post -n libcairo -p /sbin/ldconfig
+
+%postun -n libcairo -p /sbin/ldconfig
+
+%post -n libcairo-gobject -p /sbin/ldconfig
+
+%postun -n libcairo-gobject -p /sbin/ldconfig
+
+%post -n libcairo-script-interpreter -p /sbin/ldconfig
+
+%postun -n libcairo-script-interpreter -p /sbin/ldconfig
+
+%files -n libcairo
+%defattr(-, root, root)
+%doc COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
+%{_libdir}/libcairo.so.*
+
+%files -n libcairo-gobject
+%defattr(-, root, root)
+%{_libdir}/libcairo-gobject.so.2*
+
+%files -n libcairo-script-interpreter
+%defattr(-, root, root)
+%doc util/cairo-script/COPYING
+%{_libdir}/libcairo-script-interpreter.so.*
+
+%files tools
+%defattr(-, root, root)
+%doc util/cairo-trace/COPYING util/cairo-trace/COPYING-GPL-3
+%{_bindir}/cairo-sphinx
+%{_bindir}/cairo-trace
+%dir %{_libdir}/cairo
+%{_libdir}/cairo/cairo-fdr.so
+%{_libdir}/cairo/cairo-sphinx.so
+%{_libdir}/cairo/libcairo-trace.so
+
+%files devel
+%defattr(-, root, root)
+%doc PORTING_GUIDE
+%doc %{_datadir}/gtk-doc/html/cairo
+%{_includedir}/cairo/
+%{_libdir}/*.so
+%{_libdir}/pkgconfig/*.pc
+
+%changelog