summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-support/colord/colord-native.bb64
-rw-r--r--meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch166
-rw-r--r--meta-oe/recipes-support/colord/colord-native/Makefile48
-rw-r--r--meta-oe/recipes-support/colord/colord.bb45
-rw-r--r--meta-oe/recipes-support/colord/colord.inc13
-rw-r--r--meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch59
6 files changed, 395 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/colord/colord-native.bb b/meta-oe/recipes-support/colord/colord-native.bb
new file mode 100644
index 0000000000..845041cc43
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord-native.bb
@@ -0,0 +1,64 @@
1require ${BPN}.inc
2
3FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}-native:"
4
5inherit meson native
6
7DEPENDS += " \
8 meson-native \
9 glib-2.0-native \
10 lcms-native \
11"
12
13SRC_URI += " \
14 file://0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch \
15 file://Makefile;subdir=${BPN}-${PV} \
16"
17
18do_configure() {
19 # we expect meson to fail - but before it extracts project's version in log file
20 meson ${MESONOPTS} "${MESON_SOURCEPATH}" "${B}" ${MESON_CROSS_FILE} ${EXTRA_OEMESON} > /dev/null 2>&1 || true
21
22 # extract and split version
23 version=`grep 'Project version:' ${B}/meson-logs/meson-log.txt | sed 's|Project version: ||'`
24 major=`echo $version | cut -d. -f1`
25 minor=`echo $version | cut -d. -f2`
26 micro=`echo $version | cut -d. -f3`
27 echo "Project version: $major.$minor.$micro"
28
29 # extract project name
30 proj_name=`grep 'Project name:' ${B}/meson-logs/meson-log.txt | sed 's|Project name: ||'`
31
32 # create cd-version.h
33 mkdir -p ${B}/colord
34 sed ${S}/lib/colord/cd-version.h.in \
35 -e 's:@CD_MAJOR_VERSION_PRIVATE@:1:g' \
36 -e 's:@CD_MINOR_VERSION_PRIVATE@:4:g' \
37 -e 's:@CD_MICRO_VERSION_PRIVATE@:4:g' \
38 > ${B}/colord/cd-version.h
39
40 # create config.h based on target build and add what's necessary only
41 localedir=`echo ${datadir}/locale | sed 's:${prefix}/::g'`
42 echo "#define LOCALEDIR \"$localedir\"" >> ${B}/config.h
43 echo "#define GETTEXT_PACKAGE \"colord\"" >> ${B}/config.h
44 echo "#define PACKAGE_NAME \"$proj_name\"" >> ${B}/config.h
45 echo "#define PACKAGE_VERSION \"$version\"" >> ${B}/config.h
46}
47
48do_compile() {
49 oe_runmake -C${S} DESTDIR=${B}
50}
51
52do_install() {
53 version=`grep 'Project version:' ${B}/meson-logs/meson-log.txt | sed 's|Project version: ||'`
54 major=`echo $version | cut -d. -f1`
55
56 install -d ${D}${libdir}
57 install -m 755 ${B}/libcolord.so ${D}${libdir}/libcolord.so.$version
58 ln -s libcolord.so.$version "${D}/${libdir}/libcolord.so"
59 ln -s libcolord.so.$version "${D}/${libdir}/libcolord.so.$major"
60
61 install -d ${D}${bindir}
62 install -m 755 ${B}/cd_create_profile ${D}${bindir}/
63 install -m 755 ${B}/cd_idt8 ${D}${bindir}/
64}
diff --git a/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch b/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 0000000000..278b90e076
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch
@@ -0,0 +1,166 @@
1From cbb8f5c05fce1d56ae2e5fa9f57fc49c47bed5ab Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
3Date: Sun, 12 May 2019 21:58:02 +0200
4Subject: [PATCH] Move the function cd_icc_create_from_edid to avoid udev
5 dependeny
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10We do not have udev-native so it is a dependeny we cannot satisfy
11
12Upstream-Status: Inappropriate [OE specific]
13
14Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
15---
16 lib/colord/cd-edid.c | 63 ++++++++++++++++++++++++++++++++++++++++++++
17 lib/colord/cd-icc.c | 62 -------------------------------------------
18 2 files changed, 63 insertions(+), 62 deletions(-)
19
20diff --git a/lib/colord/cd-edid.c b/lib/colord/cd-edid.c
21index a5e2328..dec509a 100644
22--- a/lib/colord/cd-edid.c
23+++ b/lib/colord/cd-edid.c
24@@ -687,3 +687,66 @@ cd_edid_new (void)
25 edid = g_object_new (CD_TYPE_EDID, NULL);
26 return CD_EDID (edid);
27 }
28+
29+/**
30+ * cd_icc_create_from_edid_data:
31+ * @icc: A valid #CdIcc
32+ * @edid: EDID data
33+ * @error: A #GError, or %NULL
34+ *
35+ * Creates an ICC profile from EDID data.
36+ *
37+ * Return value: %TRUE for success
38+ *
39+ * Since: 1.1.2
40+ **/
41+gboolean
42+cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error)
43+{
44+ CdIccPrivate *priv = GET_PRIVATE (icc);
45+ const gchar *data;
46+
47+ /* not loaded */
48+ if (priv->lcms_profile != NULL) {
49+ g_set_error_literal (error,
50+ CD_ICC_ERROR,
51+ CD_ICC_ERROR_FAILED_TO_CREATE,
52+ "already loaded or generated");
53+ return FALSE;
54+ }
55+
56+ /* create from parsed object */
57+ if (!cd_icc_create_from_edid (icc,
58+ cd_edid_get_gamma (edid),
59+ cd_edid_get_red (edid),
60+ cd_edid_get_green (edid),
61+ cd_edid_get_blue (edid),
62+ cd_edid_get_white (edid),
63+ error)) {
64+ return FALSE;
65+ }
66+
67+ /* set copyright */
68+ cd_icc_set_copyright (icc, NULL,
69+ /* deliberately not translated */
70+ "This profile is free of known copyright restrictions.");
71+
72+ /* set 'ICC meta Tag for Monitor Profiles' data */
73+ data = cd_edid_get_checksum (edid);
74+ if (data != NULL)
75+ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data);
76+ data = cd_edid_get_monitor_name (edid);
77+ if (data != NULL)
78+ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data);
79+ data = cd_edid_get_serial_number (edid);
80+ if (data != NULL)
81+ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data);
82+ data = cd_edid_get_pnp_id (edid);
83+ if (data != NULL)
84+ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data);
85+ data = cd_edid_get_vendor_name (edid);
86+ if (data != NULL)
87+ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data);
88+ return TRUE;
89+}
90+
91diff --git a/lib/colord/cd-icc.c b/lib/colord/cd-icc.c
92index f231814..2c8fe77 100644
93--- a/lib/colord/cd-icc.c
94+++ b/lib/colord/cd-icc.c
95@@ -3094,68 +3094,6 @@ out:
96 return ret;
97 }
98
99-/**
100- * cd_icc_create_from_edid_data:
101- * @icc: A valid #CdIcc
102- * @edid: EDID data
103- * @error: A #GError, or %NULL
104- *
105- * Creates an ICC profile from EDID data.
106- *
107- * Return value: %TRUE for success
108- *
109- * Since: 1.1.2
110- **/
111-gboolean
112-cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error)
113-{
114- CdIccPrivate *priv = GET_PRIVATE (icc);
115- const gchar *data;
116-
117- /* not loaded */
118- if (priv->lcms_profile != NULL) {
119- g_set_error_literal (error,
120- CD_ICC_ERROR,
121- CD_ICC_ERROR_FAILED_TO_CREATE,
122- "already loaded or generated");
123- return FALSE;
124- }
125-
126- /* create from parsed object */
127- if (!cd_icc_create_from_edid (icc,
128- cd_edid_get_gamma (edid),
129- cd_edid_get_red (edid),
130- cd_edid_get_green (edid),
131- cd_edid_get_blue (edid),
132- cd_edid_get_white (edid),
133- error)) {
134- return FALSE;
135- }
136-
137- /* set copyright */
138- cd_icc_set_copyright (icc, NULL,
139- /* deliberately not translated */
140- "This profile is free of known copyright restrictions.");
141-
142- /* set 'ICC meta Tag for Monitor Profiles' data */
143- data = cd_edid_get_checksum (edid);
144- if (data != NULL)
145- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data);
146- data = cd_edid_get_monitor_name (edid);
147- if (data != NULL)
148- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data);
149- data = cd_edid_get_serial_number (edid);
150- if (data != NULL)
151- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data);
152- data = cd_edid_get_pnp_id (edid);
153- if (data != NULL)
154- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data);
155- data = cd_edid_get_vendor_name (edid);
156- if (data != NULL)
157- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data);
158- return TRUE;
159-}
160-
161 /**
162 * cd_icc_create_from_edid:
163 * @icc: A valid #CdIcc
164--
1652.20.1
166
diff --git a/meta-oe/recipes-support/colord/colord-native/Makefile b/meta-oe/recipes-support/colord/colord-native/Makefile
new file mode 100644
index 0000000000..1e29e4f670
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord-native/Makefile
@@ -0,0 +1,48 @@
1# For native build cd_idt8, cd_create_profile and a tiny version of libcolord.so
2# only. By reducing the library to what's necessary, we avoid dependencies on
3# naitve udev and libgudev
4
5CFLAGS+=$(shell pkg-config-native --cflags gio-2.0)
6CFLAGS+=$(shell pkg-config-native --cflags lcms2)
7CFLAGS+=-std=c99 -I./lib -I./lib/colord -I$(DESTDIR) -DCD_COMPILATION
8
9LDFLAGS+=$(shell pkg-config-native --libs gio-2.0)
10LDFLAGS+=$(shell pkg-config-native --libs lcms2)
11LDFLAGS+=-lm
12
13all: cd_idt8 cd_create_profile
14
15LIBSOURCES = \
16 lib/colord/cd-it8.c \
17 lib/colord/cd-color.c \
18 lib/colord/cd-spectrum.c \
19 lib/colord/cd-math.c \
20 lib/colord/cd-interp-akima.c \
21 lib/colord/cd-context-lcms.c \
22 lib/colord/cd-interp.c \
23 lib/colord/cd-interp-linear.c \
24 lib/colord/cd-it8-utils.c \
25 lib/colord/cd-enum.c \
26 lib/colord/cd-icc.c \
27 lib/colord/cd-icc-utils.c \
28 lib/colord/cd-dom.c
29
30libcolord.so: $(LIBSOURCES)
31 $(CC) $(CFLAGS) -L$(DESTDIR) -fPIC -shared -Wl,-soname,$@ $^ -o $(DESTDIR)/$@ $(LDFLAGS)
32
33cd_idt8.o: client/cd-it8.c
34 $(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@
35
36cd_idt8: libcolord.so cd_idt8.o
37 $(CC) $(DESTDIR)/cd_idt8.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS)
38
39cd_create_profile.o: client/cd-create-profile.c
40 $(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@
41
42cd_create_profile: libcolord.so cd_create_profile.o
43 $(CC) $(DESTDIR)/cd_create_profile.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS)
44
45.PHONY: clean
46
47clean:
48 rm -f $(DESTDIR)/libcolord.so $(DESTDIR)/*.o $(DESTDIR)/cd_idt8 $(DESTDIR)/cd_create_profile
diff --git a/meta-oe/recipes-support/colord/colord.bb b/meta-oe/recipes-support/colord/colord.bb
new file mode 100644
index 0000000000..aa5d1d129b
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord.bb
@@ -0,0 +1,45 @@
1require ${BPN}.inc
2
3inherit meson gobject-introspection gsettings gettext bash-completion systemd distro_features_check useradd
4
5# polkit and gobject-introspection are mandatory and cannot be configured
6REQUIRED_DISTRO_FEATURES = "polkit gobject-introspection-data"
7UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
8
9DEPENDS += " \
10 ${BPN}-native \
11 glib-2.0 \
12 lcms \
13 sqlite3 \
14 libgusb \
15 libgudev \
16 polkit \
17"
18
19SRC_URI += " \
20 file://0001-Run-native-cd_idt8-cd_create_profile.patch \
21"
22
23EXTRA_OEMESON = " \
24 -Dman=false \
25 -Ddocs=false \
26"
27
28PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
29PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
30
31SYSTEMD_SERVICE_${PN} = "colord.service"
32
33FILES_${PN} += " \
34 ${datadir}/dbus-1 \
35 ${datadir}/polkit-1 \
36 ${datadir}/glib-2.0 \
37 ${datadir}/color \
38 ${systemd_user_unitdir} \
39 ${libdir}/tmpfiles.d \
40 ${libdir}/colord-plugins \
41 ${libdir}/colord-sensors \
42"
43
44USERADD_PACKAGES = "${PN}"
45USERADD_PARAM_${PN} = "--system --user-group -d /var/lib/colord -s /bin/false colord"
diff --git a/meta-oe/recipes-support/colord/colord.inc b/meta-oe/recipes-support/colord/colord.inc
new file mode 100644
index 0000000000..7497fed51e
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord.inc
@@ -0,0 +1,13 @@
1SUMMARY = "Making color management just work"
2HOMEPAGE = "https://www.freedesktop.org/software/colord/"
3LICENSE = "GPLv2 & LGPLv2.1"
4LIC_FILES_CHKSUM = " \
5 file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
6 file://meson.build;beginline=3;endline=3;md5=f42198707d793be58b274d34fd5238c3 \
7"
8
9PV = "1.4.4"
10SRC_URI = "https://www.freedesktop.org/software/colord/releases/${BPN}-${PV}.tar.xz"
11SRC_URI[md5sum] = "32c2709a6002d9ee750483aaed6379c8"
12SRC_URI[sha256sum] = "9a0fe80160bf88efddb582a9fc0169f56065276dc3882c47dddb9eecd048c0a5"
13
diff --git a/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch b/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch
new file mode 100644
index 0000000000..4b52aa3379
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch
@@ -0,0 +1,59 @@
1From 5aad8831c0fb71940d6c4f982b0b30ffb6ae33b3 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
3Date: Sun, 12 May 2019 22:47:05 +0200
4Subject: [PATCH] Run native cd_idt8/cd_create_profile
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Upstream-Status: Inappropriate [OE specific]
10
11Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
12---
13 data/cmf/meson.build | 2 +-
14 data/illuminant/meson.build | 2 +-
15 data/profiles/meson.build | 2 +-
16 3 files changed, 3 insertions(+), 3 deletions(-)
17
18diff --git a/data/cmf/meson.build b/data/cmf/meson.build
19index a693cd7..1ae3613 100644
20--- a/data/cmf/meson.build
21+++ b/data/cmf/meson.build
22@@ -2,7 +2,7 @@ foreach arg: [ 'CIE1964-10deg-XYZ', 'CIE1931-2deg-XYZ' ]
23 custom_target(arg,
24 input: arg + '.csv',
25 output: arg + '.cmf',
26- command: [ cd_idt8, 'create-cmf', '@OUTPUT@', '@INPUT@', '1.0' ],
27+ command: [ 'cd_idt8', 'create-cmf', '@OUTPUT@', '@INPUT@', '1.0' ],
28 install: true,
29 install_dir: join_paths(datadir, 'colord', 'cmf')
30 )
31diff --git a/data/illuminant/meson.build b/data/illuminant/meson.build
32index f8dfa07..ad7dced 100644
33--- a/data/illuminant/meson.build
34+++ b/data/illuminant/meson.build
35@@ -24,7 +24,7 @@ foreach arg: generated_spectra
36 custom_target(arg,
37 input: arg + '.csv',
38 output: arg + '.sp',
39- command: [ cd_idt8, 'create-sp', '@OUTPUT@', '@INPUT@', '100.0' ],
40+ command: [ 'cd_idt8', 'create-sp', '@OUTPUT@', '@INPUT@', '100.0' ],
41 install: true,
42 install_dir: join_paths(datadir, 'colord', 'illuminant')
43 )
44diff --git a/data/profiles/meson.build b/data/profiles/meson.build
45index 591b97d..2cef011 100644
46--- a/data/profiles/meson.build
47+++ b/data/profiles/meson.build
48@@ -59,7 +59,7 @@ foreach arg: icc_profiles
49 generated_icc = custom_target(arg + '.icc',
50 input: xml_i18n,
51 output: arg + '.icc',
52- command: [ cd_create_profile, '--output=@OUTPUT@', '@INPUT@' ],
53+ command: [ 'cd_create_profile', '--output=@OUTPUT@', '@INPUT@' ],
54 install: true,
55 install_dir: join_paths(datadir, 'color', 'icc', 'colord'),
56 )
57--
582.20.1
59