summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Rostovtsev <tetromino@gentoo.org>2012-08-07 10:18:15 +0000
committerAlexandre Rostovtsev <tetromino@gentoo.org>2012-08-07 10:18:15 +0000
commit764dd4ae5a0120ba7b231d69318f42e17618b81d (patch)
treeaaa68edc16462b021811661433570a3c6f3b8ee0 /gnome-base
parentVersion bump. (diff)
downloadhistorical-764dd4ae5a0120ba7b231d69318f42e17618b81d.tar.gz
historical-764dd4ae5a0120ba7b231d69318f42e17618b81d.tar.bz2
historical-764dd4ae5a0120ba7b231d69318f42e17618b81d.zip
Fix build failure with cups-1.6.x; drop old.
Package-Manager: portage-2.2.0_alpha120/cvs/Linux x86_64
Diffstat (limited to 'gnome-base')
-rw-r--r--gnome-base/gnome-control-center/ChangeLog9
-rw-r--r--gnome-base/gnome-control-center/Manifest23
-rw-r--r--gnome-base/gnome-control-center/files/gnome-control-center-3.2.3-cups-1.6.patch376
-rw-r--r--gnome-base/gnome-control-center/files/gnome-control-center-3.4.2-cups-1.6.patch374
-rw-r--r--gnome-base/gnome-control-center/gnome-control-center-3.2.2.ebuild114
-rw-r--r--gnome-base/gnome-control-center/gnome-control-center-3.2.3.ebuild6
-rw-r--r--gnome-base/gnome-control-center/gnome-control-center-3.4.2-r1.ebuild4
7 files changed, 778 insertions, 128 deletions
diff --git a/gnome-base/gnome-control-center/ChangeLog b/gnome-base/gnome-control-center/ChangeLog
index 28f09154688a..9248654a7e42 100644
--- a/gnome-base/gnome-control-center/ChangeLog
+++ b/gnome-base/gnome-control-center/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for gnome-base/gnome-control-center
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-control-center/ChangeLog,v 1.106 2012/07/19 02:46:04 tetromino Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-control-center/ChangeLog,v 1.107 2012/08/07 10:18:15 tetromino Exp $
+
+ 07 Aug 2012; Alexandre Rostovtsev <tetromino@gentoo.org>
+ -gnome-control-center-3.2.2.ebuild, gnome-control-center-3.2.3.ebuild,
+ +files/gnome-control-center-3.2.3-cups-1.6.patch,
+ gnome-control-center-3.4.2-r1.ebuild,
+ +files/gnome-control-center-3.4.2-cups-1.6.patch:
+ Fix build failure with cups-1.6.x; drop old.
*gnome-control-center-3.4.2-r1 (19 Jul 2012)
diff --git a/gnome-base/gnome-control-center/Manifest b/gnome-base/gnome-control-center/Manifest
index 6ae4b98ab491..890a491dbcb7 100644
--- a/gnome-base/gnome-control-center/Manifest
+++ b/gnome-base/gnome-control-center/Manifest
@@ -10,7 +10,9 @@ AUX gnome-control-center-3.2.1-optional-colord.patch 2005 SHA256 852ca74531d54e6
AUX gnome-control-center-3.2.2-metacity-gconf.patch 1051 SHA256 c3fa18ddebaec274e6095277cd1586041bba08b89cc03daaedada9103abea64d SHA512 33b18e0565f7b86ba489e14aa60832340618441c764f1c2c7fa3ee85b7abecdd6251ddf125c13b85e6c89ef5becc2725bd54873f7b29a95a14fda51d1ca29fe1 WHIRLPOOL b38e2f2e3545eec4ab50a7d9c35155c2205cc67973af559ffcc307cfc607c6c6a938a73dc2bcc2a67c465d3e395965bc953e1be6415d190200ca31267e714db7
AUX gnome-control-center-3.2.2-timezone-free.patch 983 SHA256 4c76fae0549ed5893cf594340576c7ca4230c470bd5402ed686b95fdd65b05af SHA512 8d9c3fa0343591c429dd55ca098d560fe7f8b24de11ead958b4f8fd216bad6cbaf547a531f6b73f8e23b4212ed06392bc78b56dda180977ba18d4efbfcfbac9b WHIRLPOOL 5a4cc630cab7d53a018e5bf36f27f5b4b547a7a94e26dc907cc898de8669d08383899688b95387d0427c4b3329cc485641f84f96157e95bb3ef72a1f81cc143e
AUX gnome-control-center-3.2.2-timezones-linguas.patch 1266 SHA256 f693ecb6a03c4dbdc220609e6d1976d4a6f3bc8740c0bf1cbd1784e8eabc67d7 SHA512 1222a9b1652a1192ca2b94f7ee67e13a18f1a98f645eba7ed72016143f95c274a0853bfc32f72abf079be0bac3e665782a43962c3d726f3271fbd9eedb27ea9d WHIRLPOOL 64a0d056451d4c51418d89fa5aed88f0a072536916c0cd616d6127ef688ceb60efd4beec16f03b187479e5fb461fc42905104f9b4be36cfa895f11b878c58898
+AUX gnome-control-center-3.2.3-cups-1.6.patch 18222 SHA256 f1577b2c3cd8e4ed6e562184c6f98c826a5709a3437006702c2378139c388955 SHA512 6be00fd2e27539dd83985a206d4c008836ff2ae0a833a795e6a63a072a6b33f79558f577e9302845ba296bb6a0f02e1e328fe1d0f86f5ee7b7e41538964a1505 WHIRLPOOL 65d3ed8ff1b2808fed53ff345db6943fb3a8187b34f83816436d093a793e1517fc1528275d20821116ada114ee1810f0fe76e30a18fa3bf77d6e4cb95f090086
AUX gnome-control-center-3.2.3-optional-colord-goa.patch 3205 SHA256 6de471d3b2468daeaf05265745ea090bd89c584c2218d8079299d1dd8d79e0af SHA512 10496912641e9a0f94e03ace6e1439fc62f656255b26be9aa47bb9d8e2b07b33a7e7e53cfca3fc0451bd1f10a645178268e45499396ac10dfebeb2f00b5fc16e WHIRLPOOL e3363ebc7c2d6a44f95d1836e1ecbb4147487e250bb66b717e3d3579545d447f044e4c06cea647c87d21b38ed4f32f43cb62c3692279f24e3cb902f9b3dd1a48
+AUX gnome-control-center-3.4.2-cups-1.6.patch 18010 SHA256 b5c318b2b96c6a31a73d447da3a51b05070949aadcf4f8bfb0e72a546a0070cc SHA512 11063e58ca6b528456420d25e4b3e52ec19aa96260491299800aaec6e3d693fff4c56a13bb9dbf78ed39a9a7c30ee128211da427cd6db787b4fe0714c68a35c3 WHIRLPOOL e658f11f5364855f2d7b697be85b83312654efac6c294787e23df5c2474143883467c146cd881385567f28d561fc1e5da63dda0738ce362fa3c5a2eeca0f585d
AUX gnome-control-center-3.4.2-gentoo-paths.patch 5677 SHA256 25ed849a4275356d276faf22469019cf255398f02d5faf3669cb05fdc70cd03e SHA512 037eb05937a716c27292967adbc57d987376b180016d3f08912f641070dc772afa7a516c0a47e75fd0c197a2f402c13b8bab16bfc5117bece6b5cc9ecdd53860 WHIRLPOOL 48ec525a6af077f0cc799b5423fb6e403bd74842bfd17874f58414899a439bdb8ac4e8bcd192487b43643bb064e00c7c6a7e2ca689ff0ecf59394b03992bdd22
AUX gnome-control-center-3.4.2-optional-bt-colord-goa-wacom.patch 7023 SHA256 933af56534f4b62c74d55a650f4af510f7d39f9ae0a846d53988bbc06ec703d5 SHA512 e89d5e214698197de4ba1a9e313fe7ae6a8e400c62a67422f9c2cf1f4634e73a408e580efa92590ca3cbadb90dfcd3c60bcb739063ba9d3d31f8b7dd3b6e9b2a WHIRLPOOL 80d025875246792ea871bc25adf0b13c23d7f3ba90408d0580f056fa6907929f5de6ae5c3446ca5b0e32dabcbc97e689785355f0fdc50fbd40bac69d64f8ac8c
AUX org.gnome.control-center.defaultbackground.policy 836 SHA256 4fb135d55626e03a2b02b6c325e0fa3ee773984af2258acb3e2f1b22373dce52 SHA512 2ffacecc13caa96f9e766e9dd87af53e039cecd76d2334c6bf75afd462722f837fb89e03007f4b26780ffe84cbd59c93aad6edd589154b603793c2d159cb5b85 WHIRLPOOL 243f5c683a5df573f00e62f61ad45f8039ed10f37313762b10df345aae350b4baca886c2d3ddb63a21af005f23043d321ac3448a137293073a8f20be558dc5df
@@ -20,20 +22,19 @@ DIST gnome-control-center-3.2.3.tar.xz 4238612 SHA256 f0460410ba5af5a1f784a0006d
DIST gnome-control-center-3.4.2.tar.xz 4267688 SHA256 efc72bf8af07b439f5f0e9135d1b2c5237e649e6a0f1ff3cf32bdd710421042a SHA512 78927f56f1e1af4043f0d96bae174513916e752aa3e987b545e78213f34527a25ba69ce61da43dcd21ed51aa9d1ee713cabed507853f20bb6c0b0bea82f272e6 WHIRLPOOL fa4eb7659963d416594b4f983d304f84d7a0673b0b990d2975f559d25eea6048a602369a18a88736be857df3f9c3a91af31a5b3346171bb8ec62d4f92f3327e7
EBUILD gnome-control-center-2.32.1-r1.ebuild 2686 SHA256 575724aa369631c48fef3810bc831abc687fe38e30df4f25e7af600fc998e270 SHA512 2b792066b1c09eb4433a87222732c9dc4e3df593699454da57e9d4f3939f0c593429c8b2b3e712d2508700fc03b8e8e1066efa65348bc2016dee0d21c4089a92 WHIRLPOOL 8b7f2d6b9a66581efb5b31b8573d67acbce8d450ca303eab36641ef429e8fa6e88aa299c525cd223155ad67299926c56a0dfd432b8414672284424642117d92a
EBUILD gnome-control-center-3.2.2-r1.ebuild 3571 SHA256 6d1abc936f24c89b964daa0333d97cfd4ad6f95330466bfd5a0d2eb354e1b4ae SHA512 cc800293cff08c77db95410be9679871a4d1e71f7f678f3798f783941778ecdf7d85ee553378013240d92bd8bb301c7fb5adb273dfbb302bb36f84a1b9b2ae82 WHIRLPOOL aaf17a66c9dfb08dd840726e260c9fdc07e600abac4d65d5e921a59b247d9d8c8a9f2bae3013e2472218583d182ce40d4b4029934c0a4325011529df9c65daed
-EBUILD gnome-control-center-3.2.2.ebuild 3304 SHA256 ae8b43325c9140cd707d69321c5995ed234029b0fc4412cd8d7f6a9ab4caa206 SHA512 36e12f16db0cff7955e0b61dba7c861b3c52ede761acb37f89b3b55429a02e9f04e2fcfd66fccf1559337cc9c1e2f82b9b61b6edca35a850b003cc709e054d2a WHIRLPOOL 8a92c35d8a2e9c728aa2440f34e61738e4f9320a86c07954e2cff541f585e678dd747db2d52def200add26b91795ee0e4c78a9db716de46d5f8687e4fa7d7960
-EBUILD gnome-control-center-3.2.3.ebuild 3439 SHA256 4f252f2f50b2a32dd071aa729b02f835dc791ee9e54424f6000616778895f39a SHA512 a9ef8086100f9cd0e1f6e8484fbc789254d25b2f3849a846b99078dbb43c4fb87430ea2da6881f42751e5d7a539c95fc13443e47f003cf022f048d39d1034213 WHIRLPOOL f1091cb982c48c1a3be904d9582d7a912051bfe05375f91a8069b8981f35372f2ff6ff1b630ad71caaaad9586258c03b41f4505ea1c28d9a84540500e64716a5
-EBUILD gnome-control-center-3.4.2-r1.ebuild 4156 SHA256 c0efab99fa0819221a5f4af7a6e645b1e77b27d624604e3c34da4e982f54f14b SHA512 3fa6185dde2fef65b55c97ccf72f94b1c25567e3398f54e46b1c37d7ec51b3bc9929980a27b009a06e8d0c6864173e1df1243e64ce5830bece01d3bdf3e3b1ce WHIRLPOOL fbf4112e07ec005611695e14b6a133571b0b61b0924998ccd08e5a84d2d3c31fa90f6ccdf59206ec5f914fe9490be5c604b9face03a224056bd51d359915a96b
+EBUILD gnome-control-center-3.2.3.ebuild 3544 SHA256 8cca3e731cdfc6787bcfb56aea141360f8748c9eec3f13950deae3a4d3c3aad0 SHA512 e44fb0504265ec84ac56e35ffab573ed9e683bf8484a926ddf485726606727d896357feeaefb12052f67591a678a5c30342805e9b247336e9142f61cdcaa2c28 WHIRLPOOL 61ebc13994957c692c1fb7bb9dd266cef89623214f9ecf6155f4de079b28d287615aba68583b8d54fb9f073d10720d8ec9a47a3a27649f61f8866c24099816a7
+EBUILD gnome-control-center-3.4.2-r1.ebuild 4258 SHA256 5af670f101ee6f4fa028889b96e6008e4e84a71e208e7571008b77616bee116e SHA512 689e96bec15482bb53b9c57b9075a45674775cae6624432e35427857dd5ec184e9e357bb0ec08030b45d3c855c34b23b8bca364b8a6f81cb89d4ae39fab4efd0 WHIRLPOOL 7ff1324fd7b86681a351218d96d193f1ee4183074dce804bcab168419e61413203205e9a766408f6f45d3b537ce144e600809eddb2990975446f161a7fbaaccd
EBUILD gnome-control-center-3.4.2.ebuild 4044 SHA256 8cc6ca1d1e01be24762f6c6d23d22737123bbcb266a9ac7034e48f56f4f2058c SHA512 0cb894212213893648242b863d880a0b608a0495ae7a0f86f793e87f3e0a93220ff8be64086557be821f2d8b4477aeb944371585fc61ebf343c24c27afde1385 WHIRLPOOL 61629183cbbd860ce85f75e2ccb8fed3dcd682f21834c895432de0916876b908d320aa873f2fb539b6ac248bfb17f623300dc37accfa6bfed905a750e6f1b425
-MISC ChangeLog 57846 SHA256 6f56489b8e0cff2c8d902a38236c0d1bc502ae34c9d772a826c40ae75c00e8d8 SHA512 1e5339b6c022b63d9801af927ef5c7d236a757639d313fea56a96b1638f1481f91b91966cf1f47dcb9602bc59980e9f7bade1ca741b9a7ed982bd59466b2a8cf WHIRLPOOL cec59071f2a34190e73b3610c4398d5c3fecb736c7eeae85f2abb21327527a9cb31a577697862506f01f02a64e821bff4ef0e82f8527d0bf88c4581e855f1f4c
+MISC ChangeLog 58170 SHA256 027f68f61f22e9f37263e37739a990df0bbf9fe79fcf8d6604586ea6d08a63ac SHA512 0367c49840c8d1011b9a26ec97dffbbe585d6db8995522381df2381184870922355981a836d62956583f70d84f2eefd3f3f85f057cb935d64bce48426e743cc5 WHIRLPOOL 9d6db702c51e08467e4a31c8aeb63501383b715cdf6aff606a3ed9d9e728ba3e30118bae29e481bae2fd84d0fb00e5c3114dac6c09dd7fe19f89d3728b0c0d42
MISC metadata.xml 861 SHA256 9f78bdf41ecb164c1465a0bd87889b7bf64c92bc7057123718f9894ee3f6e1bb SHA512 5efc19121142f80e4ef4424a6380cbde01f6ec8ad86ec799f3f20502be6aee8fcc4c4f463eaf206836345be800677ad90c8553a94f5b261ad8e7a5649a65b715 WHIRLPOOL 6b9743343315c1220ee8bef3c034242ca86f7eea33bb373ca3ad95e9d454696fe7adaf9db58eef6418d29ef45267f6e5407cb4177631654792dafae1900ddd27
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
-iQEcBAEBCAAGBQJQB3TyAAoJEJ0WA1zPCt1hFrsH/ja+NJOBDVNps/+oPaqE9Qr5
-PFozO6YRVRVeYm3dY14jloaAdRFPK42VvNAT5Pe+hTXi2upK+BPI5QiS0VLLuQeK
-Q7H0yK14Axg5Hg2p1/EQZZBZd2vbNhkapus/idNGbWMJKscjOYpALJP+oegcU3GW
-+uMTdputLrukKm+EIsvuRDhNB750WnNvE2AtNYD1MMiw3Bn+CUuZV5QPmh/UotvV
-0exJApmhJrctlJAiJe7+0hjBIcQvclFbNC0m6duo3LoCBUelFNNGu/sAsJB0rGV/
-zWoujAhELIuQyHJvoSk52hjXlPQ91vOxldfub7O1XnD4E1Tk0HA/hirjegVN0gk=
-=TUIJ
+iQEcBAEBCAAGBQJQIOttAAoJEJ0WA1zPCt1haN8H/ioqTvCVyjogs3+TAhzOdhN6
+EBiqFRQj6A2y534c5jCh8PO8w4osDzTwkt43kXQCLp07Vj4864FIruZx3C/KC1TZ
+LK8Lv4zrt4fcjCNSUPY67ym2oY8n1DjgzV7b/twQsP5riomnf9JTNS9NnJ860/db
+++RFdSMx9+Lw57/auNgjHpk/XlRN/Lkv6aVZV0NCfElHTSn/1Qxua49P2oRXStBk
+NOsKgQnJzyG9OKhAJlWZwtwHxJxA7n3PwXMQkzkhcgUthnlynNhpQM7ks5S9Ljtf
+eOJdTB23/v4DiIaZOJjmK44qS1Z1hgqhVArgK6c8cZIviMaPRqLdXgRddatKjZU=
+=JSkh
-----END PGP SIGNATURE-----
diff --git a/gnome-base/gnome-control-center/files/gnome-control-center-3.2.3-cups-1.6.patch b/gnome-base/gnome-control-center/files/gnome-control-center-3.2.3-cups-1.6.patch
new file mode 100644
index 000000000000..10bccbad7baf
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/gnome-control-center-3.2.3-cups-1.6.patch
@@ -0,0 +1,376 @@
+From 3c35742d9cacda5a1e37dd1dfe8f579434a35b84 Mon Sep 17 00:00:00 2001
+From: Jiri Popelka <jpopelka@redhat.com>
+Date: Wed, 11 Jul 2012 17:25:09 +0200
+Subject: [PATCH] Use CUPS-1.6 IPP API getter/setter functions.
+
+CUPS 1.6 makes various structures private and
+introduces these ippGet and ippSet functions
+for all of the fields in these structures.
+http://www.cups.org/str.php?L3928
+
+We define our own accessors when
+building against CUPS < 1.6.
+
+[Alexandre Rostovtsev <tetromino@gentoo.org>: backport to 3.2.x]
+---
+ panels/printers/cc-printers-panel.c | 20 +++-
+ panels/printers/pp-new-printer-dialog.c | 10 ++-
+ panels/printers/pp-utils.c | 159 ++++++++++++++++++------------
+ 3 files changed, 119 insertions(+), 70 deletions(-)
+
+diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c
+index 8ef9847..35751a6 100644
+--- a/panels/printers/cc-printers-panel.c
++++ b/panels/printers/cc-printers-panel.c
+@@ -59,6 +59,16 @@ G_DEFINE_DYNAMIC_TYPE (CcPrintersPanel, cc_printers_panel, CC_TYPE_PANEL)
+
+ #define CUPS_STATUS_CHECK_INTERVAL 5
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetState(ipp) ipp->state
++#define ippGetStatusCode(ipp) ipp->request.status.status_code
++#define ippGetString(attr, element, language) attr->values[element].string.text
++#endif
++
+ struct _CcPrintersPanelPrivate
+ {
+ GtkBuilder *builder;
+@@ -312,7 +322,7 @@ on_cups_notification (GDBusConnection *connection,
+
+ if (response)
+ {
+- if (response->request.status.status_code <= IPP_OK_CONFLICT)
++ if (ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+ ipp_attribute_t *attr_username = NULL;
+ ipp_attribute_t *attr_printer_uri = NULL;
+@@ -320,12 +330,12 @@ on_cups_notification (GDBusConnection *connection,
+ attr_username = ippFindAttribute(response, "job-originating-user-name", IPP_TAG_NAME);
+ attr_printer_uri = ippFindAttribute(response, "job-printer-uri", IPP_TAG_URI);
+ if (attr_username && attr_printer_uri &&
+- g_strcmp0 (attr_username->values[0].string.text, cupsUser ()) == 0 &&
+- g_strrstr (attr_printer_uri->values[0].string.text, "/") != 0 &&
++ g_strcmp0 (ippGetString (attr_username, 0, NULL), cupsUser ()) == 0 &&
++ g_strrstr (ippGetString (attr_printer_uri, 0, NULL), "/") != 0 &&
+ priv->current_dest >= 0 &&
+ priv->current_dest < priv->num_dests &&
+ priv->dests != NULL &&
+- g_strcmp0 (g_strrstr (attr_printer_uri->values[0].string.text, "/") + 1,
++ g_strcmp0 (g_strrstr (ippGetString (attr_printer_uri, 0, NULL), "/") + 1,
+ priv->dests[priv->current_dest].name) == 0)
+ actualize_jobs_list (self);
+ }
+@@ -2263,7 +2273,7 @@ test_page_cb (GtkButton *button,
+
+ if (response)
+ {
+- if (response->state == IPP_ERROR)
++ if (ippGetState(response) == IPP_ERROR)
+ g_warning ("An error has occured during printing of test page.");
+ ippDelete (response);
+ }
+diff --git a/panels/printers/pp-new-printer-dialog.c b/panels/printers/pp-new-printer-dialog.c
+index 583fb60..d2f25c1 100644
+--- a/panels/printers/pp-new-printer-dialog.c
++++ b/panels/printers/pp-new-printer-dialog.c
+@@ -60,6 +60,14 @@
+
+ #define ALLOWED_CHARACTERS "abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetState(ipp) ipp->state
++#endif
++
+ static void pp_new_printer_dialog_hide (PpNewPrinterDialog *pp);
+ static void actualize_devices_list (PpNewPrinterDialog *pp);
+
+@@ -1696,7 +1704,7 @@ new_printer_add_button_cb (GtkButton *button,
+ _("Automatic configuration"));
+ if (response)
+ {
+- if (response->state == IPP_ERROR)
++ if (ippGetState(response) == IPP_ERROR)
+ g_warning ("An error has occured during automatic configuration of new printer.");
+ ippDelete (response);
+ }
+diff --git a/panels/printers/pp-utils.c b/panels/printers/pp-utils.c
+index c89c4e4..830b39e 100644
+--- a/panels/printers/pp-utils.c
++++ b/panels/printers/pp-utils.c
+@@ -36,6 +36,37 @@
+ #define SCP_PATH "/org/fedoraproject/Config/Printing"
+ #define SCP_IFACE "org.fedoraproject.Config.Printing"
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetCount(attr) attr->num_values
++#define ippGetGroupTag(attr) attr->group_tag
++#define ippGetValueTag(attr) attr->value_tag
++#define ippGetName(attr) attr->name
++#define ippGetStatusCode(ipp) ipp->request.status.status_code
++#define ippGetInteger(attr, element) attr->values[element].integer
++#define ippGetString(attr, element, language) attr->values[element].string.text
++
++static ipp_attribute_t *
++ippFirstAttribute(ipp_t *ipp)
++{
++ if (!ipp)
++ return (NULL);
++ return (ipp->current = ipp->attrs);
++}
++
++static ipp_attribute_t *
++ippNextAttribute(ipp_t *ipp)
++{
++ if (!ipp || !ipp->current)
++ return (NULL);
++ return (ipp->current = ipp->current->next);
++}
++#endif
++
++
+ DBusGProxy *
+ get_dbus_proxy (const gchar *name,
+ const gchar *path,
+@@ -977,12 +1008,12 @@ DBus method \"GetBestDrivers\". Using fallback solution for now.");
+ response = cupsDoRequest (http, request, "/");
+
+ if (response &&
+- response->request.status.status_code <= IPP_OK_CONFLICT)
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+- for (attr = response->attrs; attr != NULL; attr = attr->next)
++ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response))
+ {
+- while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER)
+- attr = attr->next;
++ while (attr != NULL && ippGetGroupTag (attr) != IPP_TAG_PRINTER)
++ attr = ippNextAttribute (response);
+
+ if (attr == NULL)
+ break;
+@@ -992,22 +1023,22 @@ DBus method \"GetBestDrivers\". Using fallback solution for now.");
+ ppd_name = NULL;
+ ppd_product = NULL;
+
+- while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER)
++ while (attr != NULL && ippGetGroupTag (attr) == IPP_TAG_PRINTER)
+ {
+- if (g_strcmp0 (attr->name, "ppd-device-id") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_device_id = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-make-and-model") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_make_and_model = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-name") == 0 &&
+- attr->value_tag == IPP_TAG_NAME)
+- ppd_name = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-product") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_product = attr->values[0].string.text;
+-
+- attr = attr->next;
++ if (g_strcmp0 (ippGetName (attr), "ppd-device-id") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_device_id = (gchar *) ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-make-and-model") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_make_and_model = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-name") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_NAME)
++ ppd_name = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-product") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_product = ippGetString (attr, 0, NULL);
++
++ attr = ippNextAttribute (response);
+ }
+
+ if (ppd_device_id && ppd_name)
+@@ -1051,15 +1082,15 @@ DBus method \"GetBestDrivers\". Using fallback solution for now.");
+ response = cupsDoRequest (http, request, "/");
+
+ if (response &&
+- response->request.status.status_code <= IPP_OK_CONFLICT)
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+ for (i = 0; equivalents && equivalents[i]; i++)
+ {
+ eq_normalized = normalize (equivalents[i]);
+- for (attr = response->attrs; attr != NULL; attr = attr->next)
++ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response))
+ {
+- while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER)
+- attr = attr->next;
++ while (attr != NULL && ippGetGroupTag (attr) != IPP_TAG_PRINTER)
++ attr = ippNextAttribute (response);
+
+ if (attr == NULL)
+ break;
+@@ -1069,22 +1100,22 @@ DBus method \"GetBestDrivers\". Using fallback solution for now.");
+ ppd_name = NULL;
+ ppd_product = NULL;
+
+- while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER)
++ while (attr != NULL && ippGetGroupTag (attr) == IPP_TAG_PRINTER)
+ {
+- if (g_strcmp0 (attr->name, "ppd-device-id") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_device_id = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-make-and-model") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_make_and_model = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-name") == 0 &&
+- attr->value_tag == IPP_TAG_NAME)
+- ppd_name = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-product") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_product = attr->values[0].string.text;
+-
+- attr = attr->next;
++ if (g_strcmp0 (ippGetName (attr), "ppd-device-id") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_device_id = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-make-and-model") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_make_and_model = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-name") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_NAME)
++ ppd_name = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-product") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_product = ippGetString (attr, 0, NULL);
++
++ attr = ippNextAttribute (response);
+ }
+
+ if (ppd_device_id && ppd_name)
+@@ -1382,23 +1413,23 @@ ccGetAllowedUsers (gchar ***allowed_users, const char *printer_name)
+ ipp_attribute_t *attr = NULL;
+ ipp_attribute_t *allowed = NULL;
+
+- for (attr = response->attrs; attr != NULL; attr = attr->next)
++ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response))
+ {
+- if (attr->group_tag == IPP_TAG_PRINTER &&
+- attr->value_tag == IPP_TAG_NAME &&
+- !g_strcmp0 (attr->name, "requesting-user-name-allowed"))
++ if (ippGetGroupTag (attr)== IPP_TAG_PRINTER &&
++ ippGetValueTag (attr) == IPP_TAG_NAME &&
++ !g_strcmp0 (ippGetName (attr), "requesting-user-name-allowed"))
+ allowed = attr;
+ }
+
+- if (allowed && allowed->num_values > 0)
++ if (allowed && ippGetCount (allowed) > 0)
+ {
+ int i;
+
+- num_allowed_users = allowed->num_values;
++ num_allowed_users = ippGetCount (allowed);
+ users = g_new (gchar*, num_allowed_users);
+
+ for (i = 0; i < num_allowed_users; i ++)
+- users[i] = g_strdup (allowed->values[i].string.text);
++ users[i] = g_strdup (ippGetString (allowed, i, NULL));
+ }
+ ippDelete(response);
+ }
+@@ -1485,12 +1516,12 @@ renew_cups_subscription (gint id,
+ "notify-lease-duration", lease_duration);
+ response = cupsDoRequest (http, request, "/");
+ if (response != NULL &&
+- response->request.status.status_code <= IPP_OK_CONFLICT) {
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT) {
+ if ((attr = ippFindAttribute (response, "notify-lease-duration",
+ IPP_TAG_INTEGER)) == NULL)
+ g_debug ("No notify-lease-duration in response!\n");
+ else
+- if (attr->values[0].integer == lease_duration)
++ if (ippGetInteger (attr, 0) == lease_duration)
+ result = id;
+ }
+ }
+@@ -1512,12 +1543,12 @@ renew_cups_subscription (gint id,
+ response = cupsDoRequest (http, request, "/");
+
+ if (response != NULL &&
+- response->request.status.status_code <= IPP_OK_CONFLICT) {
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT) {
+ if ((attr = ippFindAttribute (response, "notify-subscription-id",
+ IPP_TAG_INTEGER)) == NULL)
+ g_debug ("No notify-subscription-id in response!\n");
+ else
+- result = attr->values[0].integer;
++ result = ippGetInteger (attr, 0);
+ }
+ }
+
+@@ -1687,38 +1718,38 @@ printer_rename (const gchar *old_name,
+
+ if (response)
+ {
+- if (response->request.status.status_code <= IPP_OK_CONFLICT)
++ if (ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+ attr = ippFindAttribute (response, "printer-error-policy", IPP_TAG_NAME);
+ if (attr)
+- error_policy = g_strdup (attr->values[0].string.text);
++ error_policy = g_strdup (ippGetString (attr, 0, NULL));
+
+ attr = ippFindAttribute (response, "printer-op-policy", IPP_TAG_NAME);
+ if (attr)
+- op_policy = g_strdup (attr->values[0].string.text);
++ op_policy = g_strdup (ippGetString (attr, 0, NULL));
+
+ attr = ippFindAttribute (response, "requesting-user-name-allowed", IPP_TAG_NAME);
+- if (attr && attr->num_values > 0)
++ if (attr && ippGetCount (attr) > 0)
+ {
+- users_allowed = g_new0 (gchar *, attr->num_values + 1);
+- for (i = 0; i < attr->num_values; i++)
+- users_allowed[i] = g_strdup (attr->values[i].string.text);
++ users_allowed = g_new0 (gchar *, ippGetCount (attr) + 1);
++ for (i = 0; i < ippGetCount (attr); i++)
++ users_allowed[i] = g_strdup (ippGetString (attr, i, NULL));
+ }
+
+ attr = ippFindAttribute (response, "requesting-user-name-denied", IPP_TAG_NAME);
+- if (attr && attr->num_values > 0)
++ if (attr && ippGetCount (attr) > 0)
+ {
+- users_denied = g_new0 (gchar *, attr->num_values + 1);
+- for (i = 0; i < attr->num_values; i++)
+- users_denied[i] = g_strdup (attr->values[i].string.text);
++ users_denied = g_new0 (gchar *, ippGetCount (attr) + 1);
++ for (i = 0; i < ippGetCount (attr); i++)
++ users_denied[i] = g_strdup (ippGetString (attr, i, NULL));
+ }
+
+ attr = ippFindAttribute (response, "member-names", IPP_TAG_NAME);
+- if (attr && attr->num_values > 0)
++ if (attr && ippGetCount (attr) > 0)
+ {
+- member_names = g_new0 (gchar *, attr->num_values + 1);
+- for (i = 0; i < attr->num_values; i++)
+- member_names[i] = g_strdup (attr->values[i].string.text);
++ member_names = g_new0 (gchar *, ippGetCount (attr) + 1);
++ for (i = 0; i < ippGetCount (attr); i++)
++ member_names[i] = g_strdup (ippGetString (attr, i, NULL));
+ }
+ }
+ ippDelete (response);
+--
+1.7.8.6
+
diff --git a/gnome-base/gnome-control-center/files/gnome-control-center-3.4.2-cups-1.6.patch b/gnome-base/gnome-control-center/files/gnome-control-center-3.4.2-cups-1.6.patch
new file mode 100644
index 000000000000..92070d64e37a
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/gnome-control-center-3.4.2-cups-1.6.patch
@@ -0,0 +1,374 @@
+From 6fe26549d11b4e12026d81d680cd5ff11678a781 Mon Sep 17 00:00:00 2001
+From: Jiri Popelka <jpopelka@redhat.com>
+Date: Wed, 11 Jul 2012 17:25:09 +0200
+Subject: [PATCH] Use CUPS-1.6 IPP API getter/setter functions.
+
+CUPS 1.6 makes various structures private and
+introduces these ippGet and ippSet functions
+for all of the fields in these structures.
+http://www.cups.org/str.php?L3928
+
+We define our own accessors when
+building against CUPS < 1.6.
+---
+ panels/printers/cc-printers-panel.c | 20 +++-
+ panels/printers/pp-new-printer-dialog.c | 10 +-
+ panels/printers/pp-utils.c | 159 ++++++++++++++++++-------------
+ 3 files changed, 119 insertions(+), 70 deletions(-)
+
+diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c
+index 0ea51c4..83622cc 100644
+--- a/panels/printers/cc-printers-panel.c
++++ b/panels/printers/cc-printers-panel.c
+@@ -58,6 +58,16 @@ G_DEFINE_DYNAMIC_TYPE (CcPrintersPanel, cc_printers_panel, CC_TYPE_PANEL)
+
+ #define CUPS_STATUS_CHECK_INTERVAL 5
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetState(ipp) ipp->state
++#define ippGetStatusCode(ipp) ipp->request.status.status_code
++#define ippGetString(attr, element, language) attr->values[element].string.text
++#endif
++
+ struct _CcPrintersPanelPrivate
+ {
+ GtkBuilder *builder;
+@@ -318,7 +328,7 @@ on_cups_notification (GDBusConnection *connection,
+
+ if (response)
+ {
+- if (response->request.status.status_code <= IPP_OK_CONFLICT)
++ if (ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+ ipp_attribute_t *attr_username = NULL;
+ ipp_attribute_t *attr_printer_uri = NULL;
+@@ -326,12 +336,12 @@ on_cups_notification (GDBusConnection *connection,
+ attr_username = ippFindAttribute(response, "job-originating-user-name", IPP_TAG_NAME);
+ attr_printer_uri = ippFindAttribute(response, "job-printer-uri", IPP_TAG_URI);
+ if (attr_username && attr_printer_uri &&
+- g_strcmp0 (attr_username->values[0].string.text, cupsUser ()) == 0 &&
+- g_strrstr (attr_printer_uri->values[0].string.text, "/") != 0 &&
++ g_strcmp0 (ippGetString (attr_username, 0, NULL), cupsUser ()) == 0 &&
++ g_strrstr (ippGetString (attr_printer_uri, 0, NULL), "/") != 0 &&
+ priv->current_dest >= 0 &&
+ priv->current_dest < priv->num_dests &&
+ priv->dests != NULL &&
+- g_strcmp0 (g_strrstr (attr_printer_uri->values[0].string.text, "/") + 1,
++ g_strcmp0 (g_strrstr (ippGetString (attr_printer_uri, 0, NULL), "/") + 1,
+ priv->dests[priv->current_dest].name) == 0)
+ actualize_jobs_list (self);
+ }
+@@ -2295,7 +2305,7 @@ test_page_cb (GtkButton *button,
+
+ if (response)
+ {
+- if (response->state == IPP_ERROR)
++ if (ippGetState(response) == IPP_ERROR)
+ g_warning ("An error has occured during printing of test page.");
+ ippDelete (response);
+ }
+diff --git a/panels/printers/pp-new-printer-dialog.c b/panels/printers/pp-new-printer-dialog.c
+index eb134b5..6ac4618 100644
+--- a/panels/printers/pp-new-printer-dialog.c
++++ b/panels/printers/pp-new-printer-dialog.c
+@@ -59,6 +59,14 @@
+
+ #define ALLOWED_CHARACTERS "abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetState(ipp) ipp->state
++#endif
++
+ static void pp_new_printer_dialog_hide (PpNewPrinterDialog *pp);
+ static void actualize_devices_list (PpNewPrinterDialog *pp);
+
+@@ -1760,7 +1768,7 @@ new_printer_add_button_cb (GtkButton *button,
+ _("Automatic configuration"));
+ if (response)
+ {
+- if (response->state == IPP_ERROR)
++ if (ippGetState(response) == IPP_ERROR)
+ g_warning ("An error has occured during automatic configuration of new printer.");
+ ippDelete (response);
+ }
+diff --git a/panels/printers/pp-utils.c b/panels/printers/pp-utils.c
+index 5263af6..41fa3c4 100644
+--- a/panels/printers/pp-utils.c
++++ b/panels/printers/pp-utils.c
+@@ -35,6 +35,37 @@
+ #define SCP_PATH "/org/fedoraproject/Config/Printing"
+ #define SCP_IFACE "org.fedoraproject.Config.Printing"
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetCount(attr) attr->num_values
++#define ippGetGroupTag(attr) attr->group_tag
++#define ippGetValueTag(attr) attr->value_tag
++#define ippGetName(attr) attr->name
++#define ippGetStatusCode(ipp) ipp->request.status.status_code
++#define ippGetInteger(attr, element) attr->values[element].integer
++#define ippGetString(attr, element, language) attr->values[element].string.text
++
++static ipp_attribute_t *
++ippFirstAttribute(ipp_t *ipp)
++{
++ if (!ipp)
++ return (NULL);
++ return (ipp->current = ipp->attrs);
++}
++
++static ipp_attribute_t *
++ippNextAttribute(ipp_t *ipp)
++{
++ if (!ipp || !ipp->current)
++ return (NULL);
++ return (ipp->current = ipp->current->next);
++}
++#endif
++
++
+ gchar *
+ get_tag_value (const gchar *tag_string, const gchar *tag_name)
+ {
+@@ -935,12 +966,12 @@ DBus method \"GetBestDrivers\". Using fallback solution for now.");
+ response = cupsDoRequest (http, request, "/");
+
+ if (response &&
+- response->request.status.status_code <= IPP_OK_CONFLICT)
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+- for (attr = response->attrs; attr != NULL; attr = attr->next)
++ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response))
+ {
+- while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER)
+- attr = attr->next;
++ while (attr != NULL && ippGetGroupTag (attr) != IPP_TAG_PRINTER)
++ attr = ippNextAttribute (response);
+
+ if (attr == NULL)
+ break;
+@@ -950,22 +981,22 @@ DBus method \"GetBestDrivers\". Using fallback solution for now.");
+ ppd_name = NULL;
+ ppd_product = NULL;
+
+- while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER)
++ while (attr != NULL && ippGetGroupTag (attr) == IPP_TAG_PRINTER)
+ {
+- if (g_strcmp0 (attr->name, "ppd-device-id") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_device_id = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-make-and-model") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_make_and_model = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-name") == 0 &&
+- attr->value_tag == IPP_TAG_NAME)
+- ppd_name = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-product") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_product = attr->values[0].string.text;
+-
+- attr = attr->next;
++ if (g_strcmp0 (ippGetName (attr), "ppd-device-id") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_device_id = (gchar *) ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-make-and-model") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_make_and_model = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-name") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_NAME)
++ ppd_name = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-product") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_product = ippGetString (attr, 0, NULL);
++
++ attr = ippNextAttribute (response);
+ }
+
+ if (ppd_device_id && ppd_name)
+@@ -1009,15 +1040,15 @@ DBus method \"GetBestDrivers\". Using fallback solution for now.");
+ response = cupsDoRequest (http, request, "/");
+
+ if (response &&
+- response->request.status.status_code <= IPP_OK_CONFLICT)
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+ for (i = 0; equivalents && equivalents[i]; i++)
+ {
+ eq_normalized = normalize (equivalents[i]);
+- for (attr = response->attrs; attr != NULL; attr = attr->next)
++ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response))
+ {
+- while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER)
+- attr = attr->next;
++ while (attr != NULL && ippGetGroupTag (attr) != IPP_TAG_PRINTER)
++ attr = ippNextAttribute (response);
+
+ if (attr == NULL)
+ break;
+@@ -1027,22 +1058,22 @@ DBus method \"GetBestDrivers\". Using fallback solution for now.");
+ ppd_name = NULL;
+ ppd_product = NULL;
+
+- while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER)
++ while (attr != NULL && ippGetGroupTag (attr) == IPP_TAG_PRINTER)
+ {
+- if (g_strcmp0 (attr->name, "ppd-device-id") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_device_id = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-make-and-model") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_make_and_model = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-name") == 0 &&
+- attr->value_tag == IPP_TAG_NAME)
+- ppd_name = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-product") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_product = attr->values[0].string.text;
+-
+- attr = attr->next;
++ if (g_strcmp0 (ippGetName (attr), "ppd-device-id") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_device_id = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-make-and-model") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_make_and_model = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-name") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_NAME)
++ ppd_name = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-product") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_product = ippGetString (attr, 0, NULL);
++
++ attr = ippNextAttribute (response);
+ }
+
+ if (ppd_device_id && ppd_name)
+@@ -1352,23 +1383,23 @@ ccGetAllowedUsers (gchar ***allowed_users, const char *printer_name)
+ ipp_attribute_t *attr = NULL;
+ ipp_attribute_t *allowed = NULL;
+
+- for (attr = response->attrs; attr != NULL; attr = attr->next)
++ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response))
+ {
+- if (attr->group_tag == IPP_TAG_PRINTER &&
+- attr->value_tag == IPP_TAG_NAME &&
+- !g_strcmp0 (attr->name, "requesting-user-name-allowed"))
++ if (ippGetGroupTag (attr) == IPP_TAG_PRINTER &&
++ ippGetValueTag (attr) == IPP_TAG_NAME &&
++ !g_strcmp0 (ippGetName (attr), "requesting-user-name-allowed"))
+ allowed = attr;
+ }
+
+- if (allowed && allowed->num_values > 0)
++ if (allowed && ippGetCount (allowed) > 0)
+ {
+ int i;
+
+- num_allowed_users = allowed->num_values;
++ num_allowed_users = ippGetCount (allowed);
+ users = g_new (gchar*, num_allowed_users);
+
+ for (i = 0; i < num_allowed_users; i ++)
+- users[i] = g_strdup (allowed->values[i].string.text);
++ users[i] = g_strdup (ippGetString (allowed, i, NULL));
+ }
+ ippDelete(response);
+ }
+@@ -1454,12 +1485,12 @@ renew_cups_subscription (gint id,
+ "notify-lease-duration", lease_duration);
+ response = cupsDoRequest (http, request, "/");
+ if (response != NULL &&
+- response->request.status.status_code <= IPP_OK_CONFLICT) {
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT) {
+ if ((attr = ippFindAttribute (response, "notify-lease-duration",
+ IPP_TAG_INTEGER)) == NULL)
+ g_debug ("No notify-lease-duration in response!\n");
+ else
+- if (attr->values[0].integer == lease_duration)
++ if (ippGetInteger (attr, 0) == lease_duration)
+ result = id;
+ }
+ }
+@@ -1481,12 +1512,12 @@ renew_cups_subscription (gint id,
+ response = cupsDoRequest (http, request, "/");
+
+ if (response != NULL &&
+- response->request.status.status_code <= IPP_OK_CONFLICT) {
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT) {
+ if ((attr = ippFindAttribute (response, "notify-subscription-id",
+ IPP_TAG_INTEGER)) == NULL)
+ g_debug ("No notify-subscription-id in response!\n");
+ else
+- result = attr->values[0].integer;
++ result = ippGetInteger (attr, 0);
+ }
+ }
+
+@@ -1655,38 +1686,38 @@ printer_rename (const gchar *old_name,
+
+ if (response)
+ {
+- if (response->request.status.status_code <= IPP_OK_CONFLICT)
++ if (ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+ attr = ippFindAttribute (response, "printer-error-policy", IPP_TAG_NAME);
+ if (attr)
+- error_policy = g_strdup (attr->values[0].string.text);
++ error_policy = g_strdup (ippGetString (attr, 0, NULL));
+
+ attr = ippFindAttribute (response, "printer-op-policy", IPP_TAG_NAME);
+ if (attr)
+- op_policy = g_strdup (attr->values[0].string.text);
++ op_policy = g_strdup (ippGetString (attr, 0, NULL));
+
+ attr = ippFindAttribute (response, "requesting-user-name-allowed", IPP_TAG_NAME);
+- if (attr && attr->num_values > 0)
++ if (attr && ippGetCount (attr) > 0)
+ {
+- users_allowed = g_new0 (gchar *, attr->num_values + 1);
+- for (i = 0; i < attr->num_values; i++)
+- users_allowed[i] = g_strdup (attr->values[i].string.text);
++ users_allowed = g_new0 (gchar *, ippGetCount (attr) + 1);
++ for (i = 0; i < ippGetCount (attr); i++)
++ users_allowed[i] = g_strdup (ippGetString (attr, i, NULL));
+ }
+
+ attr = ippFindAttribute (response, "requesting-user-name-denied", IPP_TAG_NAME);
+- if (attr && attr->num_values > 0)
++ if (attr && ippGetCount (attr) > 0)
+ {
+- users_denied = g_new0 (gchar *, attr->num_values + 1);
+- for (i = 0; i < attr->num_values; i++)
+- users_denied[i] = g_strdup (attr->values[i].string.text);
++ users_denied = g_new0 (gchar *, ippGetCount (attr) + 1);
++ for (i = 0; i < ippGetCount (attr); i++)
++ users_denied[i] = g_strdup (ippGetString (attr, i, NULL));
+ }
+
+ attr = ippFindAttribute (response, "member-names", IPP_TAG_NAME);
+- if (attr && attr->num_values > 0)
++ if (attr && ippGetCount (attr) > 0)
+ {
+- member_names = g_new0 (gchar *, attr->num_values + 1);
+- for (i = 0; i < attr->num_values; i++)
+- member_names[i] = g_strdup (attr->values[i].string.text);
++ member_names = g_new0 (gchar *, ippGetCount (attr) + 1);
++ for (i = 0; i < ippGetCount (attr); i++)
++ member_names[i] = g_strdup (ippGetString (attr, i, NULL));
+ }
+ }
+ ippDelete (response);
+--
+1.7.10.4
+
diff --git a/gnome-base/gnome-control-center/gnome-control-center-3.2.2.ebuild b/gnome-base/gnome-control-center/gnome-control-center-3.2.2.ebuild
deleted file mode 100644
index bd9c922be438..000000000000
--- a/gnome-base/gnome-control-center/gnome-control-center-3.2.2.ebuild
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-control-center/gnome-control-center-3.2.2.ebuild,v 1.7 2012/05/21 18:51:38 tetromino Exp $
-
-EAPI="4"
-GCONF_DEBUG="yes"
-GNOME2_LA_PUNT="yes" # gmodule is used, which uses dlopen
-
-inherit autotools eutils gnome2
-
-DESCRIPTION="GNOME Desktop Configuration Tool"
-HOMEPAGE="http://www.gnome.org/"
-
-LICENSE="GPL-2"
-SLOT="2"
-IUSE="+cheese +colord +cups +networkmanager +socialweb"
-KEYWORDS="~amd64 ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris"
-
-# XXX: gnome-desktop-2.91.5 is needed for upstream commit c67f7efb
-# XXX: NetworkManager-0.9 support is automagic, make hard-dep once it's released
-#
-# gnome-session-2.91.6-r1 is needed so that 10-user-dirs-update is run at login
-# Latest gsettings-desktop-schemas is neededfor commit 73f9bffb
-# gnome-settings-daemon-3.1.4 is needed for power panel (commit 4f08a325)
-# g-s-d[policykit] needed for bug #403527
-COMMON_DEPEND="
- >=dev-libs/glib-2.29.14:2
- >=x11-libs/gdk-pixbuf-2.23.0:2
- >=x11-libs/gtk+-3.1.19:3
- >=gnome-base/gsettings-desktop-schemas-3.0.2
- >=gnome-base/gconf-2.0:2
- >=dev-libs/dbus-glib-0.73
- >=gnome-base/gnome-desktop-3.1.0:3
- >=gnome-base/gnome-settings-daemon-3.1.4[colord(+)?,policykit]
- >=gnome-base/libgnomekbd-2.91.91
-
- app-text/iso-codes
- dev-libs/libxml2:2
- gnome-base/gnome-menus:3
- gnome-base/libgtop:2
- media-libs/fontconfig
- net-libs/gnome-online-accounts
-
- >=media-libs/libcanberra-0.13[gtk3]
- >=media-sound/pulseaudio-0.9.16[glib]
- >=sys-auth/polkit-0.97
- >=sys-power/upower-0.9.1
- >=x11-libs/libnotify-0.7.3
-
- x11-apps/xmodmap
- x11-libs/libX11
- x11-libs/libXxf86misc
- >=x11-libs/libxklavier-5.1
- >=x11-libs/libXi-1.2
-
- cheese? (
- media-libs/gstreamer:0.10
- >=media-video/cheese-2.91.91.1 )
- colord? ( >=x11-misc/colord-0.1.8 )
- cups? ( >=net-print/cups-1.4[dbus] )
- networkmanager? (
- >=gnome-extra/nm-applet-0.9.1.90
- >=net-misc/networkmanager-0.8.997 )
- socialweb? ( net-libs/libsocialweb )"
-# <gnome-color-manager-3.1.2 has file collisions with g-c-c-3.1.x
-RDEPEND="${COMMON_DEPEND}
- app-admin/apg
- sys-apps/accountsservice
- x11-themes/gnome-icon-theme-symbolic
- cups? ( net-print/cups-pk-helper )
-
- !<gnome-base/gdm-2.91.94
- !<gnome-extra/gnome-color-manager-3.1.2
- !gnome-extra/gnome-media[pulseaudio]
- !<gnome-extra/gnome-media-2.32.0-r300"
-# PDEPEND to avoid circular dependency
-PDEPEND=">=gnome-base/gnome-session-2.91.6-r1"
-DEPEND="${COMMON_DEPEND}
- x11-proto/xproto
- x11-proto/xf86miscproto
- x11-proto/kbproto
-
- >=sys-devel/gettext-0.17
- >=dev-util/intltool-0.40.1
- virtual/pkgconfig
-
- app-text/scrollkeeper
- >=app-text/gnome-doc-utils-0.10.1
-
- cups? ( sys-apps/sed )"
-# Needed for autoreconf
-# gnome-base/gnome-common
-
-pkg_setup() {
- G2CONF="${G2CONF}
- --disable-update-mimedb
- --disable-static
- $(use_with cheese)
- $(use_enable colord color)
- $(use_enable cups)
- $(use_with socialweb libsocialweb)"
- DOCS="AUTHORS ChangeLog NEWS README TODO"
-}
-
-src_prepare() {
- # Upstream patch to not crash on missing metacity; will be in next release
- epatch "${FILESDIR}/${P}-metacity-gconf.patch"
-
- # Make colord plugin optional; requires eautoreconf
- epatch "${FILESDIR}/${PN}-3.2.1-optional-colord.patch"
- eautoreconf
-
- gnome2_src_prepare
-}
diff --git a/gnome-base/gnome-control-center/gnome-control-center-3.2.3.ebuild b/gnome-base/gnome-control-center/gnome-control-center-3.2.3.ebuild
index 38e903aed2e7..8039c44c3dbb 100644
--- a/gnome-base/gnome-control-center/gnome-control-center-3.2.3.ebuild
+++ b/gnome-base/gnome-control-center/gnome-control-center-3.2.3.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-control-center/gnome-control-center-3.2.3.ebuild,v 1.2 2012/05/27 23:14:36 mattst88 Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-control-center/gnome-control-center-3.2.3.ebuild,v 1.3 2012/08/07 10:18:15 tetromino Exp $
EAPI="4"
GCONF_DEBUG="yes"
@@ -111,6 +111,10 @@ src_prepare() {
# Make some panels optional; requires eautoreconf
epatch "${FILESDIR}/${PN}-3.2.3-optional-colord-goa.patch"
+
+ # https://bugzilla.gnome.org/show_bug.cgi?id=679759
+ epatch "${FILESDIR}/${PN}-3.2.3-cups-1.6.patch"
+
eautoreconf
gnome2_src_prepare
diff --git a/gnome-base/gnome-control-center/gnome-control-center-3.4.2-r1.ebuild b/gnome-base/gnome-control-center/gnome-control-center-3.4.2-r1.ebuild
index a61fd5dfdb11..dbdec6b9b848 100644
--- a/gnome-base/gnome-control-center/gnome-control-center-3.4.2-r1.ebuild
+++ b/gnome-base/gnome-control-center/gnome-control-center-3.4.2-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-control-center/gnome-control-center-3.4.2-r1.ebuild,v 1.1 2012/07/19 02:46:04 tetromino Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-control-center/gnome-control-center-3.4.2-r1.ebuild,v 1.2 2012/08/07 10:18:15 tetromino Exp $
EAPI="4"
GCONF_DEBUG="yes"
@@ -121,6 +121,8 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-3.4.2-optional-bt-colord-goa-wacom.patch"
# Fix some absolute paths to be appropriate for Gentoo
epatch "${FILESDIR}/${PN}-3.4.2-gentoo-paths.patch"
+ # https://bugzilla.gnome.org/show_bug.cgi?id=679759
+ epatch "${FILESDIR}/${PN}-3.4.2-cups-1.6.patch"
eautoreconf
gnome2_src_prepare