]> git.bzium.org - embe/overlay.git/commitdiff
Dodanie: x11-misc/colord-1.2.11
authorMichał Bartoszkiewicz <mbartoszkiewicz@gmail.com>
Mon, 20 Jul 2015 12:12:06 +0000 (14:12 +0200)
committerMichał Bartoszkiewicz <mbartoszkiewicz@gmail.com>
Mon, 20 Jul 2015 12:12:06 +0000 (14:12 +0200)
x11-misc/colord/Manifest [new file with mode: 0644]
x11-misc/colord/colord-1.2.11.ebuild [new file with mode: 0644]
x11-misc/colord/files/colord-1.2.11-multiple-users.patch [new file with mode: 0644]

diff --git a/x11-misc/colord/Manifest b/x11-misc/colord/Manifest
new file mode 100644 (file)
index 0000000..2ab5db3
--- /dev/null
@@ -0,0 +1 @@
+DIST colord-1.2.11.tar.xz 1205468 SHA256 dac29c83659703a8548db561bc670832f26b30f7a88ed90a6530eb052a10df8f SHA512 fec46d295b1b4caba7c0a666eccbf3ce325fab4bd56e6a841cfdd9b7a381384dff3c71a744dda0e88ed2e99519c278c1ee495e6b8870c74cb4939dbc08d4bb96 WHIRLPOOL 7372d1a52c897e133fa75c8e06c47b3f7035cb01a3ec858f74ddc741613b11554a2d6dac6c886347f4e82baa16091cc41232a5deb3db4ae5a4930be0d1de6f41
diff --git a/x11-misc/colord/colord-1.2.11.ebuild b/x11-misc/colord/colord-1.2.11.ebuild
new file mode 100644 (file)
index 0000000..6e6c4f1
--- /dev/null
@@ -0,0 +1,173 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-misc/colord/colord-1.2.11.ebuild,v 1.1 2015/07/05 08:43:40 pacho Exp $
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+VALA_USE_DEPEND="vapigen"
+
+inherit autotools bash-completion-r1 check-reqs eutils gnome2 user systemd udev vala multilib-minimal
+
+DESCRIPTION="System service to accurately color manage input and output devices"
+HOMEPAGE="http://www.freedesktop.org/software/colord/"
+SRC_URI="http://www.freedesktop.org/software/colord/releases/${P}.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="0/2" # subslot = libcolord soname version
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+
+# We prefer policykit enabled by default, bug #448058
+IUSE="argyllcms examples extra-print-profiles +gusb +introspection +policykit scanner systemd +udev vala"
+REQUIRED_USE="
+       gusb? ( udev )
+       scanner? ( udev )
+       vala? ( introspection )
+"
+
+COMMON_DEPEND="
+       dev-db/sqlite:3=
+       >=dev-libs/glib-2.36:2[${MULTILIB_USEDEP}]
+       >=media-libs/lcms-2.6:2=[${MULTILIB_USEDEP}]
+       argyllcms? ( media-gfx/argyllcms )
+       gusb? ( >=dev-libs/libgusb-0.2.2[introspection?,${MULTILIB_USEDEP}] )
+       introspection? ( >=dev-libs/gobject-introspection-0.9.8:= )
+       policykit? ( >=sys-auth/polkit-0.103 )
+       scanner? (
+               media-gfx/sane-backends
+               sys-apps/dbus )
+       systemd? ( >=sys-apps/systemd-44:0= )
+       udev? (
+               virtual/udev
+               virtual/libgudev:=
+               virtual/libudev:=[${MULTILIB_USEDEP}]
+       )
+"
+RDEPEND="${COMMON_DEPEND}
+       !media-gfx/shared-color-profiles
+       !<=media-gfx/colorhug-client-0.1.13
+"
+DEPEND="${COMMON_DEPEND}
+       dev-libs/libxslt
+       >=dev-util/gtk-doc-am-1.9
+       >=dev-util/intltool-0.35
+       >=sys-devel/gettext-0.17
+       virtual/pkgconfig[${MULTILIB_USEDEP}]
+       extra-print-profiles? ( media-gfx/argyllcms )
+       vala? ( $(vala_depend) )
+"
+
+# FIXME: needs pre-installed dbus service files
+RESTRICT="test"
+
+# According to upstream comment in colord.spec.in, building the extra print
+# profiles requires >=4G of memory
+CHECKREQS_MEMORY="4G"
+
+pkg_pretend() {
+       use extra-print-profiles && check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+       use extra-print-profiles && check-reqs_pkg_setup
+       enewgroup colord
+       enewuser colord -1 -1 /var/lib/colord colord
+}
+
+src_prepare() {
+       # Adapt to Gentoo paths
+       sed -i -e 's/spotread/argyll-spotread/' \
+               src/sensors/cd-sensor-argyll.c \
+               configure.ac || die
+
+       epatch "${FILESDIR}"/${P}-multiple-users.patch
+
+       eautoreconf
+       use vala && vala_src_prepare
+       gnome2_src_prepare
+}
+
+multilib_src_configure() {
+       # Reverse tools require gusb
+       # bash-completion test does not work on gentoo
+       local myconf=(
+               --disable-bash-completion
+               --disable-examples
+               --disable-static
+               --enable-libcolordcompat
+               --with-daemon-user=colord
+               --localstatedir="${EPREFIX}"/var
+               $(multilib_native_use_enable argyllcms argyllcms-sensor)
+               $(multilib_native_use_enable extra-print-profiles print-profiles)
+               $(multilib_native_usex extra-print-profiles COLPROF="$(type -P argyll-colprof)" "")
+               $(use_enable gusb)
+               $(multilib_native_use_enable gusb reverse)
+               $(multilib_native_use_enable introspection)
+               $(multilib_native_use_enable policykit polkit)
+               $(multilib_native_use_enable scanner sane)
+               $(multilib_native_use_enable systemd systemd-login)
+               $(use_enable udev)
+               --with-udevrulesdir="$(get_udevdir)"/rules.d
+               $(multilib_native_use_enable vala)
+               "$(systemd_with_unitdir)"
+       )
+
+       if ! multilib_is_native_abi; then
+               # disable some extraneous checks
+               myconf+=(
+                       SQLITE_{CFLAGS,LIBS}=' '
+                       GUDEV_{CFLAGS,LIBS}=' '
+               )
+       fi
+
+       ECONF_SOURCE=${S} \
+       gnome2_src_configure "${myconf[@]}"
+}
+
+multilib_src_compile() {
+       if multilib_is_native_abi; then
+               gnome2_src_compile
+       else
+               emake -C lib/colord
+               use gusb && emake -C lib/colorhug
+               emake -C lib/compat
+       fi
+}
+
+multilib_src_test() {
+       if multilib_is_native_abi; then
+               default
+       else
+               emake -C lib/colord check
+               use gusb && emake -C lib/colorhug check
+               emake -C lib/compat check
+       fi
+}
+
+multilib_src_install() {
+       if multilib_is_native_abi; then
+               gnome2_src_install
+       else
+               gnome2_src_install -C lib/colord
+               use gusb && gnome2_src_install -C lib/colorhug
+               gnome2_src_install -C lib/compat
+               gnome2_src_install -C contrib/session-helper install-libcolord_includeHEADERS
+       fi
+}
+
+multilib_src_install_all() {
+       DOCS="AUTHORS ChangeLog MAINTAINERS NEWS README.md TODO"
+       einstalldocs
+
+       newbashcomp data/colormgr colormgr
+
+       # Ensure config and profile directories exist and /var/lib/colord/*
+       # is writable by colord user
+       keepdir /var/lib/color{,d}/icc
+       fowners colord:colord /var/lib/colord{,/icc}
+
+       if use examples; then
+               docinto examples
+               dodoc examples/*.c
+       fi
+}
diff --git a/x11-misc/colord/files/colord-1.2.11-multiple-users.patch b/x11-misc/colord/files/colord-1.2.11-multiple-users.patch
new file mode 100644 (file)
index 0000000..e8e755b
--- /dev/null
@@ -0,0 +1,148 @@
+From eeac836f256fe07004d67e13c3c89532982af9bd Mon Sep 17 00:00:00 2001
+From: Richard Hughes <richard@hughsie.com>
+Date: Mon, 20 Jul 2015 10:57:28 +0100
+Subject: [PATCH] Allow creating devices with the same device ID from different
+ users
+
+---
+ src/cd-device-array.c | 13 ++++++++-----
+ src/cd-device-array.h |  9 ++++++++-
+ src/cd-main.c         | 15 ++++++++++-----
+ src/cd-self-test.c    |  7 +++++--
+ 4 files changed, 31 insertions(+), 13 deletions(-)
+
+diff --git a/src/cd-device-array.c b/src/cd-device-array.c
+index 88d4b2c..41a9597 100644
+--- a/src/cd-device-array.c
++++ b/src/cd-device-array.c
+@@ -76,7 +76,8 @@ cd_device_array_remove (CdDeviceArray *device_array, CdDevice *device)
+ CdDevice *
+ cd_device_array_get_by_id_owner (CdDeviceArray *device_array,
+                                const gchar *id,
+-                               guint owner)
++                               guint owner,
++                               CdDeviceArrayFlags flags)
+ {
+       CdDeviceArrayPrivate *priv = device_array->priv;
+       CdDevice *device_tmp;
+@@ -90,10 +91,12 @@ cd_device_array_get_by_id_owner (CdDeviceArray *device_array,
+               if (g_strcmp0 (cd_device_get_id (device_tmp), id) == 0)
+                       return g_object_ref (device_tmp);
+       }
+-      for (i = 0; i < priv->array->len; i++) {
+-              device_tmp = g_ptr_array_index (priv->array, i);
+-              if (g_strcmp0 (cd_device_get_id (device_tmp), id) == 0)
+-                      return g_object_ref (device_tmp);
++      if (flags & CD_DEVICE_ARRAY_FLAG_OWNER_OPTIONAL) {
++              for (i = 0; i < priv->array->len; i++) {
++                      device_tmp = g_ptr_array_index (priv->array, i);
++                      if (g_strcmp0 (cd_device_get_id (device_tmp), id) == 0)
++                              return g_object_ref (device_tmp);
++              }
+       }
+       return NULL;
+ }
+diff --git a/src/cd-device-array.h b/src/cd-device-array.h
+index b625dbf..31dc067 100644
+--- a/src/cd-device-array.h
++++ b/src/cd-device-array.h
+@@ -50,6 +50,12 @@ struct _CdDeviceArrayClass
+       GObjectClass             parent_class;
+ };
++typedef enum {
++      CD_DEVICE_ARRAY_FLAG_NONE               = 0,
++      CD_DEVICE_ARRAY_FLAG_OWNER_OPTIONAL     = 1,
++      CD_DEVICE_ARRAY_FLAG_LAST,
++} CdDeviceArrayFlags;
++
+ GType          cd_device_array_get_type               (void);
+ CdDeviceArray *cd_device_array_new                    (void);
+@@ -59,7 +65,8 @@ void          cd_device_array_remove                 (CdDeviceArray  *device_array,
+                                                        CdDevice       *device);
+ CdDevice      *cd_device_array_get_by_id_owner        (CdDeviceArray  *device_array,
+                                                        const gchar    *id,
+-                                                       guint           owner);
++                                                       guint           owner,
++                                                       CdDeviceArrayFlags flags);
+ CdDevice      *cd_device_array_get_by_object_path     (CdDeviceArray  *device_array,
+                                                        const gchar    *object_path);
+ CdDevice      *cd_device_array_get_by_property        (CdDeviceArray  *device_array,
+diff --git a/src/cd-main.c b/src/cd-main.c
+index b5b3a4f..37817e3 100644
+--- a/src/cd-main.c
++++ b/src/cd-main.c
+@@ -720,7 +720,8 @@ cd_main_profile_auto_add_from_db (CdMainPrivate *priv,
+               device_id_tmp = g_ptr_array_index (array, i);
+               device_tmp = cd_device_array_get_by_id_owner (priv->devices_array,
+                                                             device_id_tmp,
+-                                                            cd_profile_get_owner (profile));
++                                                            cd_profile_get_owner (profile),
++                                                            CD_DEVICE_ARRAY_FLAG_OWNER_OPTIONAL);
+               if (device_tmp == NULL)
+                       continue;
+@@ -747,7 +748,8 @@ cd_main_profile_auto_add_from_md (CdMainPrivate *priv,
+               return;
+       device = cd_device_array_get_by_id_owner (priv->devices_array,
+                                                 device_id,
+-                                                cd_profile_get_owner (profile));
++                                                cd_profile_get_owner (profile),
++                                                CD_DEVICE_ARRAY_FLAG_OWNER_OPTIONAL);
+       if (device == NULL)
+               return;
+       cd_main_auto_add_from_md (priv, device, profile);
+@@ -1022,7 +1024,8 @@ cd_main_daemon_method_call (GDBusConnection *connection, const gchar *sender,
+                        sender, device_id);
+               device = cd_device_array_get_by_id_owner (priv->devices_array,
+                                                         device_id,
+-                                                        uid);
++                                                        uid,
++                                                        CD_DEVICE_ARRAY_FLAG_OWNER_OPTIONAL);
+               if (device == NULL) {
+                       g_dbus_method_invocation_return_error (invocation,
+                                                              CD_CLIENT_ERROR,
+@@ -1279,7 +1282,8 @@ cd_main_daemon_method_call (GDBusConnection *connection, const gchar *sender,
+               }
+               device = cd_device_array_get_by_id_owner (priv->devices_array,
+                                                         device_id,
+-                                                        uid);
++                                                        uid,
++                                                        CD_DEVICE_ARRAY_FLAG_NONE);
+               if (device != NULL) {
+                       /* where we try to manually add an existing
+                        * virtual device, which means promoting it to
+@@ -1399,7 +1403,8 @@ cd_main_daemon_method_call (GDBusConnection *connection, const gchar *sender,
+                        sender, device_id);
+               device = cd_device_array_get_by_id_owner (priv->devices_array,
+                                                         device_id,
+-                                                        uid);
++                                                        uid,
++                                                        CD_DEVICE_ARRAY_FLAG_OWNER_OPTIONAL);
+               if (device == NULL) {
+                       /* fall back to checking the object path */
+                       device = cd_device_array_get_by_object_path (priv->devices_array,
+diff --git a/src/cd-self-test.c b/src/cd-self-test.c
+index 4a76d07..6536d3c 100644
+--- a/src/cd-self-test.c
++++ b/src/cd-self-test.c
+@@ -178,10 +178,13 @@ colord_device_array_func (void)
+       cd_device_array_add (device_array, device);
+       g_object_unref (device);
+-      device = cd_device_array_get_by_id_owner (device_array, "does not exist", 0);
++      device = cd_device_array_get_by_id_owner (device_array, "does not exist", 0, CD_DEVICE_ARRAY_FLAG_OWNER_OPTIONAL);
+       g_assert (device == NULL);
+-      device = cd_device_array_get_by_id_owner (device_array, "dave", 0);
++      device = cd_device_array_get_by_id_owner (device_array, "dave", 999, CD_DEVICE_ARRAY_FLAG_NONE);
++      g_assert (device == NULL);
++
++      device = cd_device_array_get_by_id_owner (device_array, "dave", 0, CD_DEVICE_ARRAY_FLAG_OWNER_OPTIONAL);
+       g_assert (device != NULL);
+       g_assert_cmpstr (cd_device_get_id (device), ==, "dave");
+       g_object_unref (device);
+-- 
+2.4.3
+