summaryrefslogtreecommitdiff
path: root/gnome-base/gnome-control-center
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-base/gnome-control-center')
-rw-r--r--gnome-base/gnome-control-center/Manifest22
-rw-r--r--gnome-base/gnome-control-center/files/3.22.2-fix-build-without-wayland.patch35
-rw-r--r--gnome-base/gnome-control-center/files/3.22.2-fix-dual-gpu-crash.patch32
-rw-r--r--gnome-base/gnome-control-center/files/3.24.2-fix-without-gdkwayland.patch47
-rw-r--r--gnome-base/gnome-control-center/files/3.24.2-gentoo-paths.patch107
-rw-r--r--gnome-base/gnome-control-center/files/3.24.2-optional-cups.patch196
-rw-r--r--gnome-base/gnome-control-center/files/3.24.2-optional-networkmanager.patch69
-rw-r--r--gnome-base/gnome-control-center/files/3.24.2-optional-wayland.patch46
-rw-r--r--gnome-base/gnome-control-center/files/3.24.2-optional.patch556
-rw-r--r--gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-gentoo-paths.patch120
-rw-r--r--gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-keep-panels-optional.patch40
-rw-r--r--gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-make-networkmanager-optional.patch67
-rw-r--r--gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-make-wayland-optional.patch45
-rw-r--r--gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-optional.patch569
-rw-r--r--gnome-base/gnome-control-center/gnome-control-center-3.22.2-r1.ebuild163
-rw-r--r--gnome-base/gnome-control-center/gnome-control-center-3.24.2.ebuild165
-rw-r--r--gnome-base/gnome-control-center/gnome-control-center-3.24.3.ebuild165
-rw-r--r--gnome-base/gnome-control-center/metadata.xml16
18 files changed, 2460 insertions, 0 deletions
diff --git a/gnome-base/gnome-control-center/Manifest b/gnome-base/gnome-control-center/Manifest
new file mode 100644
index 000000000000..ff60338dbc1f
--- /dev/null
+++ b/gnome-base/gnome-control-center/Manifest
@@ -0,0 +1,22 @@
+AUX 3.22.2-fix-build-without-wayland.patch 1103 SHA256 7d75ff72fce62dc92fbec52b25cd378deee664e5169e403bb2f80ff562520242 SHA512 629deca257bd71f660728798747a4207d6e87a4442b2473a3ae1fb4be0770eac3b93f2496b33dab290fe671a08a8648f597ef65548dc705c35578bbc7ba3112b WHIRLPOOL 724794a600a4095e1f32913f80c165c1b6dcb4dcbfc04d940b6324bf82ef0396488142052556c1bb16cd7079c99f68ee86d51b75ce823dbfa0940cab1cf9b11b
+AUX 3.22.2-fix-dual-gpu-crash.patch 946 SHA256 dc53c7f4e5a6c90f11a84641059b81dd2180cee6d1bb49bb75c9ee4ac2f487a0 SHA512 55748a6c2aea9b8454e455b561f3097025bb085c70eca04948e490f9b59e8eb64985832a06193979f6ac1de19d8a064fc48548bb78b9b6a90a4465427838e1f6 WHIRLPOOL e1953663c0a1e632747dc81e161d469be5f1c56a577cc4cced56684802b117912db8ba5cbadd62adde688f85923938a85210d8b0d8891ad6f547409ce285fb77
+AUX 3.24.2-fix-without-gdkwayland.patch 1363 SHA256 31c0f4732f264e3dba61bd1d2a0c223ef041eed7c48bcf56917293ee95060ab7 SHA512 8f46ecc84e5ffbce5519683ab86a44ba2e19d20e20ef5b7c346c5ec760e13d72292b4cfbe0d0710f047e8b14ba37f707ef546a75515e3e6f47b6739bb3dcf2da WHIRLPOOL 724af66c9d9f74a7b0dc373f002dd6675c9a375ec13096857240f4c3bb05548bc9fda53ff5935ad8e31fa3ff860e6915c5fe6d0a73a24a7b173a737f858a27f7
+AUX 3.24.2-gentoo-paths.patch 3785 SHA256 8f9fd3c0bda0746c68314ffca8f9422a5d174d709996b8f5a109d3cb9c1719fa SHA512 695ca629b4110d2123f0d0180cddebce86aff303f96dbaeeed7ca9d5819108c53a302a5c0fb5bbcf3516369b10ccefc2948fbbd18725d349c0eb26218339b5fa WHIRLPOOL 1c4a08cc5e6a583775c94b5bf202552e3d35090c39f79d8111a99041d294861df6ad89d88c4f4b94902e5189ae012a0e46bf8c06569afa89065ce7a085fb1f6f
+AUX 3.24.2-optional-cups.patch 6546 SHA256 1ec369f5d764d0deac07061d6d3b88fc962b49cb3ce4333698cae78b2e035d41 SHA512 95d6d89ea7cdd10e15a462b123a52237386cc4a82f3064a62277a6de48d3c6db76ceb6f8fe5a088f3bb4523f2679e24d978fb868842cf27094760a5a8663a527 WHIRLPOOL 4d343d285b2f96c77ef1e4b3a9ad1398964655aea277f202b8146585305c7c8b0891c6d2a056f3743378a339ffadefca34abab9c13b76810ee44f2188f8ebce5
+AUX 3.24.2-optional-networkmanager.patch 2985 SHA256 67ee5d1b78a74b7d5777e9f8a049b8afd2a44377a2848e987c16b3dab1a63eb1 SHA512 8319deff6e96745b31661d70112ffae120416445efb8732fc92f0c1e0aa392942668db3234330133b27f7a6e81d416ed22db47ece5204a1ff9628978827fe929 WHIRLPOOL 66a071232c354162620904b30cd8f230b95b9d6f62df36df039e50cc77baacb1b226231810b3bd13a8d84d8b8e18d868adf20fb7e140f1063fc2f9c23f1b5983
+AUX 3.24.2-optional-wayland.patch 1361 SHA256 c4e589657825fd42652b06725316e67fbb0d2f44390e94b4e397353287f45a0b SHA512 3fa91c8977df2332b14055863820d246700cf8c23f7167c8008a17a8b7744ed91182e5cc71575477b0e5186036c830835b26e387a2f659ec1e9022eb77a98005 WHIRLPOOL 84e0c8048ee9fca38e35ec2baa22bf5487785cae415a379dc87ade493ffb4c2f96e4a47e3b4c4d10793343d125b8a1a6cd371b95302a38c47c566ac1dd381943
+AUX 3.24.2-optional.patch 20472 SHA256 83d9da8d07d6b90b1c0f1744aab1be62ed07f1911f6646971fa332b1e7a4fe5e SHA512 b10e22183720cdbd94aa9e052b6f7568a836c619d1afc243d481f91afff07cedff6dd5e4b945ce4d5d7931aef8617a6a60f9304bb712a12a66bd9b1396859f8f WHIRLPOOL 22efe81b31287b8ac411598c88e5b0a6b044435208e8f045beb0a9ce3bd82b0197e4f60518b20a3e9645abbe5e5826216e7783572a7a3e28dbae6510c99dcc1a
+AUX gnome-control-center-3.22.0-gentoo-paths.patch 4314 SHA256 ad5b1db4677c1c71597220e0dee6db8fec83a2d1bfe64814a7e40eb38005be00 SHA512 d4be7f0dcffd3fe1e9dd2613431e6d003c6085bd2f46b92b601eba6a9270ca0403856de30997024b4bc5eb4fd79e7a7bccac18c1895205f0bfa556f01205f491 WHIRLPOOL f385e66c64fead42b0bc5d40c7c36b5198fa4043931ea6534af5ef2c04a5fde7a719611f1287c55fe50a05138d0b38a8aa144fac98f79252ed71e30a3e302cd8
+AUX gnome-control-center-3.22.0-keep-panels-optional.patch 1061 SHA256 7279baa1124ddb65027dd65df770a2f130aaae724f0f364820cd39ca21ddd534 SHA512 7f88be97cb7354db2cfd9ed3528c4e72f12b48788831dea48f59bc93e8521d3d6de4a14ed0ae580cb4a0fd48ddf4b5d131125325289277820c98e1bb9aafa96f WHIRLPOOL 8d994ce5bb337d875eeb84fe1a55174ab52f07d3cb6d8074ae8b014a3a9b2e08e84e06e7fad33aa71a5ef10b5bf83d4147f241d88b37ccc770c7a9eec78ddecc
+AUX gnome-control-center-3.22.0-make-networkmanager-optional.patch 2975 SHA256 53bc2c00226a978ee357498597c6dc7b7c0c51ebe121332ac7b37f2464502e9a SHA512 152880e919e418b4997560558b2a7ec287ba5a9b1edc9983c5991a5e0ab5f9f940ab5ae192a146cafb959d511f06d3f36e232a91869f936b9816cefb5fe89ac5 WHIRLPOOL d06e3b3f824bed30476ba3e0b2a1a31521e68cb2e9160157a1b1ee889995118cc342188532badcbb24247bfee67dd69c4935f282a8c024868c4a8d382a8d1c1c
+AUX gnome-control-center-3.22.0-make-wayland-optional.patch 1343 SHA256 7946c160cdee7c89ad2829894993bbd765b80bcf34c6d8b5e749115f3bd85fc7 SHA512 6466122a63525517a99b41bf8366ac244d7d25c7b12b953ebd36568ac61b84d4c1a67dc6c53aa19f5c115c5754db132b2f7bb630f515e7c2a7e52e9abbcf1ba9 WHIRLPOOL 5d02b458c1ab797265f19e4999dac4880784a0b0259b1a635ebc78d2d77a74e2ebed61d859a9b82c544945d753a5531e405b886df5a0bb2b9804da74d0cfae18
+AUX gnome-control-center-3.22.0-optional.patch 21387 SHA256 225161377afc6afd44f31e6376208137c96942f3722b580e8bbc21f0e48bf36b SHA512 78cbd1ebbd60ee7c9837724899224bca836dc4149154e101da54caf17f3d1652eb67aede09b41a58f43b68791a05ce82fa910e3ec9ce417b735f708d9482f683 WHIRLPOOL a1cdfdb291ac21ba9d13166225162e5b1e9305e72496455aa09e53d2ad6f04bb26e1963c6bbb421d3c0eb18d32b32acc47e47458f3c343883621968172a06459
+DIST gnome-control-center-3.22.2.tar.xz 7277380 SHA256 7512ff3e256c1d43a746752e90a8079d0b064aae35283cfe863e19706ce22f92 SHA512 a9ed72c47703fcbbd0d6f3301be7d5b3a8eff2f0c400bde19e14c5d013404fc5907765fb20af40022f7700547d06c02203a919b4db4c191f64f3ac20cb12626a WHIRLPOOL 393fa9d1752330ebac81215f35df5da6ed4b457cbc5ce56a5497191584266161c4ab0105b16535ef245be62aec27c6556fca2416ce7b91651b266f224592b686
+DIST gnome-control-center-3.24.2.tar.xz 7269112 SHA256 382a4b1bf54754c1f5f83adb1faeca2e9de70df5d3d85ac6b0fb192801518f2b SHA512 5041d4907cba0ea188663ad574ddaac6c341ec22b69f7a3d6332b8ae0a572fe33eb19eed758f3d593fe6224d793f2ecc3677584ebf0971f3ae145363a1769cc0 WHIRLPOOL 6e42ec6ac877eb19cc64d5d52106662a872cd4cba25bf0fb2f0fa4a4c1d82fc4149a52f7922e1e1e6dd005133cf54d5e154f75807da58d510e7d09610b41cb7b
+DIST gnome-control-center-3.24.3.tar.xz 7302120 SHA256 43a4d2a4c222ee4a53428a4a720f823e157e4d4c597ea1a84e438d242596cca2 SHA512 70b827f70fb95e8db0ee01e3ba80242dfdb0f90e31c391ca470c372cb6c8626f054e1e5b79e954935e9b567564129b80957091039e16e921e1c93b3d584c71cb WHIRLPOOL 3e5b9c47ef2ecf9fdba3037ace51eefab765e7dfa829586b90da267ccbd099658f48967600aaaa3259796e56805fe3c90fa55577787ca84bdd5e6cfb2729757b
+EBUILD gnome-control-center-3.22.2-r1.ebuild 5085 SHA256 b5958943c4bf183b78c1d42c8a9cdc9c4bb994ff64b494c3c0b050d6d993d6ab SHA512 334c5d600c341d47051a3b47cfb8e986922111d17cb8e0099969b29597630b046ba06abe86d63af705b468bb0e9d778f7447a0ef8262f57b88723352470ce643 WHIRLPOOL 6bf23b56ccc59c30b31812a57211d2650ae95f6982a05bb6e69ccb4730b775aec80ef70655b7fffe30cd236b00f44ee1d7b0828ec1c4c516366c4303109cc801
+EBUILD gnome-control-center-3.24.2.ebuild 5162 SHA256 0f2602b9b4a351cb89d02e8d65567995bffbb3b186d9e1685b4c3b050ab7aaa0 SHA512 71714546dd36432c4f0d042de36a72a20b631143e40ceeeb217cf91aee99f883e6990d330a3053951a7f349b805fa0ed1fac566fdb364164047ac3751de1fe6c WHIRLPOOL 8504d0beafc96f659627a6bd848c8b89fef61deb8ce97d61e24279ea1b56a31b80bba96d8888224bf0b1b3f7c78f6a514112fba34de9a4fd1532a7d0745605b7
+EBUILD gnome-control-center-3.24.3.ebuild 5168 SHA256 d9de6c73600818e29884106c5bb1ada2965dcc0fb9acb53b7d79b74d5e2b1212 SHA512 bdfdfc6c449ed0f333c523a648c9c4bdabaf58eeabddf303cd75a3d9114d3827483dba90480f548e63e6b55d204e420bb2e9549e4107dc4367d7adc8b633abec WHIRLPOOL 1dba8b0c428d7a3dd47b4af9ff042e3d8eeb8a3a227c210832bc6a070bbe870d1bae099840e50e3960e9dac51651c12b5e35b16d49932c5575c48c20636c5e85
+MISC ChangeLog 8967 SHA256 9e300ae898549cdf9392349486d15993b508ed96282285ff5c123953172a2e57 SHA512 710c2de6027e881b07940e180fef6ee1456c709c5326198c85624562bc46e2cecae98d36971a143659e1a9fd033301093f90330f99e9472578f50cf7d7ff8492 WHIRLPOOL 144d323773bd14b4435c1ed9fabc07d94bd1a0113f4496e2eeaa00fd8b8d715f8ac2ef6e082f2f99345b8a9586c642719bb42cd9484e473a7afacb7c7bf373b7
+MISC ChangeLog-2015 73186 SHA256 244a99f3d136afed135c7a5d00c2b359988e38741304bbc12f77c5781117ac9b SHA512 4ec762a78b3eddc6be09ec0ba6ea70a5a90757e163d0f163a1386d1ae8cae803010d3b56fdcbacf2c0767eba53e20965ca691ae1d15073485e717b1a5b45220d WHIRLPOOL ba05cd7c3df70c7951c6cbb9cd546f7aa10a082498718690e8c0347c70df3d069ea0db6b6c162193069947754d18ac366778c6fb664a9e5aeb2de3014bd7b0ed
+MISC metadata.xml 592 SHA256 5974a212907bf040c4516d4b899a4c7f59b3f6236b00afdf3a294c8a7677bc68 SHA512 af75d12dbd91e798b6f81933f5e6cbb73aa0a81858ec711e88e79c2a4a239dbefa9da0375bf01f2614b5098af6a883b5baf27f2f74fc166838ab00e00108b104 WHIRLPOOL 3546d2e3e6e7c2cfd60dc7be811f6ca95e25f8dd6113bd906fe33a431d233389141039e2768deec2e56a9d4ebcf78fd84f7d534beec99ecca117d140eca89260
diff --git a/gnome-base/gnome-control-center/files/3.22.2-fix-build-without-wayland.patch b/gnome-base/gnome-control-center/files/3.22.2-fix-build-without-wayland.patch
new file mode 100644
index 000000000000..0895a743a715
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.22.2-fix-build-without-wayland.patch
@@ -0,0 +1,35 @@
+From 4825881b129bdde0eaa5419ece6198ebda420825 Mon Sep 17 00:00:00 2001
+From: Ting-Wei Lan <lantw@src.gnome.org>
+Date: Thu, 10 Nov 2016 22:27:11 +0800
+Subject: [PATCH 1/2] info: Fix build when Wayland is disabled
+
+https://bugzilla.gnome.org/show_bug.cgi?id=774324
+---
+ panels/info/cc-info-panel.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/panels/info/cc-info-panel.c b/panels/info/cc-info-panel.c
+index 4584766..1d596a3 100644
+--- a/panels/info/cc-info-panel.c
++++ b/panels/info/cc-info-panel.c
+@@ -351,8 +351,15 @@ get_graphics_data (void)
+ display = gdk_display_get_default ();
+
+ #if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WAYLAND)
+- if (GDK_IS_X11_DISPLAY (display) ||
+- GDK_IS_WAYLAND_DISPLAY (display))
++ gboolean x11_or_wayland = FALSE;
++#ifdef GDK_WINDOWING_X11
++ x11_or_wayland = GDK_IS_X11_DISPLAY (display);
++#endif
++#ifdef GDK_WINDOWING_WAYLAND
++ x11_or_wayland = x11_or_wayland || GDK_IS_WAYLAND_DISPLAY (display);
++#endif
++
++ if (x11_or_wayland)
+ {
+ char *discrete_renderer = NULL;
+ char *renderer;
+--
+2.10.1
+
diff --git a/gnome-base/gnome-control-center/files/3.22.2-fix-dual-gpu-crash.patch b/gnome-base/gnome-control-center/files/3.22.2-fix-dual-gpu-crash.patch
new file mode 100644
index 000000000000..a390477a4247
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.22.2-fix-dual-gpu-crash.patch
@@ -0,0 +1,32 @@
+From 97e4d87ae8a123d5b1711ddbaba6bc0d3a0a39a8 Mon Sep 17 00:00:00 2001
+From: Ondrej Holy <oholy@redhat.com>
+Date: Mon, 5 Dec 2016 10:15:12 +0100
+Subject: [PATCH 2/2] info: Do not crash if Renderer is not set by
+ SessionManager
+
+This regression has been introduced by commit 52da4da. The
+info panel crashes if prettify_info() returns NULL. This happens
+if Renderer property from SessionManager is empty.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=774240
+---
+ panels/info/info-cleanup.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/panels/info/info-cleanup.c b/panels/info/info-cleanup.c
+index 20243ec..bb47493 100644
+--- a/panels/info/info-cleanup.c
++++ b/panels/info/info-cleanup.c
+@@ -99,6 +99,9 @@ remove_duplicate_whitespace (const char *old)
+ GRegex *re;
+ GError *error;
+
++ if (old == NULL)
++ return NULL;
++
+ error = NULL;
+ re = g_regex_new ("[ \t\n\r]+", G_REGEX_MULTILINE, 0, &error);
+ if (re == NULL)
+--
+2.10.1
+
diff --git a/gnome-base/gnome-control-center/files/3.24.2-fix-without-gdkwayland.patch b/gnome-base/gnome-control-center/files/3.24.2-fix-without-gdkwayland.patch
new file mode 100644
index 000000000000..0d41cca4704d
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.24.2-fix-without-gdkwayland.patch
@@ -0,0 +1,47 @@
+From 13437b364fe56ffaaa421b8396ba761a2e0cc13d Mon Sep 17 00:00:00 2001
+From: Mart Raudsepp <leio@gentoo.org>
+Date: Sat, 15 Jul 2017 06:22:16 +0300
+Subject: [PATCH] common: Add missing GDK_WINDOWING_WAYLAND guards for
+ gsd_udev_device_manager_lookup_device
+
+commit 8f9259ac06db added a gdkwayland specific lookup_device implementation, guard it
+with compile-time GDK_WINDOWING_WAYLAND as other places are.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=780544
+---
+ panels/common/gsd-device-manager-udev.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/panels/common/gsd-device-manager-udev.c b/panels/common/gsd-device-manager-udev.c
+index fdda02a..5dc4447 100644
+--- a/panels/common/gsd-device-manager-udev.c
++++ b/panels/common/gsd-device-manager-udev.c
+@@ -24,7 +24,9 @@
+ #include <string.h>
+ #include <gudev/gudev.h>
+
++#ifdef GDK_WINDOWING_WAYLAND
+ #include <gdk/gdkwayland.h>
++#endif
+ #include "gsd-device-manager-udev.h"
+
+ struct _GsdUdevDeviceManager
+@@ -227,6 +229,7 @@ static GsdDevice *
+ gsd_udev_device_manager_lookup_device (GsdDeviceManager *manager,
+ GdkDevice *gdk_device)
+ {
++#ifdef GDK_WINDOWING_WAYLAND
+ const gchar *node_path;
+ GHashTableIter iter;
+ GsdDevice *device;
+@@ -243,6 +246,7 @@ gsd_udev_device_manager_lookup_device (GsdDeviceManager *manager,
+ return device;
+ }
+ }
++#endif
+
+ return NULL;
+ }
+--
+2.10.2
+
diff --git a/gnome-base/gnome-control-center/files/3.24.2-gentoo-paths.patch b/gnome-base/gnome-control-center/files/3.24.2-gentoo-paths.patch
new file mode 100644
index 000000000000..1c7f92783780
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.24.2-gentoo-paths.patch
@@ -0,0 +1,107 @@
+From 522dcaf9de0378394c4558961da99ddf0b8b87e7 Mon Sep 17 00:00:00 2001
+From: Timo Tambet <ttambet@gmail.com>
+Date: Sun, 26 Feb 2017 01:04:05 +0200
+Subject: [PATCH 4/5] Fix some absolute paths to be appropriate for Gentoo
+
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+Signed-off-by: Alexandre Rostovtsev <tetromino@gentoo.org>
+[Updated for 3.23.90; printer panel /usr/share path went away with print testpage button]
+Signed-off-by: Timo Tambet <ttambet@gmail.com>
+---
+ panels/datetime/Makefile.am | 1 +
+ panels/datetime/test-endianess.c | 4 ++--
+ panels/datetime/test-timezone.c | 2 +-
+ panels/datetime/tz.h | 4 ++--
+ panels/printers/Makefile.am | 3 +++
+ panels/printers/pp-host.c | 2 +-
+ 6 files changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/panels/datetime/Makefile.am b/panels/datetime/Makefile.am
+index a003f0b..c43062e 100644
+--- a/panels/datetime/Makefile.am
++++ b/panels/datetime/Makefile.am
+@@ -23,6 +23,7 @@ AM_CPPFLAGS = \
+ $(DATETIME_PANEL_CFLAGS) \
+ -DGNOMELOCALEDIR="\"$(datadir)/locale\"" \
+ -DGNOMECC_DATA_DIR="\"$(pkgdatadir)\"" \
++ -DREALDATADIR="\"$(datadir)\"" \
+ $(NULL)
+
+ # test-timezone is still too noisy
+diff --git a/panels/datetime/test-endianess.c b/panels/datetime/test-endianess.c
+index 06b2613..eb52bb6 100644
+--- a/panels/datetime/test-endianess.c
++++ b/panels/datetime/test-endianess.c
+@@ -26,11 +26,11 @@ test_endianess (void)
+ GDir *dir;
+ const char *name;
+
+- dir = g_dir_open ("/usr/share/i18n/locales/", 0, NULL);
++ dir = g_dir_open (REALDATADIR "/i18n/locales/", 0, NULL);
+ if (dir == NULL) {
+ /* Try with /usr/share/locale/
+ * https://bugzilla.gnome.org/show_bug.cgi?id=646780 */
+- dir = g_dir_open ("/usr/share/locale/", 0, NULL);
++ dir = g_dir_open (REALDATADIR "/locale/", 0, NULL);
+ if (dir == NULL) {
+ g_assert_not_reached ();
+ }
+diff --git a/panels/datetime/test-timezone.c b/panels/datetime/test-timezone.c
+index db5c030..7ef5cef 100644
+--- a/panels/datetime/test-timezone.c
++++ b/panels/datetime/test-timezone.c
+@@ -2,7 +2,7 @@
+ #include <gtk/gtk.h>
+ #include "cc-timezone-map.h"
+
+-#define TZ_DIR "/usr/share/zoneinfo/"
++#define TZ_DIR REALDATADIR "/zoneinfo/"
+
+ static GList *
+ get_timezone_list (GList *tzs,
+diff --git a/panels/datetime/tz.h b/panels/datetime/tz.h
+index 93905b3..1ba918c 100644
+--- a/panels/datetime/tz.h
++++ b/panels/datetime/tz.h
+@@ -28,9 +28,9 @@
+ #include <glib.h>
+
+ #ifndef __sun
+-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
++# define TZ_DATA_FILE REALDATADIR "/zoneinfo/zone.tab"
+ #else
+-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
++# define TZ_DATA_FILE REALDATADIR "/lib/zoneinfo/tab/zone_sun.tab"
+ #endif
+
+ typedef struct _TzDB TzDB;
+diff --git a/panels/printers/Makefile.am b/panels/printers/Makefile.am
+index 575cda3..d5da0bf 100644
+--- a/panels/printers/Makefile.am
++++ b/panels/printers/Makefile.am
+@@ -9,6 +9,9 @@ AM_CPPFLAGS = \
+ -I$(top_srcdir)/shell/ \
+ -DGNOMELOCALEDIR="\"$(datadir)/locale\"" \
+ -DTEST_SRCDIR=\""$(srcdir)/"\" \
++ -DREALDATADIR="\"$(datadir)\"" \
++ -DPREFIX="\"$(prefix)\"" \
++ -DLIBEXECDIR="\"$(libexecdir)\"" \
+ $(NULL)
+
+ noinst_LTLIBRARIES = libprinters.la
+diff --git a/panels/printers/pp-host.c b/panels/printers/pp-host.c
+index 8af77e9..bb6df78 100644
+--- a/panels/printers/pp-host.c
++++ b/panels/printers/pp-host.c
+@@ -267,7 +267,7 @@ _pp_host_get_snmp_devices_thread (GSimpleAsyncResult *res,
+ data->devices->devices = NULL;
+
+ argv = g_new0 (gchar *, 3);
+- argv[0] = g_strdup ("/usr/lib/cups/backend/snmp");
++ argv[0] = g_strdup (LIBEXECDIR "/cups/backend/snmp");
+ argv[1] = g_strdup (priv->hostname);
+
+ /* Use SNMP to get printer's informations */
+--
+2.10.2
+
diff --git a/gnome-base/gnome-control-center/files/3.24.2-optional-cups.patch b/gnome-base/gnome-control-center/files/3.24.2-optional-cups.patch
new file mode 100644
index 000000000000..c634d77a53cb
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.24.2-optional-cups.patch
@@ -0,0 +1,196 @@
+From f76cc5a97dfa94b03abb878767c8dc15b4461685 Mon Sep 17 00:00:00 2001
+From: Mart Raudsepp <leio@gentoo.org>
+Date: Fri, 14 Jul 2017 05:07:42 +0300
+Subject: [PATCH 5/5] Make printers panel optional
+
+---
+ configure.ac | 96 ++++++++++++++++++++++++++++++-------------------
+ panels/Makefile.am | 7 ++--
+ shell/Makefile.am | 7 ++--
+ shell/cc-panel-loader.c | 4 +++
+ 4 files changed, 73 insertions(+), 41 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4af24d0..7629621 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -189,9 +189,59 @@ AS_IF([test "$enable_color" != "no"],
+ ])
+ AM_CONDITIONAL(BUILD_COLOR, test "$build_color" = "yes")
+
+-PKG_CHECK_MODULES(PRINTERS_PANEL, $COMMON_MODULES
+- polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION
+- smbclient)
++# Check for CUPS 1.4 or newer
++build_printers=no
++AC_PROG_SED
++
++AC_ARG_ENABLE([cups],
++ AS_HELP_STRING([--disable-cups], [disable printer management panel]),
++ [],
++ enable_cups=yes
++)
++
++AS_IF([test "x$enable_cups" != "xno"],
++ [
++ PKG_CHECK_MODULES(PRINTERS_PANEL, $COMMON_MODULES
++ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION
++ smbclient)
++
++ AC_PATH_PROG(CUPS_CONFIG, cups-config)
++
++ if test x$CUPS_CONFIG = x; then
++ AC_MSG_ERROR([cups-config not found])
++ fi
++
++ CUPS_API_VERSION=`$CUPS_CONFIG --api-version`
++ CUPS_API_MAJOR=`echo $ECHO_N $CUPS_API_VERSION | cut -d . -f 1`
++ CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | cut -d . -f 2`
++
++ AC_CHECK_HEADERS([cups/cups.h cups/http.h cups/ipp.h cups/ppd.h],,
++ AC_MSG_ERROR([CUPS headers not found]))
++
++ if ! test $CUPS_API_MAJOR -gt 1 -o \
++ $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 4 ; then
++ AC_MSG_ERROR([CUPS 1.4 or newer not found])
++ fi
++
++ # https://bugzilla.gnome.org/show_bug.cgi?id=696766
++ CUPS_CPPFLAGS=""
++ if test $CUPS_API_MAJOR -gt 1 -o \
++ $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 6 ; then
++ CUPS_CPPFLAGS=-D_PPD_DEPRECATED=""
++ fi
++
++ CUPS_CFLAGS=`$CUPS_CONFIG --cflags | $SED -e 's/-O\w*//g' -e 's/-m\w*//g'`
++ CUPS_LIBS=`$CUPS_CONFIG --libs`
++
++ AC_SUBST(CUPS_CPPFLAGS)
++ AC_SUBST(CUPS_CFLAGS)
++ AC_SUBST(CUPS_LIBS)
++ build_printers=yes
++ AC_DEFINE(BUILD_PRINTERS, 1, [Define to 1 to build the Printers panel])
++ ]
++)
++AM_CONDITIONAL(BUILD_PRINTERS, test "x$build_printers" = "xyes")
++
+ PKG_CHECK_MODULES(PRIVACY_PANEL, $COMMON_MODULES)
+ PKG_CHECK_MODULES(REGION_PANEL, $COMMON_MODULES
+ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION
+@@ -334,40 +384,6 @@ AS_IF([test "$enable_bluetooth" = "yes"],
+ ])
+ AM_CONDITIONAL(BUILD_BLUETOOTH, [test "$have_bluetooth" = "yes"])
+
+-# Check for CUPS 1.4 or newer
+-AC_PROG_SED
+-
+-AC_PATH_PROG(CUPS_CONFIG, cups-config)
+-
+-if test x$CUPS_CONFIG = x; then
+- AC_MSG_ERROR([cups-config not found])
+-fi
+-
+-CUPS_API_VERSION=`$CUPS_CONFIG --api-version`
+-CUPS_API_MAJOR=`echo $ECHO_N $CUPS_API_VERSION | cut -d . -f 1`
+-CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | cut -d . -f 2`
+-
+-AC_CHECK_HEADERS([cups/cups.h cups/http.h cups/ipp.h cups/ppd.h],,
+- AC_MSG_ERROR([CUPS headers not found]))
+-
+-if ! test $CUPS_API_MAJOR -gt 1 -o \
+- $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 4 ; then
+- AC_MSG_ERROR([CUPS 1.4 or newer not found])
+-fi
+-
+-# https://bugzilla.gnome.org/show_bug.cgi?id=696766
+-CUPS_CPPFLAGS=""
+-if test $CUPS_API_MAJOR -gt 1 -o \
+- $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 6 ; then
+- CUPS_CPPFLAGS=-D_PPD_DEPRECATED=""
+-fi
+-
+-CUPS_CFLAGS=`$CUPS_CONFIG --cflags | $SED -e 's/-O\w*//g' -e 's/-m\w*//g'`
+-CUPS_LIBS=`$CUPS_CONFIG --libs`
+-AC_SUBST(CUPS_CPPFLAGS)
+-AC_SUBST(CUPS_CFLAGS)
+-AC_SUBST(CUPS_LIBS)
+-
+ # Optional dependency for the user accounts panel
+ AC_ARG_WITH([cheese],
+ AS_HELP_STRING([--with-cheese], [enable cheese webcam support]),,
+@@ -671,6 +687,12 @@ else
+ AC_MSG_NOTICE([ Color panel disabled])
+ fi
+
++if test "x$build_printers" = "xyes"; then
++ AC_MSG_NOTICE([** CUPS (Printers panel)])
++else
++ AC_MSG_NOTICE([ Printers panel disabled])
++fi
++
+
+ if test "x$have_cheese" = "xyes"; then
+ AC_MSG_NOTICE([** Cheese (Users panel webcam support)])
+diff --git a/panels/Makefile.am b/panels/Makefile.am
+index 2806c45..b68561e 100644
+--- a/panels/Makefile.am
++++ b/panels/Makefile.am
+@@ -14,8 +14,11 @@ SUBDIRS= \
+ datetime \
+ search \
+ privacy \
+- sharing \
+- printers
++ sharing
++
++if BUILD_PRINTERS
++SUBDIRS += printers
++endif
+
+ if BUILD_COLOR
+ SUBDIRS += color
+diff --git a/shell/Makefile.am b/shell/Makefile.am
+index f3e49c7..af782ea 100644
+--- a/shell/Makefile.am
++++ b/shell/Makefile.am
+@@ -91,8 +91,11 @@ gnome_control_center_LDADD = \
+ $(top_builddir)/panels/sharing/libsharing.la \
+ $(top_builddir)/panels/sound/libsound.la \
+ $(top_builddir)/panels/universal-access/libuniversal-access.la \
+- $(top_builddir)/panels/user-accounts/libuser-accounts.la \
+- $(top_builddir)/panels/printers/libprinters.la
++ $(top_builddir)/panels/user-accounts/libuser-accounts.la
++
++if BUILD_PRINTERS
++gnome_control_center_LDADD += $(top_builddir)/panels/printers/libprinters.la
++endif
+
+ if BUILD_WACOM
+ gnome_control_center_LDADD += $(top_builddir)/panels/wacom/libwacom-properties.la
+diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c
+index 9104b45..a713079 100644
+--- a/shell/cc-panel-loader.c
++++ b/shell/cc-panel-loader.c
+@@ -49,7 +49,9 @@ extern GType cc_notifications_panel_get_type (void);
+ extern GType cc_goa_panel_get_type (void);
+ #endif /* BUILD_ONLINE_ACCOUNTS */
+ extern GType cc_power_panel_get_type (void);
++#ifdef BUILD_PRINTERS
+ extern GType cc_printers_panel_get_type (void);
++#endif /* BUILD_PRINTERS */
+ extern GType cc_privacy_panel_get_type (void);
+ extern GType cc_region_panel_get_type (void);
+ extern GType cc_search_panel_get_type (void);
+@@ -95,7 +97,9 @@ static struct {
+ PANEL_TYPE("online-accounts", cc_goa_panel_get_type ),
+ #endif
+ PANEL_TYPE("power", cc_power_panel_get_type ),
++#ifdef BUILD_PRINTERS
+ PANEL_TYPE("printers", cc_printers_panel_get_type ),
++#endif
+ PANEL_TYPE("privacy", cc_privacy_panel_get_type ),
+ PANEL_TYPE("region", cc_region_panel_get_type ),
+ PANEL_TYPE("search", cc_search_panel_get_type ),
+--
+2.10.2
+
diff --git a/gnome-base/gnome-control-center/files/3.24.2-optional-networkmanager.patch b/gnome-base/gnome-control-center/files/3.24.2-optional-networkmanager.patch
new file mode 100644
index 000000000000..e4efa1c7c1cc
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.24.2-optional-networkmanager.patch
@@ -0,0 +1,69 @@
+From c19cbe68d5a4a1363b320debfc6b3e93dbb7e8ac Mon Sep 17 00:00:00 2001
+From: Timo Tambet <ttambet@gmail.com>
+Date: Sun, 26 Feb 2017 00:37:06 +0200
+Subject: [PATCH 3/5] Make network panel optional
+
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+[Updated for 3.23.90]
+Signed-off-by: Timo Tambet <ttambet@gmail.com>
+---
+ configure.ac | 43 +++++++++++++++++++++++++------------------
+ 1 file changed, 25 insertions(+), 18 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b47dbc8..4af24d0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -275,24 +275,31 @@ linux_usb_error_or_warn()
+ esac
+ }
+
+-PKG_CHECK_MODULES(NETWORK_MANAGER,
+- libnm >= $NETWORK_MANAGER_REQUIRED_VERSION
+- libnma >= $NETWORK_MANAGER_APPLET_REQUIRED_VERSION
+- mm-glib >= $MODEM_MANAGER_REQUIRED_VERSION,
+- [have_networkmanager=yes], have_networkmanager=no)
+-if test "x$have_networkmanager" = xno ; then
+- linux_error_or_warn "*** Network panel will not be built (NetworkManager or ModemManager not found) ***"
+-else
+- AC_DEFINE(BUILD_NETWORK, 1, [Define to 1 to build the Network panel])
+-fi
+-AM_CONDITIONAL(BUILD_NETWORK, [test x$have_networkmanager = xyes])
+-if test x${have_networkmanager} = xyes; then
+- AC_DEFINE(HAVE_NETWORK_MANAGER, 1, [Define to 1 if NetworkManager is available])
+- NM_VPN_CONFIG_DIR=`$PKG_CONFIG --variable configdir NetworkManager`/VPN
+- NM_VPN_MODULE_DIR=`$PKG_CONFIG --variable plugindir NetworkManager`
+- AC_SUBST(NM_VPN_CONFIG_DIR)
+- AC_SUBST(NM_VPN_MODULE_DIR)
+-fi
++AC_ARG_ENABLE([networkmanager],
++ AS_HELP_STRING([--disable-networkmanager], [Disable network panel]),
++ [],
++ [enable_networkmanager=auto])
++AS_IF([test "$enable_networkmanager" != "no"],
++ [
++ PKG_CHECK_MODULES(NETWORK_MANAGER,
++ libnm >= $NETWORK_MANAGER_REQUIRED_VERSION
++ libnma >= $NETWORK_MANAGER_APPLET_REQUIRED_VERSION
++ mm-glib >= $MODEM_MANAGER_REQUIRED_VERSION,
++ [have_networkmanager=yes], [have_networkmanager=no])
++
++ AS_IF([test "$have_networkmanager" = "no"],
++ [
++ AC_MSG_WARN([*** Network panel will not be built (NetworkManager or ModemManager not found) ***])
++ ], [
++ AC_DEFINE(BUILD_NETWORK, 1, [Define to 1 to build the Network panel])
++ AC_DEFINE(HAVE_NETWORK_MANAGER, 1, [Define to 1 if NetworkManager is available])
++ NM_VPN_CONFIG_DIR=`$PKG_CONFIG --variable configdir NetworkManager`/VPN
++ NM_VPN_MODULE_DIR=`$PKG_CONFIG --variable plugindir NetworkManager`
++ AC_SUBST([NM_VPN_CONFIG_DIR])
++ AC_SUBST([NM_VPN_MODULE_DIR])
++ ])
++ ])
++AM_CONDITIONAL(BUILD_NETWORK, [test "$have_networkmanager" = "yes"])
+
+ # Check for power panel
+ if test x${have_networkmanager} = xyes; then
+--
+2.10.2
+
diff --git a/gnome-base/gnome-control-center/files/3.24.2-optional-wayland.patch b/gnome-base/gnome-control-center/files/3.24.2-optional-wayland.patch
new file mode 100644
index 000000000000..21d4a45b8f16
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.24.2-optional-wayland.patch
@@ -0,0 +1,46 @@
+From e18ff93353a432867e373e549206928d3ced04cc Mon Sep 17 00:00:00 2001
+From: Ole Reifschneider <tranquility@gentoo.org>
+Date: Sat, 25 Apr 2015 22:22:09 +0200
+Subject: [PATCH 2/5] Make wayland support optional
+
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+Signed-off-by: Mart Raudsepp <leio@gentoo.org>
+---
+ configure.ac | 21 +++++++++++++++------
+ 1 file changed, 15 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9566fb7..b47dbc8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -227,12 +227,21 @@ if test "x$have_udev" = xyes ; then
+ fi
+ AM_CONDITIONAL(HAVE_UDEV, [test "x$have_udev" = "xyes"])
+
+-PKG_CHECK_MODULES(WAYLAND, gdk-wayland-3.0, have_wayland=yes, have_wayland=no)
+-if test "x$have_wayland" = xyes ; then
+- if test "x$have_udev" != xyes ; then
+- AC_MSG_ERROR([udev is required for Wayland support])
+- fi
+-fi
++AC_ARG_ENABLE(
++ [wayland],
++ AS_HELP_STRING([--disable-wayland], [disable wayland support]),
++ [],
++ enable_wayland=auto
++)
++
++AS_IF([test "$enable_wayland" != "no"],
++ [
++ AS_IF([test "x$have_udev" = xno],
++ [AC_MSG_ERROR([udev is required for Wayland support])],
++ [AC_DEFINE(HAVE_UDEV, 1, [System has udev])])
++
++ PKG_CHECK_MODULES(WAYLAND, gdk-wayland-3.0)
++])
+
+ # Panels that must be built on Linux systems
+ linux_error_or_warn()
+--
+2.10.2
+
diff --git a/gnome-base/gnome-control-center/files/3.24.2-optional.patch b/gnome-base/gnome-control-center/files/3.24.2-optional.patch
new file mode 100644
index 000000000000..54e3f65f568e
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.24.2-optional.patch
@@ -0,0 +1,556 @@
+From c3b0d1123cae5a895452d2a8d75e663e76cbf5bd Mon Sep 17 00:00:00 2001
+From: Timo Tambet <ttambet@gmail.com>
+Date: Sat, 25 Feb 2017 23:29:10 +0200
+Subject: [PATCH 1/5] Make bluetooth/colord/goa/kerberos/wacom optional
+
+Upstream is not interested in any part of this patch:
+
+https://bugzilla.gnome.org/686840
+https://bugzilla.gnome.org/697478
+https://bugzilla.gnome.org/700145
+
+Signed-off-by: Ole Reifschneider <tranquility@gentoo.org>
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+Signed-off-by: Alexandre Rostovtsev <tetromino@gentoo.org>
+---
+ configure.ac | 171 ++++++++++++++++++++++++--------
+ panels/Makefile.am | 10 +-
+ panels/background/Makefile.am | 8 +-
+ panels/background/bg-pictures-source.c | 20 ++++
+ panels/power/cc-power-panel.c | 2 +-
+ panels/user-accounts/um-realm-manager.c | 9 ++
+ shell/Makefile.am | 10 +-
+ shell/cc-panel-loader.c | 8 ++
+ 8 files changed, 188 insertions(+), 50 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 11fc9fc..9566fb7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -120,10 +120,6 @@ LIBGD_INIT([_view-common static])
+ PKG_CHECK_MODULES(LIBLANGUAGE, $COMMON_MODULES gnome-desktop-3.0 fontconfig)
+ PKG_CHECK_MODULES(LIBSHORTCUTS, $COMMON_MODULES x11)
+ PKG_CHECK_MODULES(SHELL, $COMMON_MODULES x11 polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION)
+-PKG_CHECK_MODULES(BACKGROUND_PANEL, $COMMON_MODULES cairo-gobject libxml-2.0 gnome-desktop-3.0
+- gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED_VERSION
+- goa-1.0 >= $GOA_REQUIRED_VERSION
+- grilo-0.3 >= $GRILO_REQUIRED_VERSION)
+ PKG_CHECK_MODULES(DATETIME_PANEL, $COMMON_MODULES
+ gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
+ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION
+@@ -141,12 +137,58 @@ PKG_CHECK_MODULES(MOUSE_PANEL, $COMMON_MODULES xi >= 1.2
+ PKG_CHECK_MODULES(NETWORK_PANEL, $COMMON_MODULES gmodule-2.0
+ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION)
+ PKG_CHECK_MODULES(NOTIFICATIONS_PANEL, $COMMON_MODULES)
+-PKG_CHECK_MODULES(ONLINE_ACCOUNTS_PANEL, $COMMON_MODULES goa-1.0 goa-backend-1.0 >= $GOA_REQUIRED_VERSION)
+-PKG_CHECK_MODULES(COLOR_PANEL, $COMMON_MODULES
+- colord >= $COLORD_REQUIRED_VERSION
+- colord-gtk >= $COLORD_GTK_REQUIRED_VERSION
+- libsoup-2.4
+- gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION)
++
++build_online_accounts=no
++background_online_accounts=
++AC_ARG_ENABLE([goa],
++ AS_HELP_STRING([--disable-goa],
++ [disable online accounts management panel]),
++ [],
++ [enable_goa=auto])
++
++AS_IF([test "$enable_goa" != "no"],
++ [PKG_CHECK_MODULES([ONLINE_ACCOUNTS_PANEL],
++ [$COMMON_MODULES goa-1.0 goa-backend-1.0 >= $GOA_REQUIRED_VERSION],
++ [
++ AC_DEFINE(BUILD_ONLINE_ACCOUNTS, 1, [Define to 1 to build the Online Accounts panel])
++ build_online_accounts=yes
++ background_goa_dependencies="goa-1.0 >= $GOA_REQUIRED_VERSION grilo-0.3 >= $GRILO_REQUIRED_VERSION"
++ ], [
++ AS_IF([test "$enable_goa" = "yes"],
++ [AC_MSG_ERROR([gnome-online-accounts support requested but not found])])
++ ])
++ ])
++AM_CONDITIONAL(BUILD_ONLINE_ACCOUNTS, test "$build_online_accounts" = "yes")
++
++PKG_CHECK_MODULES(BACKGROUND_PANEL, $COMMON_MODULES cairo-gobject libxml-2.0 gnome-desktop-3.0
++ gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED_VERSION
++ $background_goa_dependencies)
++
++build_color=no
++AC_ARG_ENABLE([color],
++ AS_HELP_STRING([--disable-color],
++ [disable color management panel]),
++ [],
++ [enable_color=auto])
++
++AS_IF([test "$enable_color" != "no"],
++ [PKG_CHECK_MODULES([COLOR_PANEL],
++ [
++ $COMMON_MODULES
++ colord >= $COLORD_REQUIRED_VERSION
++ colord-gtk >= $COLORD_GTK_REQUIRED_VERSION
++ libsoup-2.4
++ gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
++ ], [
++ AC_DEFINE(BUILD_COLOR, 1, [Define to 1 to build the Color panel])
++ build_color=yes
++ ], [
++ AS_IF([test "$enable_color" = "yes"],
++ [AC_MSG_ERROR([colord support requested but not found])])
++ ])
++ ])
++AM_CONDITIONAL(BUILD_COLOR, test "$build_color" = "yes")
++
+ PKG_CHECK_MODULES(PRINTERS_PANEL, $COMMON_MODULES
+ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION
+ smbclient)
+@@ -254,17 +296,27 @@ else
+ fi
+
+ # Check for gnome-bluetooth
+-PKG_CHECK_MODULES(BLUETOOTH, $COMMON_MODULES gnome-bluetooth-1.0 >= 3.18.2,
+- [have_bluetooth=yes], have_bluetooth=no)
+-if test "x$have_bluetooth" = xyes ; then
+- AC_DEFINE(BUILD_BLUETOOTH, 1, [Define to 1 to build the Bluetooth panel])
+-else
+- linux_usb_error_or_warn "*** Bluetooth panel will not be built"
+-fi
+-AM_CONDITIONAL(BUILD_BLUETOOTH, [test x$have_bluetooth = xyes])
+-if test x${have_bluetooth} = xyes; then
+- AC_DEFINE(HAVE_BLUETOOTH, 1, [Define to 1 if bluetooth support is available])
+-fi
++have_bluetooth=no
++AC_ARG_ENABLE([bluetooth],
++ AS_HELP_STRING([--disable-bluetooth],
++ [disable bluetooth management panel]),
++ [],
++ [enable_bluetooth=auto])
++
++AS_IF([test "$enable_bluetooth" = "yes"],
++ [PKG_CHECK_MODULES([BLUETOOTH],
++ [$COMMON_MODULES gnome-bluetooth-1.0 >= 3.18.2],
++ [
++ AC_DEFINE(BUILD_BLUETOOTH, 1, [Define to 1 to build the Bluetooth panel])
++ have_bluetooth=yes
++ ],
++ [
++ have_bluetooth=no
++ AS_IF([test "$enable_bluetooth" = "yes"],
++ [AC_MSG_ERROR([bluetooth support requested but not found])])
++ ])
++ ])
++AM_CONDITIONAL(BUILD_BLUETOOTH, [test "$have_bluetooth" = "yes"])
+
+ # Check for CUPS 1.4 or newer
+ AC_PROG_SED
+@@ -319,32 +371,52 @@ fi
+ AM_CONDITIONAL(BUILD_CHEESE, test x${have_cheese} = xyes)
+
+ # Wacom
+-PKG_CHECK_MODULES(WACOM_PANEL, $COMMON_MODULES
+- gnome-settings-daemon >= $GSD_REQUIRED_VERSION
+- xi >= 1.2 x11 libwacom >= $LIBWACOM_REQUIRED_VERSION
+- gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
+- clutter-gtk-1.0
+- clutter-1.0 >= $CLUTTER_REQUIRED_VERSION,
+- [have_wacom=yes], [have_wacom=no])
++AC_ARG_ENABLE([wacom],
++ AS_HELP_STRING([--disable-wacom],
++ [disable wacom management panel]),
++ [],
++ [enable_wacom=yes])
++AS_IF([test "x$enable_wacom" = "xyes"],
++ [PKG_CHECK_MODULES([WACOM_PANEL],
++ [
++ $COMMON_MODULES
++ gnome-settings-daemon >= $GSD_REQUIRED_VERSION
++ xi >= 1.2 x11 libwacom >= $LIBWACOM_REQUIRED_VERSION
++ gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
++ clutter-gtk-1.0
++ clutter-1.0 >= $CLUTTER_REQUIRED_VERSION
++ ], [
++ have_wacom=yes
++ AC_DEFINE(BUILD_WACOM, 1, [Define to 1 to build the Wacom panel])
++ AC_DEFINE(HAVE_WACOM, 1, [Define to 1 is Wacom is supportted])
++ ], [
++ have_wacom=no
++ AC_MSG_ERROR([wacom support requested but not found])
++ ])
++ ])
+
+-if test "x$have_wacom" = xyes ; then
+- AC_DEFINE(BUILD_WACOM, 1, [Define to 1 to build the Wacom panel])
+- AC_DEFINE(HAVE_WACOM, 1, [Define to 1 is Wacom is supportted])
+-else
+- linux_usb_error_or_warn "*** Wacom panel will not be built"
+-fi
+ AM_CONDITIONAL(BUILD_WACOM, [test x${have_wacom} = xyes])
+
+ # Kerberos kerberos support
+-AC_PATH_PROG(KRB5_CONFIG, krb5-config, no)
+-if test "$KRB5_CONFIG" = "no"; then
+- AC_MSG_ERROR([krb5-config executable not found in your path - should be installed with the kerberos libraries])
+-fi
+-
+-AC_MSG_CHECKING(for krb5 libraries and flags)
+-KRB5_CFLAGS="`$KRB5_CONFIG --cflags`"
+-KRB5_LIBS="`$KRB5_CONFIG --libs`"
+-AC_MSG_RESULT($KRB5_CFLAGS $KRB5_LIBS)
++AC_ARG_ENABLE([kerberos],
++ AS_HELP_STRING([--disable-kerberos],
++ [disable kerberos support (default: enabled)]),
++ [],
++ [enable_kerberos=yes])
++
++AS_IF([test "$enable_kerberos" != "no"],
++ [
++ AC_PATH_PROG(KRB5_CONFIG, krb5-config, no)
++
++ AS_IF([test "$KRB5_CONFIG" = "no"],
++ AC_MSG_ERROR([krb5-config executable not found in your path - should be installed with the kerberos libraries]))
++
++ AC_MSG_CHECKING([for krb5 libraries and flags])
++ KRB5_CFLAGS="`$KRB5_CONFIG --cflags`"
++ KRB5_LIBS="`$KRB5_CONFIG --libs`"
++ AC_MSG_RESULT($KRB5_CFLAGS $KRB5_LIBS)
++ AC_DEFINE(HAVE_KERBEROS, 1, [defined if krb5 is available])
++ ])
+
+ AC_SUBST(KRB5_CFLAGS)
+ AC_SUBST(KRB5_LIBS)
+@@ -576,11 +648,24 @@ if test "x$have_bluetooth" = "xyes"; then
+ else
+ AC_MSG_NOTICE([ Bluetooth panel disabled])
+ fi
++
++if test "x$build_color" = "xyes"; then
++ AC_MSG_NOTICE([** colord (Color panel)])
++else
++ AC_MSG_NOTICE([ Color panel disabled])
++fi
++
++
+ if test "x$have_cheese" = "xyes"; then
+ AC_MSG_NOTICE([** Cheese (Users panel webcam support)])
+ else
+ AC_MSG_NOTICE([ Users panel webcam support disabled])
+ fi
++if test "x$build_online_accounts" = "xyes"; then
++ AC_MSG_NOTICE([** gnome-online-accounts (Online Accounts panel)])
++else
++ AC_MSG_NOTICE([ Online Accounts panel disabled])
++fi
+ if test "x$have_wacom" = "xyes"; then
+ AC_MSG_NOTICE([** wacom (Wacom tablet panel)])
+ else
+diff --git a/panels/Makefile.am b/panels/Makefile.am
+index 507cd2f..2806c45 100644
+--- a/panels/Makefile.am
++++ b/panels/Makefile.am
+@@ -2,11 +2,9 @@ SUBDIRS= \
+ common \
+ background \
+ power \
+- color \
+ display \
+ mouse \
+ notifications \
+- online-accounts \
+ region \
+ info \
+ sound \
+@@ -19,6 +17,10 @@ SUBDIRS= \
+ sharing \
+ printers
+
++if BUILD_COLOR
++SUBDIRS += color
++endif
++
+ if BUILD_WACOM
+ SUBDIRS += wacom
+ endif
+@@ -31,4 +33,8 @@ if BUILD_BLUETOOTH
+ SUBDIRS += bluetooth
+ endif
+
++if BUILD_ONLINE_ACCOUNTS
++SUBDIRS += online-accounts
++endif
++
+ -include $(top_srcdir)/git.mk
+diff --git a/panels/background/Makefile.am b/panels/background/Makefile.am
+index ccb8017..bde4cdf 100644
+--- a/panels/background/Makefile.am
++++ b/panels/background/Makefile.am
+@@ -27,8 +27,6 @@ libbackground_chooser_la_SOURCES = \
+ $(BUILT_SOURCES) \
+ cc-background-chooser-dialog.c \
+ cc-background-chooser-dialog.h \
+- cc-background-grilo-miner.c \
+- cc-background-grilo-miner.h \
+ cc-background-item.c \
+ cc-background-item.h \
+ cc-background-xml.c \
+@@ -42,6 +40,12 @@ libbackground_chooser_la_SOURCES = \
+ bg-colors-source.c \
+ bg-colors-source.h
+
++if BUILD_ONLINE_ACCOUNTS
++libbackground_chooser_la_SOURCES += \
++ cc-background-grilo-miner.c \
++ cc-background-grilo-miner.h
++endif
++
+ libbackground_chooser_la_LIBADD = $(PANEL_LIBS) $(BACKGROUND_PANEL_LIBS)
+
+ libbackground_la_SOURCES = \
+diff --git a/panels/background/bg-pictures-source.c b/panels/background/bg-pictures-source.c
+index a33cee7..408359c 100644
+--- a/panels/background/bg-pictures-source.c
++++ b/panels/background/bg-pictures-source.c
+@@ -23,13 +23,17 @@
+
+ #include "bg-pictures-source.h"
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ #include "cc-background-grilo-miner.h"
++#endif
+ #include "cc-background-item.h"
+
+ #include <string.h>
+ #include <cairo-gobject.h>
+ #include <gio/gio.h>
++#ifdef BUILD_ONLINE_ACCOUNTS
+ #include <grilo.h>
++#endif
+ #include <libgnome-desktop/gnome-desktop-thumbnail.h>
+ #include <gdesktop-enums.h>
+
+@@ -46,7 +50,9 @@ struct _BgPicturesSourcePrivate
+ {
+ GCancellable *cancellable;
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ CcBackgroundGriloMiner *grl_miner;
++#endif
+
+ GnomeDesktopThumbnailFactory *thumb_factory;
+
+@@ -84,7 +90,9 @@ bg_pictures_source_dispose (GObject *object)
+ g_clear_object (&priv->cancellable);
+ }
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ g_clear_object (&priv->grl_miner);
++#endif
+ g_clear_object (&priv->thumb_factory);
+
+ G_OBJECT_CLASS (bg_pictures_source_parent_class)->dispose (object);
+@@ -414,7 +422,11 @@ add_single_file (BgPicturesSource *bg_source,
+ gboolean needs_download;
+ gboolean retval = FALSE;
+ GFile *pictures_dir, *cache_dir;
++#ifdef BUILD_ONLINE_ACCOUNTS
+ GrlMedia *media;
++#else
++ gpointer media = NULL;
++#endif
+
+ /* find png and jpeg files */
+ if (!content_type)
+@@ -473,7 +485,9 @@ add_single_file (BgPicturesSource *bg_source,
+
+ read_file:
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ media = g_object_get_data (G_OBJECT (file), "grl-media");
++#endif
+ if (media == NULL)
+ {
+ g_object_set_data_full (G_OBJECT (file), "item", g_object_ref (item), g_object_unref);
+@@ -556,6 +570,7 @@ add_single_file_from_info (BgPicturesSource *bg_source,
+ return add_single_file (bg_source, file, content_type, mtime, ret_row_ref);
+ }
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ static gboolean
+ add_single_file_from_media (BgPicturesSource *bg_source,
+ GFile *file,
+@@ -580,6 +595,7 @@ add_single_file_from_media (BgPicturesSource *bg_source,
+
+ return add_single_file (bg_source, file, content_type, (guint64) mtime_unix, NULL);
+ }
++#endif /* BUILD_ONLINE_ACCOUNTS */
+
+ gboolean
+ bg_pictures_source_add (BgPicturesSource *bg_source,
+@@ -923,6 +939,7 @@ monitor_path (BgPicturesSource *self,
+ return monitor;
+ }
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ static void
+ media_found_cb (BgPicturesSource *self, GrlMedia *media)
+ {
+@@ -934,6 +951,7 @@ media_found_cb (BgPicturesSource *self, GrlMedia *media)
+ g_object_set_data_full (G_OBJECT (file), "grl-media", g_object_ref (media), g_object_unref);
+ add_single_file_from_media (self, file, media);
+ }
++#endif /* BUILD_ONLINE_ACCOUNTS */
+
+ static void
+ bg_pictures_source_init (BgPicturesSource *self)
+@@ -961,9 +979,11 @@ bg_pictures_source_init (BgPicturesSource *self)
+ priv->cache_dir_monitor = monitor_path (self, cache_path);
+ g_free (cache_path);
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ priv->grl_miner = cc_background_grilo_miner_new ();
+ g_signal_connect_swapped (priv->grl_miner, "media-found", G_CALLBACK (media_found_cb), self);
+ cc_background_grilo_miner_start (priv->grl_miner);
++#endif /* BUILD_ONLINE_ACCOUNTS */
+
+ priv->thumb_factory =
+ gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE);
+diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
+index db4e69a..7677b58 100644
+--- a/panels/power/cc-power-panel.c
++++ b/panels/power/cc-power-panel.c
+@@ -1882,7 +1882,7 @@ add_power_saving_section (CcPowerPanel *self)
+ G_CALLBACK (wifi_switch_changed), self);
+ #endif
+
+-#ifdef HAVE_BLUETOOTH
++#ifdef BUILD_BLUETOOTH
+ priv->bt_rfkill = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
+ G_DBUS_PROXY_FLAGS_NONE,
+ NULL,
+diff --git a/panels/user-accounts/um-realm-manager.c b/panels/user-accounts/um-realm-manager.c
+index 2639148..977dab1 100644
+--- a/panels/user-accounts/um-realm-manager.c
++++ b/panels/user-accounts/um-realm-manager.c
+@@ -22,7 +22,9 @@
+
+ #include "um-realm-manager.h"
+
++#ifdef HAVE_KERBEROS
+ #include <krb5/krb5.h>
++#endif
+
+ #include <glib.h>
+ #include <glib/gi18n.h>
+@@ -698,6 +700,7 @@ login_closure_free (gpointer data)
+ g_slice_free (LoginClosure, login);
+ }
+
++#ifdef HAVE_KERBEROS
+ static krb5_error_code
+ login_perform_kinit (krb5_context k5,
+ const gchar *realm,
+@@ -761,12 +764,14 @@ login_perform_kinit (krb5_context k5,
+
+ return code;
+ }
++#endif /* HAVE_KERBEROS */
+
+ static void
+ kinit_thread_func (GSimpleAsyncResult *async,
+ GObject *object,
+ GCancellable *cancellable)
+ {
++#ifdef HAVE_KERBEROS
+ LoginClosure *login = g_simple_async_result_get_op_res_gpointer (async);
+ krb5_context k5 = NULL;
+ krb5_error_code code;
+@@ -844,6 +849,10 @@ kinit_thread_func (GSimpleAsyncResult *async,
+
+ if (k5)
+ krb5_free_context (k5);
++#else /* HAVE_KERBEROS */
++ g_simple_async_result_set_error (async, UM_REALM_ERROR, UM_REALM_ERROR_GENERIC,
++ _("gnome-control-center was built without kerberos support"));
++#endif
+ }
+
+ void
+diff --git a/shell/Makefile.am b/shell/Makefile.am
+index 6af3199..f3e49c7 100644
+--- a/shell/Makefile.am
++++ b/shell/Makefile.am
+@@ -78,14 +78,12 @@ gnome_control_center_LDADD = \
+ $(top_builddir)/panels/common/liblanguage.la \
+ $(top_builddir)/panels/common/libdevice.la \
+ $(top_builddir)/panels/background/libbackground.la \
+- $(top_builddir)/panels/color/libcolor.la \
+ $(top_builddir)/panels/datetime/libdate_time.la \
+ $(top_builddir)/panels/display/libdisplay.la \
+ $(top_builddir)/panels/info/libinfo.la \
+ $(top_builddir)/panels/keyboard/libkeyboard.la \
+ $(top_builddir)/panels/mouse/libmouse-properties.la \
+ $(top_builddir)/panels/notifications/libnotifications.la \
+- $(top_builddir)/panels/online-accounts/libonline-accounts.la \
+ $(top_builddir)/panels/power/libpower.la \
+ $(top_builddir)/panels/privacy/libprivacy.la \
+ $(top_builddir)/panels/region/libregion.la \
+@@ -108,6 +106,14 @@ if BUILD_BLUETOOTH
+ gnome_control_center_LDADD += $(top_builddir)/panels/bluetooth/libbluetooth.la
+ endif
+
++if BUILD_COLOR
++gnome_control_center_LDADD += $(top_builddir)/panels/color/libcolor.la
++endif
++
++if BUILD_ONLINE_ACCOUNTS
++gnome_control_center_LDADD += $(top_builddir)/panels/online-accounts/libonline-accounts.la
++endif
++
+ gnome_control_center_alt_LDADD = \
+ $(gnome_control_center_LDADD) \
+ alt/libshell_alt.la
+diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c
+index 20ebb85..9104b45 100644
+--- a/shell/cc-panel-loader.c
++++ b/shell/cc-panel-loader.c
+@@ -33,7 +33,9 @@ extern GType cc_background_panel_get_type (void);
+ #ifdef BUILD_BLUETOOTH
+ extern GType cc_bluetooth_panel_get_type (void);
+ #endif /* BUILD_BLUETOOTH */
++#ifdef BUILD_COLOR
+ extern GType cc_color_panel_get_type (void);
++#endif /* BUILD_COLOR */
+ extern GType cc_date_time_panel_get_type (void);
+ extern GType cc_display_panel_get_type (void);
+ extern GType cc_info_panel_get_type (void);
+@@ -43,7 +45,9 @@ extern GType cc_mouse_panel_get_type (void);
+ extern GType cc_network_panel_get_type (void);
+ #endif /* BUILD_NETWORK */
+ extern GType cc_notifications_panel_get_type (void);
++#ifdef BUILD_ONLINE_ACCOUNTS
+ extern GType cc_goa_panel_get_type (void);
++#endif /* BUILD_ONLINE_ACCOUNTS */
+ extern GType cc_power_panel_get_type (void);
+ extern GType cc_printers_panel_get_type (void);
+ extern GType cc_privacy_panel_get_type (void);
+@@ -75,7 +79,9 @@ static struct {
+ #ifdef BUILD_BLUETOOTH
+ PANEL_TYPE("bluetooth", cc_bluetooth_panel_get_type ),
+ #endif
++#ifdef BUILD_COLOR
+ PANEL_TYPE("color", cc_color_panel_get_type ),
++#endif
+ PANEL_TYPE("datetime", cc_date_time_panel_get_type ),
+ PANEL_TYPE("display", cc_display_panel_get_type ),
+ PANEL_TYPE("info", cc_info_panel_get_type ),
+@@ -85,7 +91,9 @@ static struct {
+ PANEL_TYPE("network", cc_network_panel_get_type ),
+ #endif
+ PANEL_TYPE("notifications", cc_notifications_panel_get_type),
++#ifdef BUILD_ONLINE_ACCOUNTS
+ PANEL_TYPE("online-accounts", cc_goa_panel_get_type ),
++#endif
+ PANEL_TYPE("power", cc_power_panel_get_type ),
+ PANEL_TYPE("printers", cc_printers_panel_get_type ),
+ PANEL_TYPE("privacy", cc_privacy_panel_get_type ),
+--
+2.10.2
+
diff --git a/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-gentoo-paths.patch b/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-gentoo-paths.patch
new file mode 100644
index 000000000000..5d5af0d9717d
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-gentoo-paths.patch
@@ -0,0 +1,120 @@
+From c093ce404bf9868980fe7b83d6aa2ab3ec7831e2 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Sun, 8 Dec 2013 23:44:56 +0100
+Subject: [PATCH 5/5] Fix some absolute paths to be appropriate for Gentoo
+
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+---
+ panels/datetime/Makefile.am | 1 +
+ panels/datetime/test-endianess.c | 4 ++--
+ panels/datetime/test-timezone.c | 2 +-
+ panels/datetime/tz.h | 4 ++--
+ panels/printers/Makefile.am | 3 +++
+ panels/printers/cc-printers-panel.c | 4 ++--
+ panels/printers/pp-host.c | 2 +-
+ 7 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/panels/datetime/Makefile.am b/panels/datetime/Makefile.am
+index 43523a6..d8d677d 100644
+--- a/panels/datetime/Makefile.am
++++ b/panels/datetime/Makefile.am
+@@ -23,6 +23,7 @@ AM_CPPFLAGS = \
+ $(DATETIME_PANEL_CFLAGS) \
+ -DGNOMELOCALEDIR="\"$(datadir)/locale\"" \
+ -DGNOMECC_DATA_DIR="\"$(pkgdatadir)\"" \
++ -DREALDATADIR="\"$(datadir)\"" \
+ $(NULL)
+
+ # test-timezone is still too noisy
+diff --git a/panels/datetime/test-endianess.c b/panels/datetime/test-endianess.c
+index 06b2613..eb52bb6 100644
+--- a/panels/datetime/test-endianess.c
++++ b/panels/datetime/test-endianess.c
+@@ -26,11 +26,11 @@ test_endianess (void)
+ GDir *dir;
+ const char *name;
+
+- dir = g_dir_open ("/usr/share/i18n/locales/", 0, NULL);
++ dir = g_dir_open (REALDATADIR "/i18n/locales/", 0, NULL);
+ if (dir == NULL) {
+ /* Try with /usr/share/locale/
+ * https://bugzilla.gnome.org/show_bug.cgi?id=646780 */
+- dir = g_dir_open ("/usr/share/locale/", 0, NULL);
++ dir = g_dir_open (REALDATADIR "/locale/", 0, NULL);
+ if (dir == NULL) {
+ g_assert_not_reached ();
+ }
+diff --git a/panels/datetime/test-timezone.c b/panels/datetime/test-timezone.c
+index db5c030..7ef5cef 100644
+--- a/panels/datetime/test-timezone.c
++++ b/panels/datetime/test-timezone.c
+@@ -2,7 +2,7 @@
+ #include <gtk/gtk.h>
+ #include "cc-timezone-map.h"
+
+-#define TZ_DIR "/usr/share/zoneinfo/"
++#define TZ_DIR REALDATADIR "/zoneinfo/"
+
+ static GList *
+ get_timezone_list (GList *tzs,
+diff --git a/panels/datetime/tz.h b/panels/datetime/tz.h
+index 93905b3..1ba918c 100644
+--- a/panels/datetime/tz.h
++++ b/panels/datetime/tz.h
+@@ -28,9 +28,9 @@
+ #include <glib.h>
+
+ #ifndef __sun
+-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
++# define TZ_DATA_FILE REALDATADIR "/zoneinfo/zone.tab"
+ #else
+-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
++# define TZ_DATA_FILE REALDATADIR "/lib/zoneinfo/tab/zone_sun.tab"
+ #endif
+
+ typedef struct _TzDB TzDB;
+diff --git a/panels/printers/Makefile.am b/panels/printers/Makefile.am
+index 512cda5..87726dd 100644
+--- a/panels/printers/Makefile.am
++++ b/panels/printers/Makefile.am
+@@ -10,6 +10,9 @@ AM_CPPFLAGS = \
+ -I$(top_srcdir)/shell/ \
+ -DGNOMELOCALEDIR="\"$(datadir)/locale\"" \
+ -DTEST_SRCDIR=\""$(srcdir)/"\" \
++ -DREALDATADIR="\"$(datadir)\"" \
++ -DPREFIX="\"$(prefix)\"" \
++ -DLIBEXECDIR="\"$(libexecdir)\"" \
+ $(NULL)
+
+ noinst_LTLIBRARIES = libprinters.la
+diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c
+index fb55608..a6dfb90 100644
+--- a/panels/printers/cc-printers-panel.c
++++ b/panels/printers/cc-printers-panel.c
+@@ -2590,8 +2590,8 @@ test_page_cb (GtkButton *button,
+
+ if (printer_name)
+ {
+- const gchar *const dirs[] = { "/usr/share/cups",
+- "/usr/local/share/cups",
++ const gchar *const dirs[] = { REALDATADIR "/cups",
++ PREFIX "/local/share/cups",
+ NULL };
+ const gchar *datadir = NULL;
+ http_t *http = NULL;
+diff --git a/panels/printers/pp-host.c b/panels/printers/pp-host.c
+index fbfb434..bd00518 100644
+--- a/panels/printers/pp-host.c
++++ b/panels/printers/pp-host.c
+@@ -254,7 +254,7 @@ _pp_host_get_snmp_devices_thread (GSimpleAsyncResult *res,
+ data->devices->devices = NULL;
+
+ argv = g_new0 (gchar *, 3);
+- argv[0] = g_strdup ("/usr/lib/cups/backend/snmp");
++ argv[0] = g_strdup (LIBEXECDIR "/cups/backend/snmp");
+ argv[1] = g_strdup (priv->hostname);
+
+ /* Use SNMP to get printer's informations */
+--
+2.10.1
+
diff --git a/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-keep-panels-optional.patch b/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-keep-panels-optional.patch
new file mode 100644
index 000000000000..2bd4e0e0abe4
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-keep-panels-optional.patch
@@ -0,0 +1,40 @@
+From 0ee5e7191e62e6df9067fa5b0886d09952d4e315 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Mon, 11 May 2015 23:59:03 +0200
+Subject: [PATCH 3/5] Optional gotta be optional
+
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+---
+ configure.ac | 16 ----------------
+ 1 file changed, 16 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 140459c..fe947d7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -512,22 +512,6 @@ else
+ AC_MSG_RESULT(no)
+ fi
+
+-case $host_os in
+- linux*)
+- if test "$host_cpu" = s390 -o "$host_cpu" = s390x; then
+- # Nothing
+- echo "USB-related panels disabled on S390"
+- else
+- if test "x$have_networkmanager" != "xyes" -o \
+- "x$have_bluetooth" != "xyes" -o \
+- "x$enable_cups" != "xyes" -o \
+- "x$have_wacom" != "xyes"; then
+- AC_MSG_ERROR([The Network, Bluetooth, Printers and Wacom panels are not optional on Linux systems])
+- fi
+- fi
+- ;;
+-esac
+-
+ AC_CONFIG_FILES([
+ Makefile
+ panels/Makefile
+--
+2.10.1
+
diff --git a/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-make-networkmanager-optional.patch b/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-make-networkmanager-optional.patch
new file mode 100644
index 000000000000..f4a7d3b8ea7f
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-make-networkmanager-optional.patch
@@ -0,0 +1,67 @@
+From 1ad9510963dc634cb1805ca9e4726004130fc7e3 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 12 May 2015 00:32:11 +0200
+Subject: [PATCH 4/5] Make network panel optional
+
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+---
+ configure.ac | 43 +++++++++++++++++++++++++------------------
+ 1 file changed, 25 insertions(+), 18 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index fe947d7..6ecda91 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -241,24 +241,31 @@ AS_IF([test "$enable_wayland" != "no"],
+ PKG_CHECK_MODULES(WAYLAND, gdk-wayland-3.0)
+ ])
+
+-PKG_CHECK_MODULES(NETWORK_MANAGER,
+- libnm >= $NETWORK_MANAGER_REQUIRED_VERSION
+- libnma >= $NETWORK_MANAGER_APPLET_REQUIRED_VERSION
+- mm-glib >= $MODEM_MANAGER_REQUIRED_VERSION,
+- [have_networkmanager=yes], have_networkmanager=no)
+-if test "x$have_networkmanager" = xno ; then
+- AC_MSG_WARN(*** Network panel will not be built (NetworkManager or ModemManager not found) ***)
+-else
+- AC_DEFINE(BUILD_NETWORK, 1, [Define to 1 to build the Network panel])
+-fi
+-AM_CONDITIONAL(BUILD_NETWORK, [test x$have_networkmanager = xyes])
+-if test x${have_networkmanager} = xyes; then
+- AC_DEFINE(HAVE_NETWORK_MANAGER, 1, [Define to 1 if NetworkManager is available])
+- NM_VPN_CONFIG_DIR=`$PKG_CONFIG --variable configdir NetworkManager`/VPN
+- NM_VPN_MODULE_DIR=`$PKG_CONFIG --variable plugindir NetworkManager`
+- AC_SUBST(NM_VPN_CONFIG_DIR)
+- AC_SUBST(NM_VPN_MODULE_DIR)
+-fi
++AC_ARG_ENABLE([networkmanager],
++ AS_HELP_STRING([--disable-networkmanager], [Disable network panel]),
++ [],
++ [enable_networkmanager=auto])
++AS_IF([test "$enable_networkmanager" != "no"],
++ [
++ PKG_CHECK_MODULES(NETWORK_MANAGER,
++ libnm >= $NETWORK_MANAGER_REQUIRED_VERSION
++ libnma >= $NETWORK_MANAGER_APPLET_REQUIRED_VERSION
++ mm-glib >= $MODEM_MANAGER_REQUIRED_VERSION,
++ [have_networkmanager=yes], [have_networkmanager=no])
++
++ AS_IF([test "$have_networkmanager" = "no"],
++ [
++ AC_MSG_WARN([*** Network panel will not be built (NetworkManager or ModemManager not found) ***])
++ ], [
++ AC_DEFINE(BUILD_NETWORK, 1, [Define to 1 to build the Network panel])
++ AC_DEFINE(HAVE_NETWORK_MANAGER, 1, [Define to 1 if NetworkManager is available])
++ NM_VPN_CONFIG_DIR=`$PKG_CONFIG --variable configdir NetworkManager`/VPN
++ NM_VPN_MODULE_DIR=`$PKG_CONFIG --variable plugindir NetworkManager`
++ AC_SUBST([NM_VPN_CONFIG_DIR])
++ AC_SUBST([NM_VPN_MODULE_DIR])
++ ])
++ ])
++AM_CONDITIONAL(BUILD_NETWORK, [test "$have_networkmanager" = "yes"])
+
+ # Check for power panel
+ if test x${have_networkmanager} = xyes; then
+--
+2.10.1
+
diff --git a/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-make-wayland-optional.patch b/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-make-wayland-optional.patch
new file mode 100644
index 000000000000..2c06408d1a33
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-make-wayland-optional.patch
@@ -0,0 +1,45 @@
+From 09d1f1a057268a6acdfb42e7dcb2843c0066f542 Mon Sep 17 00:00:00 2001
+From: Ole Reifschneider <tranquility@gentoo.org>
+Date: Sat, 25 Apr 2015 22:22:09 +0200
+Subject: [PATCH 2/5] Make wayland support optional
+
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+---
+ configure.ac | 21 +++++++++++++++------
+ 1 file changed, 15 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 19096f5..140459c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -225,12 +225,21 @@ if test "x$have_udev" = xyes ; then
+ fi
+ AM_CONDITIONAL(HAVE_UDEV, [test "x$have_udev" = "xyes"])
+
+-PKG_CHECK_MODULES(WAYLAND, gdk-wayland-3.0, have_wayland=yes, have_wayland=no)
+-if test "x$have_wayland" = xyes ; then
+- if test "x$have_udev" != xyes ; then
+- AC_MSG_ERROR([udev is required for Wayland support])
+- fi
+-fi
++AC_ARG_ENABLE(
++ [wayland],
++ AS_HELP_STRING([--disable-wayland], [disable wayland support]),
++ [],
++ enable_wayland=auto
++)
++
++AS_IF([test "$enable_wayland" != "no"],
++ [
++ AS_IF([test "x$have_udev" = xno],
++ [AC_MSG_ERROR([udev is required for Wayland support])],
++ [AC_DEFINE(HAVE_UDEV, 1, [System has udev])])
++
++ PKG_CHECK_MODULES(WAYLAND, gdk-wayland-3.0)
++])
+
+ PKG_CHECK_MODULES(NETWORK_MANAGER,
+ libnm >= $NETWORK_MANAGER_REQUIRED_VERSION
+--
+2.10.1
+
diff --git a/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-optional.patch b/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-optional.patch
new file mode 100644
index 000000000000..02516ced7c94
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/gnome-control-center-3.22.0-optional.patch
@@ -0,0 +1,569 @@
+From 108d79460d42d5e8167ad52747628f9dfd21058d Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Wed, 2 Nov 2016 23:40:52 +0100
+Subject: [PATCH 1/5] Make bluetooth/colord/goa/kerberos/wacom optional
+
+Upstream is not interested in any part of this patch:
+
+https://bugzilla.gnome.org/show_bug.cgi?id=686840
+https://bugzilla.gnome.org/show_bug.cgi?id=697478
+https://bugzilla.gnome.org/show_bug.cgi?id=700145
+
+Signed-off-by: Ole Reifschneider <tranquility@gentoo.org>
+Signed-off-by: Gilles Dartiguelongue <eva@gentoo.org>
+---
+ configure.ac | 185 +++++++++++++++++++++++---------
+ panels/Makefile.am | 10 +-
+ panels/background/Makefile.am | 8 +-
+ panels/background/bg-pictures-source.c | 20 ++++
+ panels/power/cc-power-panel.c | 2 +-
+ panels/user-accounts/um-realm-manager.c | 9 ++
+ shell/Makefile.am | 10 +-
+ shell/cc-panel-loader.c | 8 ++
+ 8 files changed, 196 insertions(+), 56 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1e07acd..19096f5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -119,10 +119,6 @@ LIBGD_INIT([_view-common notification static])
+ PKG_CHECK_MODULES(LIBLANGUAGE, $COMMON_MODULES gnome-desktop-3.0 fontconfig)
+ PKG_CHECK_MODULES(LIBSHORTCUTS, $COMMON_MODULES x11)
+ PKG_CHECK_MODULES(SHELL, $COMMON_MODULES x11 polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION)
+-PKG_CHECK_MODULES(BACKGROUND_PANEL, $COMMON_MODULES cairo-gobject libxml-2.0 gnome-desktop-3.0
+- gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED_VERSION
+- goa-1.0 >= $GOA_REQUIRED_VERSION
+- grilo-0.3 >= $GRILO_REQUIRED_VERSION)
+ PKG_CHECK_MODULES(DATETIME_PANEL, $COMMON_MODULES
+ gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
+ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION
+@@ -140,12 +136,58 @@ PKG_CHECK_MODULES(MOUSE_PANEL, $COMMON_MODULES xi >= 1.2
+ PKG_CHECK_MODULES(NETWORK_PANEL, $COMMON_MODULES gmodule-2.0
+ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION)
+ PKG_CHECK_MODULES(NOTIFICATIONS_PANEL, $COMMON_MODULES)
+-PKG_CHECK_MODULES(ONLINE_ACCOUNTS_PANEL, $COMMON_MODULES goa-1.0 goa-backend-1.0 >= $GOA_REQUIRED_VERSION)
+-PKG_CHECK_MODULES(COLOR_PANEL, $COMMON_MODULES
+- colord >= $COLORD_REQUIRED_VERSION
+- colord-gtk >= $COLORD_GTK_REQUIRED_VERSION
+- libsoup-2.4
+- gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION)
++
++build_online_accounts=no
++background_online_accounts=
++AC_ARG_ENABLE([goa],
++ AS_HELP_STRING([--disable-goa],
++ [disable online accounts management panel]),
++ [],
++ [enable_goa=auto])
++
++AS_IF([test "$enable_goa" != "no"],
++ [PKG_CHECK_MODULES([ONLINE_ACCOUNTS_PANEL],
++ [$COMMON_MODULES goa-1.0 goa-backend-1.0 >= $GOA_REQUIRED_VERSION],
++ [
++ AC_DEFINE(BUILD_ONLINE_ACCOUNTS, 1, [Define to 1 to build the Online Accounts panel])
++ build_online_accounts=yes
++ background_goa_dependencies="goa-1.0 >= $GOA_REQUIRED_VERSION grilo-0.3 >= $GRILO_REQUIRED_VERSION"
++ ], [
++ AS_IF([test "$enable_goa" = "yes"],
++ [AC_MSG_ERROR([gnome-online-accounts support requested but not found])])
++ ])
++ ])
++AM_CONDITIONAL(BUILD_ONLINE_ACCOUNTS, test "$build_online_accounts" = "yes")
++
++PKG_CHECK_MODULES(BACKGROUND_PANEL, $COMMON_MODULES cairo-gobject libxml-2.0 gnome-desktop-3.0
++ gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED_VERSION
++ $background_goa_dependencies)
++
++build_color=no
++AC_ARG_ENABLE([color],
++ AS_HELP_STRING([--disable-color],
++ [disable color management panel]),
++ [],
++ [enable_color=auto])
++
++AS_IF([test "$enable_color" != "no"],
++ [PKG_CHECK_MODULES([COLOR_PANEL],
++ [
++ $COMMON_MODULES
++ colord >= $COLORD_REQUIRED_VERSION
++ colord-gtk >= $COLORD_GTK_REQUIRED_VERSION
++ libsoup-2.4
++ gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
++ ], [
++ AC_DEFINE(BUILD_COLOR, 1, [Define to 1 to build the Color panel])
++ build_color=yes
++ ], [
++ AS_IF([test "$enable_color" = "yes"],
++ [AC_MSG_ERROR([colord support requested but not found])])
++ ])
++ ])
++AM_CONDITIONAL(BUILD_COLOR, test "$build_color" = "yes")
++
+ PKG_CHECK_MODULES(PRINTERS_PANEL, $COMMON_MODULES
+ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION)
+ PKG_CHECK_MODULES(PRIVACY_PANEL, $COMMON_MODULES)
+@@ -220,15 +262,27 @@ else
+ fi
+
+ # Check for gnome-bluetooth
+-PKG_CHECK_MODULES(BLUETOOTH, $COMMON_MODULES gnome-bluetooth-1.0 >= 3.18.2,
+- [have_bluetooth=yes], have_bluetooth=no)
+-if test "x$have_bluetooth" = xyes ; then
+- AC_DEFINE(BUILD_BLUETOOTH, 1, [Define to 1 to build the Bluetooth panel])
+-fi
+-AM_CONDITIONAL(BUILD_BLUETOOTH, [test x$have_bluetooth = xyes])
+-if test x${have_bluetooth} = xyes; then
+- AC_DEFINE(HAVE_BLUETOOTH, 1, [Define to 1 if bluetooth support is available])
+-fi
++have_bluetooth=no
++AC_ARG_ENABLE([bluetooth],
++ AS_HELP_STRING([--disable-bluetooth],
++ [disable bluetooth management panel]),
++ [],
++ [enable_bluetooth=auto])
++
++AS_IF([test "$enable_bluetooth" = "yes"],
++ [PKG_CHECK_MODULES([BLUETOOTH],
++ [$COMMON_MODULES gnome-bluetooth-1.0 >= 3.18.2],
++ [
++ AC_DEFINE(BUILD_BLUETOOTH, 1, [Define to 1 to build the Bluetooth panel])
++ have_bluetooth=yes
++ ],
++ [
++ have_bluetooth=no
++ AS_IF([test "$enable_bluetooth" = "yes"],
++ [AC_MSG_ERROR([bluetooth support requested but not found])])
++ ])
++ ])
++AM_CONDITIONAL(BUILD_BLUETOOTH, [test "$have_bluetooth" = "yes"])
+
+ # Check for smbclient
+ PKG_CHECK_MODULES(SMBCLIENT, smbclient, [have_smbclient=yes], [have_smbclient=no])
+@@ -301,38 +355,61 @@ fi
+ AM_CONDITIONAL(BUILD_CHEESE, test x${have_cheese} = xyes)
+
+ # wacom is disabled for s390/s390x and non Linux platforms (needs udev)
+-case $host_os in
+- linux*)
+- if test "$host_cpu" = s390 -o "$host_cpu" = s390x; then
+- have_wacom=no
+- else
+- PKG_CHECK_MODULES(WACOM_PANEL, $COMMON_MODULES
+- gnome-settings-daemon >= $GSD_REQUIRED_VERSION
+- xi >= 1.2 x11 libwacom >= $LIBWACOM_REQUIRED_VERSION
+- gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
+- clutter-gtk-1.0
+- clutter-1.0 >= $CLUTTER_REQUIRED_VERSION)
+- have_wacom=yes
+- AC_DEFINE(BUILD_WACOM, 1, [Define to 1 to build the Wacom panel])
+- AC_DEFINE(HAVE_WACOM, 1, [Define to 1 is Wacom is supportted])
+- fi
+- ;;
+- *)
+- have_wacom=no
+- ;;
+-esac
+-AM_CONDITIONAL(BUILD_WACOM, [test x${have_wacom} = xyes])
++have_wacom=no
++AS_CASE([$host_os],
++ [linux*],
++ [AS_IF([test "$host_cpu" = "s390" -o "$host_cpu" = "s390x"],
++ [have_wacom=no],
++ [
++ AC_ARG_ENABLE([wacom],
++ AS_HELP_STRING([--disable-wacom],
++ [disable wacom management panel]),
++ [],
++ [enable_wacom=yes])
++ AS_IF([test "$enable_wacom" = "yes"],
++ [PKG_CHECK_MODULES([WACOM_PANEL],
++ [
++ $COMMON_MODULES
++ gnome-settings-daemon >= $GSD_REQUIRED_VERSION
++ xi >= 1.2 x11 libwacom >= $LIBWACOM_REQUIRED_VERSION
++ gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED_VERSION
++ clutter-gtk-1.0
++ clutter-1.0 >= $CLUTTER_REQUIRED_VERSION
++ ], [
++ have_wacom=yes
++ AC_DEFINE(BUILD_WACOM, 1, [Define to 1 to build the Wacom panel])
++ AC_DEFINE(HAVE_WACOM, 1, [Define to 1 is Wacom is supportted])
++ ], [
++ have_wacom=no
++ AS_IF([test "$enable_wacom" = "yes"],
++ [AC_MSG_ERROR([wacom support requested but not found])])
++ ])
++ ])
++ ])
++ ],
++ [have_wacom=no])
++AM_CONDITIONAL(BUILD_WACOM, [test "$have_wacom" = "yes"])
+
+ # Kerberos kerberos support
+-AC_PATH_PROG(KRB5_CONFIG, krb5-config, no)
+-if test "$KRB5_CONFIG" = "no"; then
+- AC_MSG_ERROR([krb5-config executable not found in your path - should be installed with the kerberos libraries])
+-fi
+-
+-AC_MSG_CHECKING(for krb5 libraries and flags)
+-KRB5_CFLAGS="`$KRB5_CONFIG --cflags`"
+-KRB5_LIBS="`$KRB5_CONFIG --libs`"
+-AC_MSG_RESULT($KRB5_CFLAGS $KRB5_LIBS)
++AC_ARG_ENABLE([kerberos],
++ AS_HELP_STRING([--disable-kerberos],
++ [disable kerberos support (default: enabled)]),
++ [],
++ [enable_kerberos=yes])
++
++AS_IF([test "$enable_kerberos" != "no"],
++ [
++ AC_PATH_PROG(KRB5_CONFIG, krb5-config, no)
++
++ AS_IF([test "$KRB5_CONFIG" = "no"],
++ AC_MSG_ERROR([krb5-config executable not found in your path - should be installed with the kerberos libraries]))
++
++ AC_MSG_CHECKING([for krb5 libraries and flags])
++ KRB5_CFLAGS="`$KRB5_CONFIG --cflags`"
++ KRB5_LIBS="`$KRB5_CONFIG --libs`"
++ AC_MSG_RESULT($KRB5_CFLAGS $KRB5_LIBS)
++ AC_DEFINE(HAVE_KERBEROS, 1, [defined if krb5 is available])
++ ])
+
+ AC_SUBST(KRB5_CFLAGS)
+ AC_SUBST(KRB5_LIBS)
+@@ -569,6 +646,11 @@ if test "x$have_bluetooth" = "xyes"; then
+ else
+ AC_MSG_NOTICE([ Bluetooth panel disabled])
+ fi
++if test "x$build_color" = "xyes"; then
++ AC_MSG_NOTICE([** colord (Color panel)])
++else
++ AC_MSG_NOTICE([ Color panel disabled])
++fi
+ if test "x$enable_cups" = "xyes"; then
+ AC_MSG_NOTICE([** CUPS (Printers panel)])
+ else
+@@ -579,6 +661,11 @@ if test "x$have_cheese" = "xyes"; then
+ else
+ AC_MSG_NOTICE([ Users panel webcam support disabled])
+ fi
++if test "x$build_online_accounts" = "xyes"; then
++ AC_MSG_NOTICE([** gnome-online-accounts (Online Accounts panel)])
++else
++ AC_MSG_NOTICE([ Online Accounts panel disabled])
++fi
+ if test "x$have_wacom" = "xyes"; then
+ AC_MSG_NOTICE([** wacom (Wacom tablet panel)])
+ else
+diff --git a/panels/Makefile.am b/panels/Makefile.am
+index 9961c25..0c54622 100644
+--- a/panels/Makefile.am
++++ b/panels/Makefile.am
+@@ -2,11 +2,9 @@ SUBDIRS= \
+ common \
+ background \
+ power \
+- color \
+ display \
+ mouse \
+ notifications \
+- online-accounts \
+ region \
+ info \
+ sound \
+@@ -18,6 +16,10 @@ SUBDIRS= \
+ privacy \
+ sharing
+
++if BUILD_COLOR
++SUBDIRS += color
++endif
++
+ if BUILD_WACOM
+ SUBDIRS += wacom
+ endif
+@@ -34,4 +36,8 @@ if BUILD_BLUETOOTH
+ SUBDIRS += bluetooth
+ endif
+
++if BUILD_ONLINE_ACCOUNTS
++SUBDIRS += online-accounts
++endif
++
+ -include $(top_srcdir)/git.mk
+diff --git a/panels/background/Makefile.am b/panels/background/Makefile.am
+index ccb8017..bde4cdf 100644
+--- a/panels/background/Makefile.am
++++ b/panels/background/Makefile.am
+@@ -27,8 +27,6 @@ libbackground_chooser_la_SOURCES = \
+ $(BUILT_SOURCES) \
+ cc-background-chooser-dialog.c \
+ cc-background-chooser-dialog.h \
+- cc-background-grilo-miner.c \
+- cc-background-grilo-miner.h \
+ cc-background-item.c \
+ cc-background-item.h \
+ cc-background-xml.c \
+@@ -42,6 +40,12 @@ libbackground_chooser_la_SOURCES = \
+ bg-colors-source.c \
+ bg-colors-source.h
+
++if BUILD_ONLINE_ACCOUNTS
++libbackground_chooser_la_SOURCES += \
++ cc-background-grilo-miner.c \
++ cc-background-grilo-miner.h
++endif
++
+ libbackground_chooser_la_LIBADD = $(PANEL_LIBS) $(BACKGROUND_PANEL_LIBS)
+
+ libbackground_la_SOURCES = \
+diff --git a/panels/background/bg-pictures-source.c b/panels/background/bg-pictures-source.c
+index a33cee7..408359c 100644
+--- a/panels/background/bg-pictures-source.c
++++ b/panels/background/bg-pictures-source.c
+@@ -23,13 +23,17 @@
+
+ #include "bg-pictures-source.h"
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ #include "cc-background-grilo-miner.h"
++#endif
+ #include "cc-background-item.h"
+
+ #include <string.h>
+ #include <cairo-gobject.h>
+ #include <gio/gio.h>
++#ifdef BUILD_ONLINE_ACCOUNTS
+ #include <grilo.h>
++#endif
+ #include <libgnome-desktop/gnome-desktop-thumbnail.h>
+ #include <gdesktop-enums.h>
+
+@@ -46,7 +50,9 @@ struct _BgPicturesSourcePrivate
+ {
+ GCancellable *cancellable;
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ CcBackgroundGriloMiner *grl_miner;
++#endif
+
+ GnomeDesktopThumbnailFactory *thumb_factory;
+
+@@ -84,7 +90,9 @@ bg_pictures_source_dispose (GObject *object)
+ g_clear_object (&priv->cancellable);
+ }
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ g_clear_object (&priv->grl_miner);
++#endif
+ g_clear_object (&priv->thumb_factory);
+
+ G_OBJECT_CLASS (bg_pictures_source_parent_class)->dispose (object);
+@@ -414,7 +422,11 @@ add_single_file (BgPicturesSource *bg_source,
+ gboolean needs_download;
+ gboolean retval = FALSE;
+ GFile *pictures_dir, *cache_dir;
++#ifdef BUILD_ONLINE_ACCOUNTS
+ GrlMedia *media;
++#else
++ gpointer media = NULL;
++#endif
+
+ /* find png and jpeg files */
+ if (!content_type)
+@@ -473,7 +485,9 @@ add_single_file (BgPicturesSource *bg_source,
+
+ read_file:
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ media = g_object_get_data (G_OBJECT (file), "grl-media");
++#endif
+ if (media == NULL)
+ {
+ g_object_set_data_full (G_OBJECT (file), "item", g_object_ref (item), g_object_unref);
+@@ -556,6 +570,7 @@ add_single_file_from_info (BgPicturesSource *bg_source,
+ return add_single_file (bg_source, file, content_type, mtime, ret_row_ref);
+ }
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ static gboolean
+ add_single_file_from_media (BgPicturesSource *bg_source,
+ GFile *file,
+@@ -580,6 +595,7 @@ add_single_file_from_media (BgPicturesSource *bg_source,
+
+ return add_single_file (bg_source, file, content_type, (guint64) mtime_unix, NULL);
+ }
++#endif /* BUILD_ONLINE_ACCOUNTS */
+
+ gboolean
+ bg_pictures_source_add (BgPicturesSource *bg_source,
+@@ -923,6 +939,7 @@ monitor_path (BgPicturesSource *self,
+ return monitor;
+ }
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ static void
+ media_found_cb (BgPicturesSource *self, GrlMedia *media)
+ {
+@@ -934,6 +951,7 @@ media_found_cb (BgPicturesSource *self, GrlMedia *media)
+ g_object_set_data_full (G_OBJECT (file), "grl-media", g_object_ref (media), g_object_unref);
+ add_single_file_from_media (self, file, media);
+ }
++#endif /* BUILD_ONLINE_ACCOUNTS */
+
+ static void
+ bg_pictures_source_init (BgPicturesSource *self)
+@@ -961,9 +979,11 @@ bg_pictures_source_init (BgPicturesSource *self)
+ priv->cache_dir_monitor = monitor_path (self, cache_path);
+ g_free (cache_path);
+
++#ifdef BUILD_ONLINE_ACCOUNTS
+ priv->grl_miner = cc_background_grilo_miner_new ();
+ g_signal_connect_swapped (priv->grl_miner, "media-found", G_CALLBACK (media_found_cb), self);
+ cc_background_grilo_miner_start (priv->grl_miner);
++#endif /* BUILD_ONLINE_ACCOUNTS */
+
+ priv->thumb_factory =
+ gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE);
+diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
+index db4e69a..7677b58 100644
+--- a/panels/power/cc-power-panel.c
++++ b/panels/power/cc-power-panel.c
+@@ -1882,7 +1882,7 @@ add_power_saving_section (CcPowerPanel *self)
+ G_CALLBACK (wifi_switch_changed), self);
+ #endif
+
+-#ifdef HAVE_BLUETOOTH
++#ifdef BUILD_BLUETOOTH
+ priv->bt_rfkill = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
+ G_DBUS_PROXY_FLAGS_NONE,
+ NULL,
+diff --git a/panels/user-accounts/um-realm-manager.c b/panels/user-accounts/um-realm-manager.c
+index 8a0a0e6..22c6b94 100644
+--- a/panels/user-accounts/um-realm-manager.c
++++ b/panels/user-accounts/um-realm-manager.c
+@@ -22,7 +22,9 @@
+
+ #include "um-realm-manager.h"
+
++#ifdef HAVE_KERBEROS
+ #include <krb5/krb5.h>
++#endif
+
+ #include <glib.h>
+ #include <glib/gi18n.h>
+@@ -698,6 +700,7 @@ login_closure_free (gpointer data)
+ g_slice_free (LoginClosure, login);
+ }
+
++#ifdef HAVE_KERBEROS
+ static krb5_error_code
+ login_perform_kinit (krb5_context k5,
+ const gchar *realm,
+@@ -761,12 +764,14 @@ login_perform_kinit (krb5_context k5,
+
+ return code;
+ }
++#endif /* HAVE_KERBEROS */
+
+ static void
+ kinit_thread_func (GSimpleAsyncResult *async,
+ GObject *object,
+ GCancellable *cancellable)
+ {
++#ifdef HAVE_KERBEROS
+ LoginClosure *login = g_simple_async_result_get_op_res_gpointer (async);
+ krb5_context k5 = NULL;
+ krb5_error_code code;
+@@ -844,6 +849,10 @@ kinit_thread_func (GSimpleAsyncResult *async,
+
+ if (k5)
+ krb5_free_context (k5);
++#else /* HAVE_KERBEROS */
++ g_simple_async_result_set_error (async, UM_REALM_ERROR, UM_REALM_ERROR_GENERIC,
++ _("gnome-control-center was built without kerberos support"));
++#endif
+ }
+
+ void
+diff --git a/shell/Makefile.am b/shell/Makefile.am
+index 45f6363..b76f343 100644
+--- a/shell/Makefile.am
++++ b/shell/Makefile.am
+@@ -78,14 +78,12 @@ gnome_control_center_LDADD = \
+ $(top_builddir)/panels/common/liblanguage.la \
+ $(top_builddir)/panels/common/libdevice.la \
+ $(top_builddir)/panels/background/libbackground.la \
+- $(top_builddir)/panels/color/libcolor.la \
+ $(top_builddir)/panels/datetime/libdate_time.la \
+ $(top_builddir)/panels/display/libdisplay.la \
+ $(top_builddir)/panels/info/libinfo.la \
+ $(top_builddir)/panels/keyboard/libkeyboard.la \
+ $(top_builddir)/panels/mouse/libmouse-properties.la \
+ $(top_builddir)/panels/notifications/libnotifications.la \
+- $(top_builddir)/panels/online-accounts/libonline-accounts.la \
+ $(top_builddir)/panels/power/libpower.la \
+ $(top_builddir)/panels/privacy/libprivacy.la \
+ $(top_builddir)/panels/region/libregion.la \
+@@ -111,6 +109,14 @@ if BUILD_BLUETOOTH
+ gnome_control_center_LDADD += $(top_builddir)/panels/bluetooth/libbluetooth.la
+ endif
+
++if BUILD_COLOR
++gnome_control_center_LDADD += $(top_builddir)/panels/color/libcolor.la
++endif
++
++if BUILD_ONLINE_ACCOUNTS
++gnome_control_center_LDADD += $(top_builddir)/panels/online-accounts/libonline-accounts.la
++endif
++
+ gnome_control_center_alt_LDADD = \
+ $(gnome_control_center_LDADD) \
+ alt/libshell_alt.la
+diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c
+index 03dbfb1..a713079 100644
+--- a/shell/cc-panel-loader.c
++++ b/shell/cc-panel-loader.c
+@@ -33,7 +33,9 @@ extern GType cc_background_panel_get_type (void);
+ #ifdef BUILD_BLUETOOTH
+ extern GType cc_bluetooth_panel_get_type (void);
+ #endif /* BUILD_BLUETOOTH */
++#ifdef BUILD_COLOR
+ extern GType cc_color_panel_get_type (void);
++#endif /* BUILD_COLOR */
+ extern GType cc_date_time_panel_get_type (void);
+ extern GType cc_display_panel_get_type (void);
+ extern GType cc_info_panel_get_type (void);
+@@ -43,7 +45,9 @@ extern GType cc_mouse_panel_get_type (void);
+ extern GType cc_network_panel_get_type (void);
+ #endif /* BUILD_NETWORK */
+ extern GType cc_notifications_panel_get_type (void);
++#ifdef BUILD_ONLINE_ACCOUNTS
+ extern GType cc_goa_panel_get_type (void);
++#endif /* BUILD_ONLINE_ACCOUNTS */
+ extern GType cc_power_panel_get_type (void);
+ #ifdef BUILD_PRINTERS
+ extern GType cc_printers_panel_get_type (void);
+@@ -77,7 +81,9 @@ static struct {
+ #ifdef BUILD_BLUETOOTH
+ PANEL_TYPE("bluetooth", cc_bluetooth_panel_get_type ),
+ #endif
++#ifdef BUILD_COLOR
+ PANEL_TYPE("color", cc_color_panel_get_type ),
++#endif
+ PANEL_TYPE("datetime", cc_date_time_panel_get_type ),
+ PANEL_TYPE("display", cc_display_panel_get_type ),
+ PANEL_TYPE("info", cc_info_panel_get_type ),
+@@ -87,7 +93,9 @@ static struct {
+ PANEL_TYPE("network", cc_network_panel_get_type ),
+ #endif
+ PANEL_TYPE("notifications", cc_notifications_panel_get_type),
++#ifdef BUILD_ONLINE_ACCOUNTS
+ PANEL_TYPE("online-accounts", cc_goa_panel_get_type ),
++#endif
+ PANEL_TYPE("power", cc_power_panel_get_type ),
+ #ifdef BUILD_PRINTERS
+ PANEL_TYPE("printers", cc_printers_panel_get_type ),
+--
+2.10.1
+
diff --git a/gnome-base/gnome-control-center/gnome-control-center-3.22.2-r1.ebuild b/gnome-base/gnome-control-center/gnome-control-center-3.22.2-r1.ebuild
new file mode 100644
index 000000000000..c9c82aa7b53e
--- /dev/null
+++ b/gnome-base/gnome-control-center/gnome-control-center-3.22.2-r1.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+GNOME2_LA_PUNT="yes"
+GNOME2_EAUTORECONF="yes"
+
+inherit bash-completion-r1 gnome2
+
+DESCRIPTION="GNOME's main interface to configure various aspects of the desktop"
+HOMEPAGE="https://git.gnome.org/browse/gnome-control-center/"
+
+LICENSE="GPL-2+"
+SLOT="2"
+IUSE="+bluetooth +colord +cups debug +gnome-online-accounts +ibus input_devices_wacom kerberos networkmanager v4l wayland"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sh x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris"
+
+# False positives caused by nested configure scripts
+QA_CONFIGURE_OPTIONS=".*"
+
+# gnome-session-2.91.6-r1 is needed so that 10-user-dirs-update is run at login
+# g-s-d[policykit] needed for bug #403527
+# kerberos unfortunately means mit-krb5; build fails with heimdal
+# udev could be made optional, only conditions gsd-device-panel
+# (mouse, keyboards, touchscreen, etc)
+COMMON_DEPEND="
+ >=dev-libs/glib-2.44.0:2[dbus]
+ >=x11-libs/gdk-pixbuf-2.23.0:2
+ >=x11-libs/gtk+-3.22.0:3[X,wayland?]
+ >=gnome-base/gsettings-desktop-schemas-3.21.4
+ >=gnome-base/gnome-desktop-3.21.2:3=
+ >=gnome-base/gnome-settings-daemon-3.19.1[colord?,policykit]
+
+ >=dev-libs/libpwquality-1.2.2
+ dev-libs/libxml2:2
+ gnome-base/libgtop:2=
+ media-libs/fontconfig
+ >=sys-apps/accountsservice-0.6.39
+
+ >=media-libs/libcanberra-0.13[gtk3]
+ >=media-sound/pulseaudio-2[glib]
+ >=sys-auth/polkit-0.97
+ >=sys-power/upower-0.99:=
+
+ virtual/libgudev
+ x11-apps/xmodmap
+ x11-libs/cairo
+ x11-libs/libX11
+ x11-libs/libXxf86misc
+ >=x11-libs/libXi-1.2
+
+ bluetooth? ( >=net-wireless/gnome-bluetooth-3.18.2:= )
+ colord? (
+ net-libs/libsoup:2.4
+ >=x11-misc/colord-0.1.34:0=
+ >=x11-libs/colord-gtk-0.1.24 )
+ cups? (
+ >=net-print/cups-1.4[dbus]
+ >=net-fs/samba-4.0.0[client]
+ )
+ gnome-online-accounts? (
+ >=media-libs/grilo-0.3.0:0.3=
+ >=net-libs/gnome-online-accounts-3.21.5:= )
+ ibus? ( >=app-i18n/ibus-1.5.2 )
+ kerberos? ( app-crypt/mit-krb5 )
+ networkmanager? (
+ >=gnome-extra/nm-applet-1.2.0
+ >=net-misc/networkmanager-1.2.0:=[modemmanager]
+ >=net-misc/modemmanager-0.7.990 )
+ v4l? (
+ media-libs/clutter-gtk:1.0
+ >=media-video/cheese-3.5.91 )
+ input_devices_wacom? (
+ >=dev-libs/libwacom-0.7
+ >=media-libs/clutter-1.11.3:1.0
+ media-libs/clutter-gtk:1.0
+ >=x11-libs/libXi-1.2 )
+"
+# <gnome-color-manager-3.1.2 has file collisions with g-c-c-3.1.x
+# libgnomekbd needed only for gkbd-keyboard-display tool
+#
+# mouse panel needs a concrete set of X11 drivers at runtime, bug #580474
+# Also we need newer driver versions to allow wacom and libinput drivers to
+# not collide
+#
+# system-config-printer provides org.fedoraproject.Config.Printing service and interface
+# cups-pk-helper provides org.opensuse.cupspkhelper.mechanism.all-edit policykit helper policy
+RDEPEND="${COMMON_DEPEND}
+ || ( >=sys-apps/systemd-31 ( app-admin/openrc-settingsd sys-auth/consolekit ) )
+ x11-themes/adwaita-icon-theme
+ colord? ( >=gnome-extra/gnome-color-manager-3 )
+ cups? (
+ app-admin/system-config-printer
+ net-print/cups-pk-helper )
+ input_devices_wacom? ( gnome-base/gnome-settings-daemon[input_devices_wacom] )
+ >=gnome-base/libgnomekbd-3
+ wayland? ( dev-libs/libinput )
+ !wayland? (
+ >=x11-drivers/xf86-input-libinput-0.19.0
+ input_devices_wacom? ( >=x11-drivers/xf86-input-wacom-0.33.0 ) )
+
+ !<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
+ !<net-wireless/gnome-bluetooth-3.3.2
+"
+# 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
+
+ dev-libs/libxml2:2
+ dev-libs/libxslt
+ >=dev-util/intltool-0.40.1
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+
+ gnome-base/gnome-common
+ sys-devel/autoconf-archive
+"
+# Needed for autoreconf
+# gnome-base/gnome-common
+# sys-devel/autoconf-archive
+
+PATCHES=(
+ # From gnome-3-22 branch
+ "${FILESDIR}"/${PV}-fix-build-without-wayland.patch # bug 613192
+ "${FILESDIR}"/${PV}-fix-dual-gpu-crash.patch
+ # Make some panels and dependencies optional; requires eautoreconf
+ # https://bugzilla.gnome.org/686840, 697478, 700145
+ "${FILESDIR}"/${PN}-3.22.0-optional.patch
+ "${FILESDIR}"/${PN}-3.22.0-make-wayland-optional.patch
+ "${FILESDIR}"/${PN}-3.22.0-keep-panels-optional.patch
+ "${FILESDIR}"/${PN}-3.22.0-make-networkmanager-optional.patch
+ # Fix some absolute paths to be appropriate for Gentoo
+ "${FILESDIR}"/${PN}-3.22.0-gentoo-paths.patch
+)
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-update-mimedb \
+ --disable-static \
+ --enable-documentation \
+ $(use_enable bluetooth) \
+ $(use_enable colord color) \
+ $(use_enable cups) \
+ $(usex debug --enable-debug=yes ' ') \
+ $(use_enable gnome-online-accounts goa) \
+ $(use_enable ibus) \
+ $(use_enable kerberos) \
+ $(use_enable networkmanager) \
+ $(use_with v4l cheese) \
+ $(use_enable input_devices_wacom wacom) \
+ $(use_enable wayland)
+}
+
+src_install() {
+ gnome2_src_install completiondir="$(get_bashcompdir)"
+}
diff --git a/gnome-base/gnome-control-center/gnome-control-center-3.24.2.ebuild b/gnome-base/gnome-control-center/gnome-control-center-3.24.2.ebuild
new file mode 100644
index 000000000000..e802f6f162f5
--- /dev/null
+++ b/gnome-base/gnome-control-center/gnome-control-center-3.24.2.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+GNOME2_LA_PUNT="yes"
+GNOME2_EAUTORECONF="yes"
+
+inherit bash-completion-r1 gnome2
+
+DESCRIPTION="GNOME's main interface to configure various aspects of the desktop"
+HOMEPAGE="https://git.gnome.org/browse/gnome-control-center/"
+
+LICENSE="GPL-2+"
+SLOT="2"
+IUSE="+bluetooth +colord +cups debug +gnome-online-accounts +ibus input_devices_wacom kerberos networkmanager v4l wayland"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sh ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris"
+
+# False positives caused by nested configure scripts
+QA_CONFIGURE_OPTIONS=".*"
+
+# gnome-session-2.91.6-r1 is needed so that 10-user-dirs-update is run at login
+# g-s-d[policykit] needed for bug #403527
+# kerberos unfortunately means mit-krb5; build fails with heimdal
+# udev could be made optional, only conditions gsd-device-panel
+# (mouse, keyboards, touchscreen, etc)
+# display panel requires colord
+# printer panel requires cups and smbclient (the latter is not patch yet to be separately optional)
+COMMON_DEPEND="
+ >=dev-libs/glib-2.44.0:2[dbus]
+ >=x11-libs/gdk-pixbuf-2.23.0:2
+ >=x11-libs/gtk+-3.22.0:3[X,wayland?]
+ >=gnome-base/gsettings-desktop-schemas-3.21.4
+ >=gnome-base/gnome-desktop-3.21.2:3=
+ >=gnome-base/gnome-settings-daemon-3.23.90[colord?,policykit]
+ >=x11-misc/colord-0.1.34:0=
+
+ >=dev-libs/libpwquality-1.2.2
+ dev-libs/libxml2:2
+ gnome-base/libgtop:2=
+ media-libs/fontconfig
+ >=sys-apps/accountsservice-0.6.39
+
+ >=media-libs/libcanberra-0.13[gtk3]
+ >=media-sound/pulseaudio-2[glib]
+ >=sys-auth/polkit-0.97
+ >=sys-power/upower-0.99:=
+
+ virtual/libgudev
+ x11-apps/xmodmap
+ x11-libs/cairo
+ x11-libs/libX11
+ x11-libs/libXxf86misc
+ >=x11-libs/libXi-1.2
+
+ bluetooth? ( >=net-wireless/gnome-bluetooth-3.18.2:= )
+ colord? (
+ net-libs/libsoup:2.4
+ >=x11-misc/colord-0.1.34:0=
+ >=x11-libs/colord-gtk-0.1.24 )
+ cups? (
+ >=net-print/cups-1.4[dbus]
+ >=net-fs/samba-4.0.0[client]
+ )
+ gnome-online-accounts? (
+ >=media-libs/grilo-0.3.0:0.3=
+ >=net-libs/gnome-online-accounts-3.21.5:= )
+ ibus? ( >=app-i18n/ibus-1.5.2 )
+ kerberos? ( app-crypt/mit-krb5 )
+ networkmanager? (
+ >=gnome-extra/nm-applet-1.2.0
+ >=net-misc/networkmanager-1.2.0:=[modemmanager]
+ >=net-misc/modemmanager-0.7.990 )
+ v4l? (
+ media-libs/clutter-gtk:1.0
+ >=media-video/cheese-3.5.91 )
+ input_devices_wacom? (
+ >=dev-libs/libwacom-0.7
+ >=media-libs/clutter-1.11.3:1.0
+ media-libs/clutter-gtk:1.0
+ >=x11-libs/libXi-1.2 )
+"
+# <gnome-color-manager-3.1.2 has file collisions with g-c-c-3.1.x
+# libgnomekbd needed only for gkbd-keyboard-display tool
+#
+# mouse panel needs a concrete set of X11 drivers at runtime, bug #580474
+# Also we need newer driver versions to allow wacom and libinput drivers to
+# not collide
+#
+# system-config-printer provides org.fedoraproject.Config.Printing service and interface
+# cups-pk-helper provides org.opensuse.cupspkhelper.mechanism.all-edit policykit helper policy
+RDEPEND="${COMMON_DEPEND}
+ || ( >=sys-apps/systemd-31 ( app-admin/openrc-settingsd sys-auth/consolekit ) )
+ x11-themes/adwaita-icon-theme
+ colord? ( >=gnome-extra/gnome-color-manager-3 )
+ cups? (
+ app-admin/system-config-printer
+ net-print/cups-pk-helper )
+ input_devices_wacom? ( gnome-base/gnome-settings-daemon[input_devices_wacom] )
+ >=gnome-base/libgnomekbd-3
+ wayland? ( dev-libs/libinput )
+ !wayland? (
+ >=x11-drivers/xf86-input-libinput-0.19.0
+ input_devices_wacom? ( >=x11-drivers/xf86-input-wacom-0.33.0 ) )
+
+ !<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
+ !<net-wireless/gnome-bluetooth-3.3.2
+"
+# 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
+
+ dev-libs/libxml2:2
+ dev-libs/libxslt
+ >=dev-util/intltool-0.40.1
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+
+ gnome-base/gnome-common
+ sys-devel/autoconf-archive
+"
+# Needed for autoreconf
+# gnome-base/gnome-common
+# sys-devel/autoconf-archive
+
+PATCHES=(
+ # Make some panels and dependencies optional; requires eautoreconf
+ # https://bugzilla.gnome.org/686840, 697478, 700145
+ "${FILESDIR}"/${PV}-optional.patch
+ "${FILESDIR}"/${PV}-optional-wayland.patch
+ "${FILESDIR}"/${PV}-optional-networkmanager.patch
+ "${FILESDIR}"/${PV}-optional-cups.patch
+ # Fix some absolute paths to be appropriate for Gentoo
+ "${FILESDIR}"/${PV}-gentoo-paths.patch
+ # https://bugzilla.gnome.org/show_bug.cgi?id=780544
+ "${FILESDIR}"/${PV}-fix-without-gdkwayland.patch
+)
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-update-mimedb \
+ --disable-static \
+ --enable-documentation \
+ $(use_enable bluetooth) \
+ $(use_enable colord color) \
+ $(use_enable cups) \
+ $(usex debug --enable-debug=yes ' ') \
+ $(use_enable gnome-online-accounts goa) \
+ $(use_enable ibus) \
+ $(use_enable kerberos) \
+ $(use_enable networkmanager) \
+ $(use_with v4l cheese) \
+ $(use_enable input_devices_wacom wacom) \
+ $(use_enable wayland)
+}
+
+src_install() {
+ gnome2_src_install completiondir="$(get_bashcompdir)"
+}
diff --git a/gnome-base/gnome-control-center/gnome-control-center-3.24.3.ebuild b/gnome-base/gnome-control-center/gnome-control-center-3.24.3.ebuild
new file mode 100644
index 000000000000..4935e46c8860
--- /dev/null
+++ b/gnome-base/gnome-control-center/gnome-control-center-3.24.3.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+GNOME2_LA_PUNT="yes"
+GNOME2_EAUTORECONF="yes"
+
+inherit bash-completion-r1 gnome2
+
+DESCRIPTION="GNOME's main interface to configure various aspects of the desktop"
+HOMEPAGE="https://git.gnome.org/browse/gnome-control-center/"
+
+LICENSE="GPL-2+"
+SLOT="2"
+IUSE="+bluetooth +colord +cups debug +gnome-online-accounts +ibus input_devices_wacom kerberos networkmanager v4l wayland"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sh ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris"
+
+# False positives caused by nested configure scripts
+QA_CONFIGURE_OPTIONS=".*"
+
+# gnome-session-2.91.6-r1 is needed so that 10-user-dirs-update is run at login
+# g-s-d[policykit] needed for bug #403527
+# kerberos unfortunately means mit-krb5; build fails with heimdal
+# udev could be made optional, only conditions gsd-device-panel
+# (mouse, keyboards, touchscreen, etc)
+# display panel requires colord
+# printer panel requires cups and smbclient (the latter is not patch yet to be separately optional)
+COMMON_DEPEND="
+ >=dev-libs/glib-2.44.0:2[dbus]
+ >=x11-libs/gdk-pixbuf-2.23.0:2
+ >=x11-libs/gtk+-3.22.0:3[X,wayland?]
+ >=gnome-base/gsettings-desktop-schemas-3.21.4
+ >=gnome-base/gnome-desktop-3.21.2:3=
+ >=gnome-base/gnome-settings-daemon-3.23.90[colord?,policykit]
+ >=x11-misc/colord-0.1.34:0=
+
+ >=dev-libs/libpwquality-1.2.2
+ dev-libs/libxml2:2
+ gnome-base/libgtop:2=
+ media-libs/fontconfig
+ >=sys-apps/accountsservice-0.6.39
+
+ >=media-libs/libcanberra-0.13[gtk3]
+ >=media-sound/pulseaudio-2[glib]
+ >=sys-auth/polkit-0.97
+ >=sys-power/upower-0.99:=
+
+ virtual/libgudev
+ x11-apps/xmodmap
+ x11-libs/cairo
+ x11-libs/libX11
+ x11-libs/libXxf86misc
+ >=x11-libs/libXi-1.2
+
+ bluetooth? ( >=net-wireless/gnome-bluetooth-3.18.2:= )
+ colord? (
+ net-libs/libsoup:2.4
+ >=x11-misc/colord-0.1.34:0=
+ >=x11-libs/colord-gtk-0.1.24 )
+ cups? (
+ >=net-print/cups-1.4[dbus]
+ >=net-fs/samba-4.0.0[client]
+ )
+ gnome-online-accounts? (
+ >=media-libs/grilo-0.3.0:0.3=
+ >=net-libs/gnome-online-accounts-3.21.5:= )
+ ibus? ( >=app-i18n/ibus-1.5.2 )
+ kerberos? ( app-crypt/mit-krb5 )
+ networkmanager? (
+ >=gnome-extra/nm-applet-1.2.0
+ >=net-misc/networkmanager-1.2.0:=[modemmanager]
+ >=net-misc/modemmanager-0.7.990 )
+ v4l? (
+ media-libs/clutter-gtk:1.0
+ >=media-video/cheese-3.5.91 )
+ input_devices_wacom? (
+ >=dev-libs/libwacom-0.7
+ >=media-libs/clutter-1.11.3:1.0
+ media-libs/clutter-gtk:1.0
+ >=x11-libs/libXi-1.2 )
+"
+# <gnome-color-manager-3.1.2 has file collisions with g-c-c-3.1.x
+# libgnomekbd needed only for gkbd-keyboard-display tool
+#
+# mouse panel needs a concrete set of X11 drivers at runtime, bug #580474
+# Also we need newer driver versions to allow wacom and libinput drivers to
+# not collide
+#
+# system-config-printer provides org.fedoraproject.Config.Printing service and interface
+# cups-pk-helper provides org.opensuse.cupspkhelper.mechanism.all-edit policykit helper policy
+RDEPEND="${COMMON_DEPEND}
+ || ( >=sys-apps/systemd-31 ( app-admin/openrc-settingsd sys-auth/consolekit ) )
+ x11-themes/adwaita-icon-theme
+ colord? ( >=gnome-extra/gnome-color-manager-3 )
+ cups? (
+ app-admin/system-config-printer
+ net-print/cups-pk-helper )
+ input_devices_wacom? ( gnome-base/gnome-settings-daemon[input_devices_wacom] )
+ >=gnome-base/libgnomekbd-3
+ wayland? ( dev-libs/libinput )
+ !wayland? (
+ >=x11-drivers/xf86-input-libinput-0.19.0
+ input_devices_wacom? ( >=x11-drivers/xf86-input-wacom-0.33.0 ) )
+
+ !<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
+ !<net-wireless/gnome-bluetooth-3.3.2
+"
+# 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
+
+ dev-libs/libxml2:2
+ dev-libs/libxslt
+ >=dev-util/intltool-0.40.1
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+
+ gnome-base/gnome-common
+ sys-devel/autoconf-archive
+"
+# Needed for autoreconf
+# gnome-base/gnome-common
+# sys-devel/autoconf-archive
+
+PATCHES=(
+ # Make some panels and dependencies optional; requires eautoreconf
+ # https://bugzilla.gnome.org/686840, 697478, 700145
+ "${FILESDIR}"/3.24.2-optional.patch
+ "${FILESDIR}"/3.24.2-optional-wayland.patch
+ "${FILESDIR}"/3.24.2-optional-networkmanager.patch
+ "${FILESDIR}"/3.24.2-optional-cups.patch
+ # Fix some absolute paths to be appropriate for Gentoo
+ "${FILESDIR}"/3.24.2-gentoo-paths.patch
+ # https://bugzilla.gnome.org/show_bug.cgi?id=780544
+ "${FILESDIR}"/3.24.2-fix-without-gdkwayland.patch
+)
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-update-mimedb \
+ --disable-static \
+ --enable-documentation \
+ $(use_enable bluetooth) \
+ $(use_enable colord color) \
+ $(use_enable cups) \
+ $(usex debug --enable-debug=yes ' ') \
+ $(use_enable gnome-online-accounts goa) \
+ $(use_enable ibus) \
+ $(use_enable kerberos) \
+ $(use_enable networkmanager) \
+ $(use_with v4l cheese) \
+ $(use_enable input_devices_wacom wacom) \
+ $(use_enable wayland)
+}
+
+src_install() {
+ gnome2_src_install completiondir="$(get_bashcompdir)"
+}
diff --git a/gnome-base/gnome-control-center/metadata.xml b/gnome-base/gnome-control-center/metadata.xml
new file mode 100644
index 000000000000..4e40862668dd
--- /dev/null
+++ b/gnome-base/gnome-control-center/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <use>
+ <flag name="colord">Support color management using
+ <pkg>x11-misc/colord</pkg></flag>
+ <flag name="gnome-online-accounts">Enable configuration panel for
+ <pkg>net-libs/gnome-online-accounts</pkg> accounts</flag>
+ <flag name="ibus">Enable support for enhanced input methods through
+ <pkg>app-i18n/ibus</pkg></flag>
+ </use>
+</pkgmetadata>