summaryrefslogtreecommitdiffstats
path: root/external/meta-openembedded/meta-oe/recipes-support/colord/colord-native
diff options
context:
space:
mode:
Diffstat (limited to 'external/meta-openembedded/meta-oe/recipes-support/colord/colord-native')
-rw-r--r--external/meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch166
-rw-r--r--external/meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile48
2 files changed, 214 insertions, 0 deletions
diff --git a/external/meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch b/external/meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch
new file mode 100644
index 00000000..278b90e0
--- /dev/null
+++ b/external/meta-openembedded/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch
@@ -0,0 +1,166 @@
+From cbb8f5c05fce1d56ae2e5fa9f57fc49c47bed5ab Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 12 May 2019 21:58:02 +0200
+Subject: [PATCH] Move the function cd_icc_create_from_edid to avoid udev
+ dependeny
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We do not have udev-native so it is a dependeny we cannot satisfy
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ lib/colord/cd-edid.c | 63 ++++++++++++++++++++++++++++++++++++++++++++
+ lib/colord/cd-icc.c | 62 -------------------------------------------
+ 2 files changed, 63 insertions(+), 62 deletions(-)
+
+diff --git a/lib/colord/cd-edid.c b/lib/colord/cd-edid.c
+index a5e2328..dec509a 100644
+--- a/lib/colord/cd-edid.c
++++ b/lib/colord/cd-edid.c
+@@ -687,3 +687,66 @@ cd_edid_new (void)
+ edid = g_object_new (CD_TYPE_EDID, NULL);
+ return CD_EDID (edid);
+ }
++
++/**
++ * cd_icc_create_from_edid_data:
++ * @icc: A valid #CdIcc
++ * @edid: EDID data
++ * @error: A #GError, or %NULL
++ *
++ * Creates an ICC profile from EDID data.
++ *
++ * Return value: %TRUE for success
++ *
++ * Since: 1.1.2
++ **/
++gboolean
++cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error)
++{
++ CdIccPrivate *priv = GET_PRIVATE (icc);
++ const gchar *data;
++
++ /* not loaded */
++ if (priv->lcms_profile != NULL) {
++ g_set_error_literal (error,
++ CD_ICC_ERROR,
++ CD_ICC_ERROR_FAILED_TO_CREATE,
++ "already loaded or generated");
++ return FALSE;
++ }
++
++ /* create from parsed object */
++ if (!cd_icc_create_from_edid (icc,
++ cd_edid_get_gamma (edid),
++ cd_edid_get_red (edid),
++ cd_edid_get_green (edid),
++ cd_edid_get_blue (edid),
++ cd_edid_get_white (edid),
++ error)) {
++ return FALSE;
++ }
++
++ /* set copyright */
++ cd_icc_set_copyright (icc, NULL,
++ /* deliberately not translated */
++ "This profile is free of known copyright restrictions.");
++
++ /* set 'ICC meta Tag for Monitor Profiles' data */
++ data = cd_edid_get_checksum (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data);
++ data = cd_edid_get_monitor_name (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data);
++ data = cd_edid_get_serial_number (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data);
++ data = cd_edid_get_pnp_id (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data);
++ data = cd_edid_get_vendor_name (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data);
++ return TRUE;
++}
++
+diff --git a/lib/colord/cd-icc.c b/lib/colord/cd-icc.c
+index f231814..2c8fe77 100644
+--- a/lib/colord/cd-icc.c
++++ b/lib/colord/cd-icc.c
+@@ -3094,68 +3094,6 @@ out:
+ return ret;
+ }
+
+-/**
+- * cd_icc_create_from_edid_data:
+- * @icc: A valid #CdIcc
+- * @edid: EDID data
+- * @error: A #GError, or %NULL
+- *
+- * Creates an ICC profile from EDID data.
+- *
+- * Return value: %TRUE for success
+- *
+- * Since: 1.1.2
+- **/
+-gboolean
+-cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error)
+-{
+- CdIccPrivate *priv = GET_PRIVATE (icc);
+- const gchar *data;
+-
+- /* not loaded */
+- if (priv->lcms_profile != NULL) {
+- g_set_error_literal (error,
+- CD_ICC_ERROR,
+- CD_ICC_ERROR_FAILED_TO_CREATE,
+- "already loaded or generated");
+- return FALSE;
+- }
+-
+- /* create from parsed object */
+- if (!cd_icc_create_from_edid (icc,
+- cd_edid_get_gamma (edid),
+- cd_edid_get_red (edid),
+- cd_edid_get_green (edid),
+- cd_edid_get_blue (edid),
+- cd_edid_get_white (edid),
+- error)) {
+- return FALSE;
+- }
+-
+- /* set copyright */
+- cd_icc_set_copyright (icc, NULL,
+- /* deliberately not translated */
+- "This profile is free of known copyright restrictions.");
+-
+- /* set 'ICC meta Tag for Monitor Profiles' data */
+- data = cd_edid_get_checksum (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data);
+- data = cd_edid_get_monitor_name (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data);
+- data = cd_edid_get_serial_number (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data);
+- data = cd_edid_get_pnp_id (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data);
+- data = cd_edid_get_vendor_name (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data);
+- return TRUE;
+-}
+-
+ /**
+ * cd_icc_create_from_edid:
+ * @icc: A valid #CdIcc
+--
+2.20.1
+
diff --git a/external/meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile b/external/meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile
new file mode 100644
index 00000000..1e29e4f6
--- /dev/null
+++ b/external/meta-openembedded/meta-oe/recipes-support/colord/colord-native/Makefile
@@ -0,0 +1,48 @@
+# For native build cd_idt8, cd_create_profile and a tiny version of libcolord.so
+# only. By reducing the library to what's necessary, we avoid dependencies on
+# naitve udev and libgudev
+
+CFLAGS+=$(shell pkg-config-native --cflags gio-2.0)
+CFLAGS+=$(shell pkg-config-native --cflags lcms2)
+CFLAGS+=-std=c99 -I./lib -I./lib/colord -I$(DESTDIR) -DCD_COMPILATION
+
+LDFLAGS+=$(shell pkg-config-native --libs gio-2.0)
+LDFLAGS+=$(shell pkg-config-native --libs lcms2)
+LDFLAGS+=-lm
+
+all: cd_idt8 cd_create_profile
+
+LIBSOURCES = \
+ lib/colord/cd-it8.c \
+ lib/colord/cd-color.c \
+ lib/colord/cd-spectrum.c \
+ lib/colord/cd-math.c \
+ lib/colord/cd-interp-akima.c \
+ lib/colord/cd-context-lcms.c \
+ lib/colord/cd-interp.c \
+ lib/colord/cd-interp-linear.c \
+ lib/colord/cd-it8-utils.c \
+ lib/colord/cd-enum.c \
+ lib/colord/cd-icc.c \
+ lib/colord/cd-icc-utils.c \
+ lib/colord/cd-dom.c
+
+libcolord.so: $(LIBSOURCES)
+ $(CC) $(CFLAGS) -L$(DESTDIR) -fPIC -shared -Wl,-soname,$@ $^ -o $(DESTDIR)/$@ $(LDFLAGS)
+
+cd_idt8.o: client/cd-it8.c
+ $(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@
+
+cd_idt8: libcolord.so cd_idt8.o
+ $(CC) $(DESTDIR)/cd_idt8.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS)
+
+cd_create_profile.o: client/cd-create-profile.c
+ $(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@
+
+cd_create_profile: libcolord.so cd_create_profile.o
+ $(CC) $(DESTDIR)/cd_create_profile.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS)
+
+.PHONY: clean
+
+clean:
+ rm -f $(DESTDIR)/libcolord.so $(DESTDIR)/*.o $(DESTDIR)/cd_idt8 $(DESTDIR)/cd_create_profile