--- /dev/null
+--- gtk+-3.2.3/modules/printbackends/papi/gtkprintbackendpapi.c.orig 2011-08-16 04:04:35.000000000 +0200
++++ gtk+-3.2.3/modules/printbackends/papi/gtkprintbackendpapi.c 2011-12-23 18:55:39.354135443 +0100
+@@ -352,7 +352,7 @@
+ const gchar *title;
+ char *prtnm = NULL;
+ GtkPrintDuplex val;
+- papi_status_t pstatus = NULL;
++ papi_status_t pstatus = PAPI_OK;
+ papi_attribute_t **attrs = NULL;
+ papi_job_ticket_t *ticket = NULL;
+
+@@ -378,9 +378,9 @@
+ else if (val == GTK_PRINT_DUPLEX_VERTICAL)
+ papiAttributeListAddString (&attrs, PAPI_ATTR_EXCL, "Duplex", "DuplexTumble");
+
+- if (job->num_copies > 1)
++ if (gtk_print_job_get_num_copies(job) > 1)
+ {
+- papiAttributeListAddInteger (&attrs, PAPI_ATTR_EXCL, "copies", job->num_copies);
++ papiAttributeListAddInteger (&attrs, PAPI_ATTR_EXCL, "copies", gtk_print_job_get_num_copies(job));
+ }
+
+ prtnm = strdup (gtk_printer_get_name (GTK_PRINTER(printer)));
+@@ -723,37 +723,40 @@
+ GtkPageSet page_set;
+ double scale;
+ GtkPaperSize *papersize = NULL;
++ GtkPrintPages print_pages = gtk_print_settings_get_print_pages (settings);
+ char *ppd_paper_name;
+
+- print_job->print_pages = gtk_print_settings_get_print_pages (settings);
+- print_job->page_ranges = NULL;
+- print_job->num_page_ranges = 0;
++ gtk_print_job_set_pages(print_job, print_pages);
++ gtk_print_job_set_page_ranges(print_job, NULL, 0);
+
+- if (print_job->print_pages == GTK_PRINT_PAGES_RANGES)
+- print_job->page_ranges =
++ if (print_pages == GTK_PRINT_PAGES_RANGES) {
++ gint num_page_ranges;
++ GtkPageRange *page_ranges =
+ gtk_print_settings_get_page_ranges (settings,
+- &print_job->num_page_ranges);
++ &num_page_ranges);
++ gtk_print_job_set_page_ranges(print_job, page_ranges, num_page_ranges);
++ }
+
+- print_job->collate = gtk_print_settings_get_collate (settings);
+- print_job->reverse = gtk_print_settings_get_reverse (settings);
+- print_job->num_copies = gtk_print_settings_get_n_copies (settings);
++ gtk_print_job_set_collate(print_job, gtk_print_settings_get_collate (settings));
++ gtk_print_job_set_reverse(print_job, gtk_print_settings_get_reverse (settings));
++ gtk_print_job_set_num_copies(print_job, gtk_print_settings_get_n_copies (settings));
+
+ scale = gtk_print_settings_get_scale (settings);
+ if (scale != 100.0)
+- print_job->scale = scale/100.0;
++ gtk_print_job_set_scale(print_job, scale/100.0);
+
+ papersize = gtk_page_setup_get_paper_size (page_setup);
+ ppd_paper_name = gtk_paper_size_get_ppd_name (papersize);
+
+ page_set = gtk_print_settings_get_page_set (settings);
+ if (page_set == GTK_PAGE_SET_EVEN)
+- print_job->page_set = GTK_PAGE_SET_EVEN;
++ gtk_print_job_set_page_set(print_job, GTK_PAGE_SET_EVEN);
+ else if (page_set == GTK_PAGE_SET_ODD)
+- print_job->page_set = GTK_PAGE_SET_ODD;
++ gtk_print_job_set_page_set(print_job, GTK_PAGE_SET_ODD);
+ else
+- print_job->page_set = GTK_PAGE_SET_ALL;
++ gtk_print_job_set_page_set(print_job, GTK_PAGE_SET_ALL);
+
+- print_job->rotate_to_orientation = TRUE;
++ gtk_print_job_set_rotate(print_job, TRUE);
+
+ }
+
+--- gtk+-3.2.3/modules/printbackends/papi/Makefile.am.orig 2011-11-07 19:47:37.000000000 +0100
++++ gtk+-3.2.3/modules/printbackends/papi/Makefile.am 2011-12-23 19:55:00.277588009 +0100
+@@ -16,7 +16,7 @@
+ $(top_builddir)/gtk/libgtk-3.la \
+ $(GTK_DEP_LIBS)
+
+-backenddir = $(libdir)/gtk-2.0/$(GTK_BINARY_VERSION)/printbackends
++backenddir = $(libdir)/gtk-3.0/$(GTK_BINARY_VERSION)/printbackends
+
+ backend_LTLIBRARIES = libprintbackend-papi.la
+
-# TODO: papi print backend?
#
# Conditional build:
%bcond_without apidocs # disable gtk-doc
%bcond_without cups # disable CUPS support
+%bcond_without papi # disable PAPI support
%bcond_without static_libs # don't build static library
#
Summary: The GIMP Toolkit
Group: X11/Libraries
Source0: http://ftp.gnome.org/pub/GNOME/sources/gtk+/3.2/gtk+-%{version}.tar.xz
# Source0-md5: b4edcc69e39159dd7be17828249afb46
+Patch0: %{name}-papi.patch
URL: http://www.gtk.org/
BuildRequires: atk-devel >= 1:2.1.5
BuildRequires: autoconf >= 2.62
BuildRequires: automake >= 1:1.11
BuildRequires: cairo-gobject-devel >= 1.10.0
BuildRequires: colord-devel >= 0.1.9
-%{?with_cups:BuildRequires: cups-devel}
+%if %{with cups} || %{with papi}
+BuildRequires: cups-devel
+%endif
BuildRequires: docbook-dtd412-xml
BuildRequires: docbook-style-xsl
BuildRequires: gdk-pixbuf2-devel >= 2.23.5
BuildRequires: libxml2-progs >= 1:2.6.31
BuildRequires: libxslt-progs >= 1.1.20
BuildRequires: pango-devel >= 1:1.29.0
+%{?with_papi:BuildRequires: papi-devel}
BuildRequires: perl-base
BuildRequires: pkgconfig
BuildRequires: rpm-pythonprov
%description cups -l pl.UTF-8
Moduł GTK+ do drukowania przez CUPS.
+%package papi
+Summary: PAPI printing module for GTK+
+Summary(pl.UTF-8): Moduł GTK+ do drukowania przez PAPI
+Group: X11/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: papi
+
+%description papi
+PAPI printing module for GTK+.
+
+%description papi -l pl.UTF-8
+Moduł GTK+ do drukowania przez PAPI.
+
%prep
%setup -q -n gtk+-%{version}
+%patch0 -p1
# for packaging clean examples
# TODO: add am patch to do it like demos/gtk-demo via some configurable dir
cp -a demos examples _examples
%build
+CPPFLAGS="%{rpmcppflags}%{?with_papi: -I/usr/include/papi}"
%{?with_apidocs:%{__gtkdocize}}
%{__libtoolize}
%{__aclocal} -I m4
%configure \
--disable-silent-rules \
%{__disable cups} \
+ %{!?with_papi:--disable-papi} \
%{?debug:--enable-debug=yes} \
%{__enable_disable apidocs gtk-doc} \
--enable-man \
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-cups.so
%endif
+
+%if %{with papi}
+%files papi
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-papi.so
+%endif