diff options
Diffstat (limited to 'meta-oe/recipes-graphics')
370 files changed, 10797 insertions, 32685 deletions
diff --git a/meta-oe/recipes-graphics/aml/aml_git.bb b/meta-oe/recipes-graphics/aml/aml_git.bb new file mode 100644 index 0000000000..2633e0d215 --- /dev/null +++ b/meta-oe/recipes-graphics/aml/aml_git.bb @@ -0,0 +1,35 @@ +SUMMARY = "Andri's Main Loop" +DESCRIPTION = "Andri's Main Loop" +HOMEPAGE = "https://github.com/any1/aml" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://COPYING;md5=e6f3cfaa39204b96e14b68b9d50d3e4e" + +SRC_URI = "git://github.com/any1/aml;branch=master;protocol=https" + +SRCREV = "b83f3576ce4187d9285f06e9066ef43a691464d4" + +PV = "0.3.0+git" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[examples] = "-Dexamples=true,-Dexamples=false" + +PACKAGE_BEFORE_PN += "${PN}-examples" +ALLOW_EMPTY:${PN}-examples = "1" +FILES:${PN}-examples = "${bindir}" + +inherit meson pkgconfig + +AML_EXAMPLES = "ticker nested-ticker reader" + +do_install:append () { + if ${@bb.utils.contains('PACKAGECONFIG', 'examples', 'true', 'false', d)}; then + install -d ${D}${bindir} + for bin in ${AML_EXAMPLES}; do + install -m 0755 ${B}/examples/$bin ${D}${bindir} + done + fi +} + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/babl/babl_0.1.28.bb b/meta-oe/recipes-graphics/babl/babl_0.1.28.bb deleted file mode 100644 index 9d8c90fdbb..0000000000 --- a/meta-oe/recipes-graphics/babl/babl_0.1.28.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Babl is a dynamic, any to any, pixel format conversion library" -LICENSE = "LGPL-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6" - -inherit gnomebase - -SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.1/${BP}.tar.bz2" -SRC_URI[md5sum] = "cc53d8474a43aafb7cdaccea56cfde44" -SRC_URI[sha256sum] = "63f3ed23e72a857a0e6df53d9d968a325024177b01edbe314a0c98b499eb8603" - -FILES_${PN} += "${libdir}/babl-*/*.so" -FILES_${PN}-dev += "${libdir}/babl-*/*.la" -FILES_${PN}-dbg += "${libdir}/babl-*/.debug/" diff --git a/meta-oe/recipes-graphics/cairo/cairomm-1.16_1.18.0.bb b/meta-oe/recipes-graphics/cairo/cairomm-1.16_1.18.0.bb new file mode 100644 index 0000000000..a6872ef0cd --- /dev/null +++ b/meta-oe/recipes-graphics/cairo/cairomm-1.16_1.18.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "C++ bindings for Cairo graphics library" + +LICENSE = "LGPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9" + +inherit gnomebase + +DEPENDS += "boost cairo libsigc++-3" + +SRC_URI = "https://www.cairographics.org/releases/cairomm-${PV}.tar.xz" +SRC_URI[sha256sum] = "b81255394e3ea8e8aa887276d22afa8985fc8daef60692eb2407d23049f03cfb" + +S = "${WORKDIR}/cairomm-${PV}" + +FILES:${PN}-doc += "${datadir}/devhelp" +FILES:${PN}-dev += "${libdir}/cairomm-*/" + diff --git a/meta-oe/recipes-graphics/cairo/cairomm_1.12.0.bb b/meta-oe/recipes-graphics/cairo/cairomm_1.12.0.bb deleted file mode 100644 index d49a509a0e..0000000000 --- a/meta-oe/recipes-graphics/cairo/cairomm_1.12.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "C++ bindings for Cairo graphics library" - -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9" - -inherit gnomebase - -DEPENDS = "cairo libsigc++-2.0" - -SRC_URI[archive.md5sum] = "c62b476b61bd0abf7e9851f417d73291" -SRC_URI[archive.sha256sum] = "a54ada8394a86182525c0762e6f50db6b9212a2109280d13ec6a0b29bfd1afe6" - -FILES_${PN}-doc += "${datadir}/devhelp" -FILES_${PN}-dev += "${libdir}/cairomm-*/" - diff --git a/meta-oe/recipes-graphics/cairo/cairomm_1.14.3.bb b/meta-oe/recipes-graphics/cairo/cairomm_1.14.3.bb new file mode 100644 index 0000000000..54a2b07ca5 --- /dev/null +++ b/meta-oe/recipes-graphics/cairo/cairomm_1.14.3.bb @@ -0,0 +1,15 @@ +SUMMARY = "C++ bindings for Cairo graphics library" + +LICENSE = "LGPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9" + +inherit gnomebase + +DEPENDS += "boost cairo libsigc++-2.0" + +SRC_URI = "https://www.cairographics.org/releases/${BP}.tar.xz" +SRC_URI[sha256sum] = "0d37e067c5c4ca7808b7ceddabfe1932c5bd2a750ad64fb321e1213536297e78" + +FILES:${PN}-doc += "${datadir}/devhelp" +FILES:${PN}-dev += "${libdir}/cairomm-*/" + diff --git a/meta-oe/recipes-graphics/cglm/cglm_0.9.2.bb b/meta-oe/recipes-graphics/cglm/cglm_0.9.2.bb new file mode 100644 index 0000000000..b503c6ed9c --- /dev/null +++ b/meta-oe/recipes-graphics/cglm/cglm_0.9.2.bb @@ -0,0 +1,25 @@ +SUMMARY = "OpenGL Mathematics Library for C" +DESCRIPTION = "Highly optimized 2D|3D math library, also known as OpenGL Mathematics (glm) for `C`. \ +cglm provides lot of utils to help math operations to be fast and quick to write. It is community \ +friendly, feel free to bring any issues, bugs you faced." +HOMEPAGE = "https://github.com/recp/cglm" +BUGTRACKER = "https://github.com/recp/cglm/issues" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8dc95c4110ba741c43832734b51b7de7" + +SRC_URI = "git://github.com/recp/cglm;branch=master;protocol=https" +# Tag v0.9.1 +SRCREV = "c8781615183ce3cb4f5d72caf70f2c01d7d4d2af" + +S = "${WORKDIR}/git" + +PACKAGECONFIG[build_tests] = "-Dbuild_tests=true,-Dbuild_tests=false," + +PACKAGECONFIG ?= "" + +inherit meson pkgconfig + +EXTRA_OEMESON += "--buildtype release" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-Mimic-GNU-basename-API-for-non-glibc-library-e.g.-mu.patch b/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-Mimic-GNU-basename-API-for-non-glibc-library-e.g.-mu.patch new file mode 100644 index 0000000000..aa8406e315 --- /dev/null +++ b/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-Mimic-GNU-basename-API-for-non-glibc-library-e.g.-mu.patch @@ -0,0 +1,28 @@ +From 272491297564513c4ce49a11bc1ecc523a3afd63 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 15 Mar 2024 11:05:54 -0700 +Subject: [PATCH] Mimic GNU basename() API for non-glibc library e.g. musl + +Upstream-Status: Submitted [https://github.com/lucasdemarchi/dietsplash/pull/7] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/util.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/util.h b/src/util.h +index 1f4c3ef..a3ab54a 100644 +--- a/src/util.h ++++ b/src/util.h +@@ -60,6 +60,9 @@ + */ + #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + _array_size_chk(arr)) + ++#if !defined(__GLIBC__) ++#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src) ++#endif + + #define DIE_PREFIX "[" PACKAGE_NAME "] ERR: " + #define LOG_SUFFIX "\n" +-- +2.44.0 + diff --git a/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch b/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch index 87e8637eec..aad393b1d9 100644 --- a/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch +++ b/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch @@ -8,6 +8,8 @@ is not supported Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + configure.ac | 1 - 1 file changed, 1 deletion(-) diff --git a/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb b/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb index 32f0815921..1ee2657bd0 100644 --- a/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb +++ b/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb @@ -1,22 +1,22 @@ SUMMARY = "Simple bootsplash for systemd systems" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" # Really, no depends besides a C library -PV = "0.3" -PR = "r1" +PV = "0.3+git" -SRCREV = "ef2e1a390e768e21e6a6268977580ee129a96633" -SRC_URI = "git://github.com/lucasdemarchi/dietsplash.git \ +SRCREV = "8bed71d860bbb0c8792fa2a1179c9beeae84d577" +SRC_URI = "git://github.com/lucasdemarchi/dietsplash.git;branch=master;protocol=https \ file://0001-configure.ac-Do-not-demand-linker-hash-style.patch \ - " + file://0001-Mimic-GNU-basename-API-for-non-glibc-library-e.g.-mu.patch \ +" inherit autotools S = "${WORKDIR}/git" EXTRA_OECONF = " --with-systemdsystemunitdir=${systemd_unitdir}/system \ - --disable-staticimages" + --disable-staticimages --with-rootdir=${root_prefix}" -FILES_${PN} += "${systemd_unitdir}/system/" +FILES:${PN} += "${systemd_unitdir}/system/" diff --git a/meta-oe/recipes-graphics/directfb/directfb-examples/0001-spacedream-Add-typecast-to-pthread_t-in-assignment.patch b/meta-oe/recipes-graphics/directfb/directfb-examples/0001-spacedream-Add-typecast-to-pthread_t-in-assignment.patch new file mode 100644 index 0000000000..f40b7f144d --- /dev/null +++ b/meta-oe/recipes-graphics/directfb/directfb-examples/0001-spacedream-Add-typecast-to-pthread_t-in-assignment.patch @@ -0,0 +1,39 @@ +From 85a30903ea3ba4232379bbbcb54960307d5a2da0 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 2 Sep 2022 18:49:03 -0700 +Subject: [PATCH] spacedream: Add typecast to pthread_t in assignment + +render_loop_thread is of type pthread_t, therefore -1 which is int can +not be assigned to it. Do the needed typecast conversion + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/spacedream/main.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/spacedream/main.c b/src/spacedream/main.c +index 430800f..8e1887c 100644 +--- a/src/spacedream/main.c ++++ b/src/spacedream/main.c +@@ -205,7 +205,7 @@ void unload_stars() + int main( int argc, char *argv[] ) + { + int quit = 0; +- pthread_t render_loop_thread = -1; ++ pthread_t render_loop_thread = (pthread_t)-1; + + IDirectFBSurface *primary; + IDirectFBEventBuffer *buffer; +@@ -344,7 +344,7 @@ int main( int argc, char *argv[] ) + pthread_cancel( render_loop_thread ); + pthread_mutex_unlock( &render_start ); + pthread_join( render_loop_thread, NULL ); +- render_loop_thread = -1; ++ render_loop_thread = (pthread_t)-1; + + + unload_stars(); +-- +2.37.3 + diff --git a/meta-oe/recipes-graphics/directfb/directfb-examples_1.7.0.bb b/meta-oe/recipes-graphics/directfb/directfb-examples_1.7.0.bb index 7907c5c0da..398e339482 100644 --- a/meta-oe/recipes-graphics/directfb/directfb-examples_1.7.0.bb +++ b/meta-oe/recipes-graphics/directfb/directfb-examples_1.7.0.bb @@ -9,6 +9,7 @@ LICENSE = "MIT" SRC_URI = " \ http://downloads.yoctoproject.org/mirror/sources/DirectFB-examples-${PV}.tar.gz \ file://configure.in-Fix-string-argument-syntax.patch \ + file://0001-spacedream-Add-typecast-to-pthread_t-in-assignment.patch \ " LIC_FILES_CHKSUM = "file://COPYING;md5=ecf6fd2b19915afc4da56043926ca18f" diff --git a/meta-oe/recipes-graphics/directfb/directfb.inc b/meta-oe/recipes-graphics/directfb/directfb.inc index bd66a28207..54aeb06aa9 100644 --- a/meta-oe/recipes-graphics/directfb/directfb.inc +++ b/meta-oe/recipes-graphics/directfb/directfb.inc @@ -5,7 +5,7 @@ abstraction, an integrated windowing system with support for \ translucent windows and multiple display layers on top of the \ Linux framebuffer device." SECTION = "libs" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589" HOMEPAGE = "http://directfb.org" @@ -20,14 +20,21 @@ SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/DirectFB-${PV}.tar.g file://union-sigval.patch \ file://use-PTHREAD_MUTEX_RECURSIVE.patch \ file://fix-client-gfx_state-initialisation.patch \ - " + file://fix-tslib-version-check.patch \ + file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \ + file://0001-os-linux-Fix-build-when-__NR_futex-is-not-available.patch \ + file://0001-include-libgen.h-for-basename.patch \ + file://0001-inputdrivers-Correct-the-signature-of-bind-call-on-m.patch \ + " S = "${WORKDIR}/DirectFB-${PV}" -LDFLAGS_append = " -lm" +LDFLAGS:append = " -lm" + +CXXFLAGS:append:toolchain-clang = " -Wno-error=dtor-typedef" # Workaround for linking issues seen with armv7a + gold -LDFLAGS_append_arm = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" +LDFLAGS:append:arm = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" BINCONFIG = "${bindir}/directfb-config" @@ -57,18 +64,18 @@ EXTRA_OECONF = "\ #Once -fno-omit-frame-pointer option of gcc is added into TARGET_CLFAGS as default #this will cause directfb build failure on x86 arch, so filter out it. -TARGET_CFLAGS_remove_x86 = "-fno-omit-frame-pointer" +TARGET_CFLAGS:remove:x86 = "-fno-omit-frame-pointer" #PACKAGES_DYNAMIC += "^directfb-inputdrivers-.*" # -#python populate_packages_prepend () { +#python populate_packages:prepend () { # inputdrivers_libdir = d.expand('${libdir}/directfb-${RV}/inputdrivers') # do_split_packages(d, inputdrivers_libdir, '*.so$', 'directfb-inputdrivers-%s', 'Directfb plugin for %s') #} # NOTE: monolithic packaging for now, should improve that eventually -FILES_${PN}-dev += "\ +FILES:${PN}-dev += "\ ${bindir}/directfb-config \ ${libdir}/directfb-${RV}/systems/*.la \ ${libdir}/directfb-${RV}/inputdrivers/*.la \ @@ -76,7 +83,7 @@ FILES_${PN}-dev += "\ ${libdir}/directfb-${RV}/wm/*.la \ " -FILES_${PN} += "\ +FILES:${PN} += "\ ${libdir}/directfb-${RV}/systems/*.so \ ${libdir}/directfb-${RV}/inputdrivers/*.so \ ${libdir}/directfb-${RV}/interfaces/*/*.so \ diff --git a/meta-oe/recipes-graphics/directfb/directfb/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-oe/recipes-graphics/directfb/directfb/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 0000000000..2f766465e1 --- /dev/null +++ b/meta-oe/recipes-graphics/directfb/directfb/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,139 @@ +From 0b66557f2e924023b12006b58d8e86149c745aed Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 30 Nov 2019 20:34:33 -0800 +Subject: [PATCH] Fix build on 32bit arches with 64bit time_t + +time element is deprecated on new input_event structure in kernel's +input.h [1] + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + inputdrivers/linux_input/linux_input.c | 36 ++++++++++++++++++-------- + 1 file changed, 25 insertions(+), 11 deletions(-) + +diff --git a/inputdrivers/linux_input/linux_input.c b/inputdrivers/linux_input/linux_input.c +index 7e9a6ad..03deebc 100644 +--- a/inputdrivers/linux_input/linux_input.c ++++ b/inputdrivers/linux_input/linux_input.c +@@ -42,6 +42,11 @@ typedef unsigned long kernel_ulong_t; + + #include <linux/input.h> + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + #ifndef KEY_OK + /* Linux kernel 2.5.42+ defines additional keys in linux/input.h */ + #include "input_fake.h" +@@ -754,7 +759,8 @@ translate_event( const LinuxInputData *data, + DFBInputEvent *devt ) + { + devt->flags = DIEF_TIMESTAMP; +- devt->timestamp = levt->time; ++ devt->timestamp.tv_sec = levt->input_event_sec; ++ devt->timestamp.tv_usec = levt->input_event_usec; + + switch (levt->type) { + case EV_KEY: +@@ -2139,7 +2145,8 @@ touchpad_translate( struct touchpad_fsm_state *state, + int abs, rel; + + devt->flags = DIEF_TIMESTAMP | (dfb_config->linux_input_touch_abs ? DIEF_AXISABS : DIEF_AXISREL); +- devt->timestamp = levt->time; ++ devt->timestamp.tv_sec = levt->input_event_sec; ++ devt->timestamp.tv_usec = levt->input_event_usec; + devt->type = DIET_AXISMOTION; + + switch (levt->code) { +@@ -2204,7 +2211,7 @@ touchpad_fsm( struct touchpad_fsm_state *state, + DFBInputEvent *devt ) + { + struct timeval timeout = { 0, 125000 }; +- ++ struct timeval tval; + /* select() timeout? */ + if (!levt) { + /* Check if button release is due. */ +@@ -2223,6 +2230,8 @@ touchpad_fsm( struct touchpad_fsm_state *state, + return 0; + } + ++ tval.tv_sec = levt->input_event_sec; ++ tval.tv_usec = levt->input_event_usec; + /* More or less ignore these events for now */ + if ((levt->type == EV_SYN && levt->code == SYN_REPORT) || + (levt->type == EV_ABS && levt->code == ABS_PRESSURE) || +@@ -2233,7 +2242,7 @@ touchpad_fsm( struct touchpad_fsm_state *state, + + /* Check if button release is due. */ + if (state->fsm_state == TOUCHPAD_FSM_DRAG_START && +- timeout_passed( &state->timeout, &levt->time )) { ++ timeout_passed( &state->timeout, &tval )) { + devt->flags = DIEF_TIMESTAMP; + devt->timestamp = state->timeout; /* timeout of levt->time? */ + devt->type = DIET_BUTTONRELEASE; +@@ -2255,7 +2264,8 @@ touchpad_fsm( struct touchpad_fsm_state *state, + case TOUCHPAD_FSM_START: + if (touchpad_finger_landing( levt )) { + state->fsm_state = TOUCHPAD_FSM_MAIN; +- state->timeout = levt->time; ++ state->timeout.tv_sec = levt->input_event_sec; ++ state->timeout.tv_usec = levt->input_event_usec; + timeout_add( &state->timeout, &timeout ); + } + return 0; +@@ -2268,15 +2278,17 @@ touchpad_fsm( struct touchpad_fsm_state *state, + } + } + else if (touchpad_finger_leaving( levt )) { +- if (!timeout_passed( &state->timeout, &levt->time )) { ++ if (!timeout_passed( &state->timeout, &tval )) { + devt->flags = DIEF_TIMESTAMP; +- devt->timestamp = levt->time; ++ devt->timestamp.tv_sec = levt->input_event_sec; ++ devt->timestamp.tv_usec = levt->input_event_usec; + devt->type = DIET_BUTTONPRESS; + devt->button = DIBI_FIRST; + + touchpad_fsm_init( state ); + state->fsm_state = TOUCHPAD_FSM_DRAG_START; +- state->timeout = levt->time; ++ state->timeout.tv_sec = levt->input_event_sec; ++ state->timeout.tv_usec = levt->input_event_usec; + timeout_add( &state->timeout, &timeout ); + return 1; + } +@@ -2287,7 +2299,7 @@ touchpad_fsm( struct touchpad_fsm_state *state, + return 0; + + case TOUCHPAD_FSM_DRAG_START: +- if (timeout_passed( &state->timeout, &levt->time )){ ++ if (timeout_passed( &state->timeout, &tval )){ + devt->flags = DIEF_TIMESTAMP; + devt->timestamp = state->timeout; /* timeout of levt->time? */ + devt->type = DIET_BUTTONRELEASE; +@@ -2299,7 +2311,8 @@ touchpad_fsm( struct touchpad_fsm_state *state, + else { + if (touchpad_finger_landing( levt )) { + state->fsm_state = TOUCHPAD_FSM_DRAG_MAIN; +- state->timeout = levt->time; ++ state->timeout.tv_sec = levt->input_event_sec; ++ state->timeout.tv_usec = levt->input_event_usec; + timeout_add( &state->timeout, &timeout ); + } + } +@@ -2314,7 +2327,8 @@ touchpad_fsm( struct touchpad_fsm_state *state, + } + else if (touchpad_finger_leaving( levt )) { + devt->flags = DIEF_TIMESTAMP; +- devt->timestamp = levt->time; ++ devt->timestamp.tv_sec = levt->input_event_sec; ++ devt->timestamp.tv_usec = levt->input_event_usec; + devt->type = DIET_BUTTONRELEASE; + devt->button = DIBI_FIRST; + diff --git a/meta-oe/recipes-graphics/directfb/directfb/0001-include-libgen.h-for-basename.patch b/meta-oe/recipes-graphics/directfb/directfb/0001-include-libgen.h-for-basename.patch new file mode 100644 index 0000000000..abdba18fec --- /dev/null +++ b/meta-oe/recipes-graphics/directfb/directfb/0001-include-libgen.h-for-basename.patch @@ -0,0 +1,32 @@ +From c8cf3ffd4fa14cdc6d607a09d51e898dec922348 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 25 Mar 2024 18:17:44 -0700 +Subject: [PATCH] include libgen.h for basename + +basename prototype has been removed from string.h from latest musl [1] +compilers e.g. clang-18 flags the absense of prototype as error. therefore +include libgen.h for providing it. + +[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 + +Upstream-Status: Inappropriate [Upstream is dead] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + systems/fbdev/fbdev.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/systems/fbdev/fbdev.c b/systems/fbdev/fbdev.c +index 5297358..4e6f178 100644 +--- a/systems/fbdev/fbdev.c ++++ b/systems/fbdev/fbdev.c +@@ -42,6 +42,7 @@ + #include <errno.h> + #include <string.h> + #include <strings.h> ++#include <libgen.h> + #if defined(HAVE_SYSIO) + # include <sys/io.h> + #endif +-- +2.44.0 + diff --git a/meta-oe/recipes-graphics/directfb/directfb/0001-inputdrivers-Correct-the-signature-of-bind-call-on-m.patch b/meta-oe/recipes-graphics/directfb/directfb/0001-inputdrivers-Correct-the-signature-of-bind-call-on-m.patch new file mode 100644 index 0000000000..574bba0bc7 --- /dev/null +++ b/meta-oe/recipes-graphics/directfb/directfb/0001-inputdrivers-Correct-the-signature-of-bind-call-on-m.patch @@ -0,0 +1,36 @@ +From 18f4eca291cabf93d87e7c9051268d9c385b8f37 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 20 May 2024 18:23:06 -0700 +Subject: [PATCH] inputdrivers: Correct the signature of bind() call on musl + systems + +Its flagged with GCC14 + +../../../DirectFB-1.7.7/inputdrivers/linux_input/linux_input.c:1551:27: error: passing argument 2 of 'bind' from incompatible pointer type [-Wincompatible-pointer-types] + 1551 | rt = bind(socket_fd, &sock_addr, + | ^~~~~~~~~~ + | | + | struct sockaddr_un * + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + inputdrivers/linux_input/linux_input.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/inputdrivers/linux_input/linux_input.c b/inputdrivers/linux_input/linux_input.c +index 03deebc..207f5a5 100644 +--- a/inputdrivers/linux_input/linux_input.c ++++ b/inputdrivers/linux_input/linux_input.c +@@ -1548,7 +1548,7 @@ udev_hotplug_EventThread(DirectThread *thread, void * hotplug_data) + "/org/kernel/udev/monitor", + sizeof(sock_addr.sun_path) - 1); + +- rt = bind(socket_fd, &sock_addr, ++ rt = bind(socket_fd, (struct sockaddr *)&sock_addr, + sizeof(sock_addr.sun_family)+1+strlen(&sock_addr.sun_path[1])); + if (rt < 0) { + D_PERROR( "DirectFB/linux_input: bind() failed: %s\n", +-- +2.45.1 + diff --git a/meta-oe/recipes-graphics/directfb/directfb/0001-os-linux-Fix-build-when-__NR_futex-is-not-available.patch b/meta-oe/recipes-graphics/directfb/directfb/0001-os-linux-Fix-build-when-__NR_futex-is-not-available.patch new file mode 100644 index 0000000000..db4417a3d6 --- /dev/null +++ b/meta-oe/recipes-graphics/directfb/directfb/0001-os-linux-Fix-build-when-__NR_futex-is-not-available.patch @@ -0,0 +1,54 @@ +From 7df69c3a784ab2cc4770bdb366cf788cdb78099a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 15 Nov 2020 12:30:41 -0800 +Subject: [PATCH] os/linux: Fix build when __NR_futex is not available + +Newer architectures like riscv32 do not define __NR_futex intentionally +since it uses 64bit time_t from very beginning, therefore only caters to +futex_time64 syscall + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lib/direct/os/linux/glibc/system.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/lib/direct/os/linux/glibc/system.c b/lib/direct/os/linux/glibc/system.c +index 373a711..d027a70 100644 +--- a/lib/direct/os/linux/glibc/system.c ++++ b/lib/direct/os/linux/glibc/system.c +@@ -36,6 +36,7 @@ + + #include <errno.h> + #include <signal.h> ++#include <sys/syscall.h> + #include <unistd.h> + + #include <linux/unistd.h> +@@ -46,6 +47,10 @@ + #include <direct/system.h> + #include <direct/util.h> + ++#if !defined(SYS_futex) && defined(SYS_futex_time64) ++# define SYS_futex SYS_futex_time64 ++#endif ++ + D_LOG_DOMAIN( Direct_Futex, "Direct/Futex", "Direct Futex" ); + D_LOG_DOMAIN( Direct_Trap, "Direct/Trap", "Direct Trap" ); + +@@ -239,10 +244,9 @@ direct_futex( int *uaddr, int op, int val, const struct timespec *timeout, int * + } + #endif + +- ret = syscall( __NR_futex, uaddr, op, val, timeout, uaddr2, val3 ); ++ ret = syscall( SYS_futex, uaddr, op, val, timeout, uaddr2, val3 ); + if (ret < 0) + return errno2result( errno ); + + return DR_OK; + } +- +-- +2.29.2 + diff --git a/meta-oe/recipes-graphics/directfb/directfb/fix-tslib-version-check.patch b/meta-oe/recipes-graphics/directfb/directfb/fix-tslib-version-check.patch new file mode 100644 index 0000000000..352bfaf201 --- /dev/null +++ b/meta-oe/recipes-graphics/directfb/directfb/fix-tslib-version-check.patch @@ -0,0 +1,38 @@ +fix tslib version check in configure.in + +The patch makes sure that the old as well as the new tslib pkg-config +metadata file naming style is handled correctly. + +tslib 0.0 to 1.0 created only a tslib-<VERSION>.pc pkg-config metadata +file. + +With tslib 1.1 the tslib-<VERSION>.pc phase out was started. +Additionally, the pkg-config metadata file tslib.pc was added. + +Since tslib 1.6 the tslib-<VERSION>.pc metadata file is deprecated. +Now, there is only a tslib.pc. + +Upstream-Status: Inappropriate [no upstream] +Signed-off-by: Ben Guan <ben.guan@cn.bosch.com> +Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com> + +diff -Nru DirectFB-1.7.7.orig/configure.in DirectFB-1.7.7/configure.in +--- DirectFB-1.7.7.orig/configure.in 2015-02-10 01:16:46.000000000 +0800 ++++ DirectFB-1.7.7/configure.in 2018-06-06 17:19:18.472143103 +0800 +@@ -2459,10 +2459,13 @@ + + enable_tslib=no + if test "$checkfor_tslib" = "yes"; then +- PKG_CHECK_MODULES([TSLIB], [tslib-1.0 >= 1.0.0], [enable_tslib=yes], [enable_tslib=no]) ++ PKG_CHECK_MODULES([TSLIB], [tslib >= 1.1], [enable_tslib=yes], [enable_tslib=no]) + if test "$enable_tslib" = "no"; then +- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [enable_tslib=yes], [enable_tslib=no +- AC_MSG_WARN([*** no tslib -- tslib driver will not be built.])]) ++ PKG_CHECK_MODULES([TSLIB], [tslib-1.0 >= 1.0], [enable_tslib=yes], [enable_tslib=no]) ++ if test "$enable_tslib" = "no"; then ++ PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [enable_tslib=yes], [enable_tslib=no ++ AC_MSG_WARN([*** no tslib -- tslib driver will not be built.])]) ++ fi + fi + fi + diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch index 46d4dbde4d..5740f4a819 100644 --- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch +++ b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch @@ -5,16 +5,18 @@ Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python. Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com> --- +Upstream-Status: Pending + CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7c66b39..1489ef6 100644 +index 230c87b..e699e83 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -19,7 +19,7 @@ else(NOT SPHINX_EXECUTABLE-NOTFOUND) - message(STATUS "Could NOT find sphinx-build.") - endif(NOT SPHINX_EXECUTABLE-NOTFOUND) +@@ -19,7 +19,7 @@ else(SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND") + message(STATUS "Found sphinx-build: ${SPHINX_EXECUTABLE}") + endif(SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND") -execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(), end='')" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) +#execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(), end='')" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) @@ -22,5 +24,5 @@ index 7c66b39..1489ef6 100644 execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write('%s.%s' % (sys.version_info.major, sys.version_info.minor))" OUTPUT_VARIABLE PYTHON_MAJOR_DOT_MINOR_VERSION) message(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}") -- -2.7.4 +2.17.1 diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch deleted file mode 100644 index 75b6b8fd99..0000000000 --- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 15d0afcfa4868b7b072b3434bac0064617d61f99 Mon Sep 17 00:00:00 2001 -From: Lei Maohui <leimaohui@cn.fujitsu.com> -Date: Tue, 19 Dec 2017 14:53:14 +0900 -Subject: [PATCH] Run python scripts using env - -Otherwise the build tools hardcode the python path into them. - -Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com> ---- - bin/dnfdragora | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/bin/dnfdragora b/bin/dnfdragora -index b8e0550..cd80f7f 100755 ---- a/bin/dnfdragora -+++ b/bin/dnfdragora -@@ -1,4 +1,4 @@ --#!/usr/bin/python3 -+#!/usr/bin/env python3 - # vim: set et ts=4 sw=4: - # Copyright 2016-2017 Angelo Naselli <anaselli@linux.it> - # --- -2.7.4 - diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch index 90ce1d0ac3..2951ee4555 100644 --- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch +++ b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch @@ -3,29 +3,32 @@ From: Lei Maohui <leimaohui@cn.fujitsu.com> Date: Tue, 19 Dec 2017 11:15:29 +0900 Subject: [PATCH] To fix error when do_package -QA Issue: nativesdk-dnfdragora: Files/directories were installed but not shipped in any package: +QA Issue: nativesdk-dnfdragora: Files/directories were installed but not +shipped in any package: /etc /etc/dnfdragora /etc/dnfdragora/dnfdragora.yaml Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com> --- +Upstream-Status: Pending + CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7c66b39..a5659f7 100644 +index 230c87b..1b8d800 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -52,7 +52,7 @@ endif(ENABLE_COMPS) +@@ -68,7 +68,7 @@ endif(ENABLE_COMPS) set(CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin") set(CMAKE_INSTALL_DATAROOTDIR "${CMAKE_INSTALL_PREFIX}/share") set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale") --set(CMAKE_INSTALL_FULL_SYSCONFDIR "/etc") -+set(CMAKE_INSTALL_FULL_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/../etc") +-set(CMAKE_INSTALL_FULL_SYSCONFDIR "/etc" CACHE PATH "sysconfig directory (default /etc)") ++set(CMAKE_INSTALL_FULL_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/../etc" CACHE PATH "sysconfig directory (default /etc)") # Configure files configure_file(${CMAKE_SOURCE_DIR}/etc/dnfdragora.yaml.in ${CMAKE_BINARY_DIR}/etc/dnfdragora.yaml @ONLY) -- -2.7.4 +2.17.1 diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch index 88bb634162..078f525117 100644 --- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch +++ b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch @@ -5,21 +5,23 @@ Subject: [PATCH] disable build manpages. Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> --- +Upstream-Status: Pending + CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7c66b39..fc32750 100644 +index 230c87b..1624998 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -65,7 +65,6 @@ endif(GETTEXT_FOUND) +@@ -81,7 +81,6 @@ endif(GETTEXT_FOUND) # Build and install the man-pages - if(NOT SPHINX_EXECUTABLE-NOTFOUND) + if(NOT SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND") - add_subdirectory(man) - endif(NOT SPHINX_EXECUTABLE-NOTFOUND) + endif(NOT SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND") # Installing application code -- -2.7.4 +2.17.1 diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb b/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.6.bb index 9cd1efb8e8..50504caf9f 100644 --- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb +++ b/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.6.bb @@ -1,30 +1,31 @@ SUMMARY = "dnfdragora is a DNF frontend, based on rpmdragora from Mageia (originally rpmdrake) Perl code." -LICENSE = "GPLv3" +LICENSE = "GPL-3.0-only" LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504 \ " -SRC_URI = "git://github.com/manatools/dnfdragora.git \ +SRC_URI = "git://github.com/manatools/dnfdragora.git;branch=stable-2.x;protocol=https \ file://0001-disable-build-manpages.patch \ file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ file://0001-To-fix-error-when-do_package.patch \ - file://0001-Run-python-scripts-using-env.patch \ " -PV = "1.0.1+git${SRCPV}" -SRCREV = "4fef4ce889b8e4fa03191d414f63bfd50796152a" +SRCREV = "abbe08b7a487325182758d5285b54437a914207b" S = "${WORKDIR}/git" -inherit cmake gettext pkgconfig python3-dir python3native distutils3-base +inherit cmake gettext pkgconfig python3-dir python3native setuptools3-base mime-xdg DEPENDS += "dnf python3 " -#DEPENDS_class-nativesdk += "nativesdk-python3" +#DEPENDS:class-nativesdk += "nativesdk-python3" -RDEPENDS_${PN}_class-target = " python3-core libyui libyui-ncurses " +RDEPENDS:${PN}:class-target = " python3-core libyui libyui-ncurses " # manpages generation requires http://www.sphinx-doc.org/ EXTRA_OECMAKE = " -DWITH_MAN=OFF -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" BBCLASSEXTEND = "nativesdk" -FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/ ${datadir}/ ${bindir}/ ${sysconfdir}/dnfdragora " +FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/ ${datadir}/ ${bindir}/ ${sysconfdir}/dnfdragora ${sysconfdir}/xdg" + +SKIP_RECIPE[dnfdragora] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}" + diff --git a/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.bb b/meta-oe/recipes-graphics/fbgrab/fbgrab_1.5.bb index e12bc094d5..7b52ead909 100644 --- a/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.bb +++ b/meta-oe/recipes-graphics/fbgrab/fbgrab_1.5.bb @@ -1,16 +1,16 @@ SUMMARY = "FBGrab is a framebuffer screenshot program" -HOMEPAGE = "http://fbgrab.monells.se/" -LICENSE = "GPLv2" +HOMEPAGE = "https://github.com/GunnarMonell/fbgrab" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a" SECTION = "console/utils" DEPENDS = "libpng zlib" -SRC_URI = "http://fbgrab.monells.se/${BP}.tar.gz" +SRC_URI = "git://github.com/GunnarMonell/fbgrab.git;protocol=https;branch=master" -inherit autotools-brokensep +SRCREV = "f43ce6d5ce48fb01360eaa7c4a92c2573a1d02f8" +S = "${WORKDIR}/git" -SRC_URI[md5sum] = "7d8c24081c681dfbba21f2934c1ac656" -SRC_URI[sha256sum] = "5fab478cbf8731fbacefaa76236a8f8b38ccff920c53b3a8253bc35509fba8ed" +inherit autotools-brokensep -do_configure_prepend() { +do_configure:prepend() { sed -i 's|$(DESTDIR)/usr/man/|$(DESTDIR)${mandir}/|g' ${S}/Makefile } diff --git a/meta-oe/recipes-graphics/fbida/fbida_2.10.bb b/meta-oe/recipes-graphics/fbida/fbida_2.10.bb deleted file mode 100644 index 0bf48ace6b..0000000000 --- a/meta-oe/recipes-graphics/fbida/fbida_2.10.bb +++ /dev/null @@ -1,73 +0,0 @@ -SUMMARY = "Framebuffer image and doc viewer tools" -DESCRIPTION = "The fbida project contains a few applications for viewing and editing images, \ - with the main focus being photos." -HOMEPAGE = "http://linux.bytesex.org/fbida/" -AUTHOR = "Gerd Hoffmann" -SECTION = "utils" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" - -DEPENDS = "virtual/libiconv jpeg fontconfig freetype libexif" - -SRC_URI = "https://www.kraxel.org/releases/fbida/fbida-${PV}.tar.gz \ - file://0001-Avoid-using-host-path.patch \ - file://fix-preprocessor.patch \ - file://support-jpeg-turbo.patch \ - file://use-jpeg-turbo.patch \ - " -SRC_URI[md5sum] = "09460b964b58c2e39b665498eca29018" -SRC_URI[sha256sum] = "7a5a3aac61b40a6a2bbf716d270a46e2f8e8d5c97e314e927d41398a4d0b6cb6" - -B = "${WORKDIR}/build" - -inherit pkgconfig - -EXTRA_OEMAKE = "STRIP= 'srcdir=${S}' -f ${S}/GNUmakefile" - -PACKAGECONFIG ??= "gif png curl" -PACKAGECONFIG[curl] = ",,curl" -PACKAGECONFIG[gif] = ",,giflib" -PACKAGECONFIG[png] = ",,libpng" -PACKAGECONFIG[tiff] = ",,tiff" -PACKAGECONFIG[motif] = ",,libx11 libxext libxpm libxt openmotif" -PACKAGECONFIG[webp] = ",,libwebp" -PACKAGECONFIG[lirc] = ",,lirc" - -do_compile() { - sed -i -e 's# fbgs# \$(srcdir)/fbgs#; s#-Ijpeg#-I\$(srcdir)/jpeg#; s# jpeg/# \$(srcdir)/jpeg/#' ${S}/GNUmakefile - sed -i -e 's:/sbin/ldconfig:echo x:' ${S}/mk/Autoconf.mk - sed -i -e 's: cpp: ${CPP}:' ${S}/GNUmakefile - - # Be sure to respect preferences (force to "no") - # Also avoid issues when ${BUILD_ARCH} == ${HOST_ARCH} - if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'curl', d)}" ]; then - sed -i -e '/^HAVE_LIBCURL/s/:=.*$/:= no/' ${S}/GNUmakefile - fi - if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'gif', d)}" ]; then - sed -i -e '/^HAVE_LIBGIF/s/:=.*$/:= no/' ${S}/GNUmakefile - fi - if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'png', d)}" ]; then - sed -i -e '/^HAVE_LIBPNG/s/:=.*$/:= no/' ${S}/GNUmakefile - fi - if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'tiff', d)}" ]; then - sed -i -e '/^HAVE_LIBTIFF/s/:=.*$/:= no/' ${S}/GNUmakefile - fi - if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'motif', d)}" ]; then - sed -i -e '/^HAVE_MOTIF/s/:=.*$/:= no/' ${S}/GNUmakefile - fi - if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'webp', d)}" ]; then - sed -i -e '/^HAVE_LIBWEBP/s/:=.*$/:= no/' ${S}/GNUmakefile - fi - if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'lirc', d)}" ]; then - sed -i -e '/^HAVE_LIBLIRC/s/:=.*$/:= no/' ${S}/GNUmakefile - fi - - oe_runmake -} - -do_install() { - oe_runmake 'DESTDIR=${D}' install -} - -RDEPENDS_${PN} = "ttf-dejavu-sans-mono bash" diff --git a/meta-oe/recipes-graphics/fbida/fbida_git.bb b/meta-oe/recipes-graphics/fbida/fbida_git.bb new file mode 100644 index 0000000000..247a1fcbb2 --- /dev/null +++ b/meta-oe/recipes-graphics/fbida/fbida_git.bb @@ -0,0 +1,41 @@ +SUMMARY = "Framebuffer image and doc viewer tools" +DESCRIPTION = "The fbida project contains a few applications for viewing and editing images, \ + with the main focus being photos." +HOMEPAGE = "https://www.kraxel.org/blog/linux/fbida/" +SECTION = "utils" + +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=e8feb78a32950a909621bbb51f634b39" + +DEPENDS = "virtual/libiconv jpeg fontconfig freetype libexif libdrm pixman udev libinput cairo" + +PV = "2.14+git" +SRC_URI = "git://github.com/kraxel/fbida;protocol=https;branch=master \ + file://fix-preprocessor.patch \ + file://support-jpeg-turbo.patch \ + file://fbida-gcc10.patch \ + file://0001-meson.build-install-fbgs-shell-script.patch \ + file://0002-meson.build-add-features-options-for-png-gif-tiff-we.patch \ + file://0003-meson.build-do-not-require-xkbcommon.patch \ + file://0001-meson.build-make-fbpdf-build-optional.patch \ + file://0001-fbida-Include-missing-sys-types.h.patch \ +" +SRCREV = "eb769e3d7f4a073d4c37ed524ebd5017c6a578f5" +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + +# Depends on libepoxy +REQUIRED_DISTRO_FEATURES = "opengl" + +PACKAGECONFIG ??= "gif png pdf" +PACKAGECONFIG[gif] = "-Dgif=enabled,-Dgif=disabled,giflib" +PACKAGECONFIG[png] = "-Dpng=enabled,-Dpng=disabled,libpng" +PACKAGECONFIG[tiff] = "-Dtiff=enabled,-Dtiff=disabled,tiff" +PACKAGECONFIG[motif] = "-Dmotif=enabled,-Dmotif=disabled,libx11 libxext libxpm libxt openmotif" +PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp" +PACKAGECONFIG[pdf] = "-Dpdf=enabled,-Dpdf=disabled,poppler libepoxy" + +CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}" + +RDEPENDS:${PN} = "ttf-dejavu-sans-mono" diff --git a/meta-oe/recipes-graphics/fbida/files/0001-Avoid-using-host-path.patch b/meta-oe/recipes-graphics/fbida/files/0001-Avoid-using-host-path.patch deleted file mode 100644 index cdf2c25d37..0000000000 --- a/meta-oe/recipes-graphics/fbida/files/0001-Avoid-using-host-path.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 8d8fa9f22d9f6a95523bac63ac3af724faf5ff92 Mon Sep 17 00:00:00 2001 -From: Marek Vasut <marex@denx.de> -Date: Fri, 7 Apr 2017 23:26:09 +0200 -Subject: [PATCH] Avoid using host-path - -Remove the explicit reference to /usr/local/* , this is completely -bogus and causes trouble during cross-compilation. - -Signed-off-by: Marek Vasut <marex@denx.de> -Upstream-Status: Inappropriate [upstream requires this] ---- - mk/Variables.mk | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/mk/Variables.mk b/mk/Variables.mk -index 99f787c..3ffd87a 100644 ---- a/mk/Variables.mk -+++ b/mk/Variables.mk -@@ -42,12 +42,6 @@ CFLAGS += -Wall -Wmissing-prototypes -Wstrict-prototypes \ - -Wpointer-arith -Wunused - CXXFLAGS += -Wall -Wpointer-arith -Wunused - --# add /usr/local to the search path if something is in there ... --ifneq ($(wildcard /usr/local/include/*.h),) -- CFLAGS += -I/usr/local/include -- LDFLAGS += -L/usr/local/$(LIB) --endif -- - # fixup include path for $(srcdir) != "." - ifneq ($(srcdir),.) - CFLAGS += -I. -I$(srcdir) --- -2.11.0 - diff --git a/meta-oe/recipes-graphics/fbida/files/0001-fbida-Include-missing-sys-types.h.patch b/meta-oe/recipes-graphics/fbida/files/0001-fbida-Include-missing-sys-types.h.patch new file mode 100644 index 0000000000..0fb58f80e1 --- /dev/null +++ b/meta-oe/recipes-graphics/fbida/files/0001-fbida-Include-missing-sys-types.h.patch @@ -0,0 +1,31 @@ +From 17490e264e627ead81bf5840c8797de968485943 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 3 Jul 2023 11:25:26 -0700 +Subject: [PATCH] fbida: Include missing <sys/types.h> + +Fixes build on musl +../git/gfx.h:43:5: error: unknown type name 'dev_t'; did you mean 'div_t'? + dev_t devnum; + ^~~~~ + div_t +TOPDIR/build/tmp/work/cortexa57-yoe-linux-musl/fbida/2.14+gitAUTOINC+eb769e3d7f-r0/recipe-sysroot/usr/include/stdlib.h:64:35: note: 'div_t' declared here +typedef struct { int quot, rem; } div_t; + ^ +1 error generated + +Upstream-Status: Submitted [https://github.com/kraxel/fbida/pull/3] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + gfx.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/gfx.h ++++ b/gfx.h +@@ -1,5 +1,6 @@ + #include <stdbool.h> + #include <inttypes.h> ++#include <sys/types.h> + + #include <pixman.h> + #include <cairo.h> diff --git a/meta-oe/recipes-graphics/fbida/files/0001-meson.build-install-fbgs-shell-script.patch b/meta-oe/recipes-graphics/fbida/files/0001-meson.build-install-fbgs-shell-script.patch new file mode 100644 index 0000000000..4d081258be --- /dev/null +++ b/meta-oe/recipes-graphics/fbida/files/0001-meson.build-install-fbgs-shell-script.patch @@ -0,0 +1,28 @@ +From f9c455e81ad4d870c8ae20b9af8598139231ad26 Mon Sep 17 00:00:00 2001 +From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com> +Date: Fri, 9 Sep 2022 09:32:22 +0200 +Subject: [PATCH] meson.build: install fbgs shell script + +Upstream-Status: Submitted [https://github.com/kraxel/fbida/pull/4] +Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com> +--- + meson.build | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/meson.build b/meson.build +index cbed982..2129896 100644 +--- a/meson.build ++++ b/meson.build +@@ -126,6 +126,9 @@ executable('fbpdf', + sources : fbpdf_srcs, + dependencies : fbpdf_deps, + install : true) ++install_data('fbgs', ++ install_dir : get_option('bindir'), ++ install_mode : 'rwxr--r--') + + # build fbcon + fbcon_srcs = [ 'fbcon.c', 'drmtools.c', 'fbtools.c', 'gfx.c', 'vt.c', 'kbd.c' ] +-- +2.37.3 + diff --git a/meta-oe/recipes-graphics/fbida/files/0001-meson.build-make-fbpdf-build-optional.patch b/meta-oe/recipes-graphics/fbida/files/0001-meson.build-make-fbpdf-build-optional.patch new file mode 100644 index 0000000000..b872e213aa --- /dev/null +++ b/meta-oe/recipes-graphics/fbida/files/0001-meson.build-make-fbpdf-build-optional.patch @@ -0,0 +1,66 @@ +From c00a155e90a9b22bd6ab5fa5407bb9923ee16ca0 Mon Sep 17 00:00:00 2001 +From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com> +Date: Fri, 16 Sep 2022 18:45:58 +0200 +Subject: [PATCH] meson.build: make fbpdf build optional + +Upstream-Status: Submitted [https://github.com/kraxel/fbida/pull/4] +Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com> +--- + meson.build | 22 ++++++++++++---------- + meson_options.txt | 1 + + 2 files changed, 13 insertions(+), 10 deletions(-) + +diff --git a/meson.build b/meson.build +index 6b3daf3..289d1ec 100644 +--- a/meson.build ++++ b/meson.build +@@ -15,11 +15,11 @@ x11resdir = x11resrun.stdout().strip() + + # pkg-config deps + pixman_dep = dependency('pixman-1') +-poppler_dep = dependency('poppler-glib') ++poppler_dep = dependency('poppler-glib', required: get_option('pdf')) + cairo_dep = dependency('cairo') + drm_dep = dependency('libdrm') +-gbm_dep = dependency('gbm') +-epoxy_dep = dependency('epoxy') ++gbm_dep = dependency('gbm', required: get_option('pdf')) ++epoxy_dep = dependency('epoxy', required: get_option('pdf')) + exif_dep = dependency('libexif') + png_dep = dependency('libpng', required: get_option('png')) + tiff_dep = dependency('libtiff-4', required: get_option('tiff')) +@@ -132,13 +132,15 @@ fbpdf_deps = [ drm_dep, gbm_dep, epoxy_dep, + pixman_dep, poppler_dep, cairo_dep, + udev_dep, input_dep ] + +-executable('fbpdf', +- sources : fbpdf_srcs, +- dependencies : fbpdf_deps, +- install : true) +-install_data('fbgs', +- install_dir : get_option('bindir'), +- install_mode : 'rwxr--r--') ++if get_option('pdf').enabled() ++ executable('fbpdf', ++ sources : fbpdf_srcs, ++ dependencies : fbpdf_deps, ++ install : true) ++ install_data('fbgs', ++ install_dir : get_option('bindir'), ++ install_mode : 'rwxr--r--') ++endif + + # build fbcon + fbcon_srcs = [ 'fbcon.c', 'drmtools.c', 'fbtools.c', 'gfx.c', 'vt.c', 'kbd.c' ] +diff --git a/meson_options.txt b/meson_options.txt +index ce37188..74699ab 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -3,3 +3,4 @@ option('png', type: 'feature', value : 'enabled') + option('tiff', type: 'feature', value : 'enabled') + option('webp', type: 'feature', value : 'disabled') + option('motif', type: 'feature', value : 'disabled') ++option('pdf', type: 'feature', value : 'enabled') +-- +2.37.3 + diff --git a/meta-oe/recipes-graphics/fbida/files/0002-meson.build-add-features-options-for-png-gif-tiff-we.patch b/meta-oe/recipes-graphics/fbida/files/0002-meson.build-add-features-options-for-png-gif-tiff-we.patch new file mode 100644 index 0000000000..4f54fbfba7 --- /dev/null +++ b/meta-oe/recipes-graphics/fbida/files/0002-meson.build-add-features-options-for-png-gif-tiff-we.patch @@ -0,0 +1,124 @@ +From cdcde5c1fd106a69118dff98118600911392762f Mon Sep 17 00:00:00 2001 +From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com> +Date: Fri, 16 Sep 2022 16:25:38 +0200 +Subject: [PATCH] meson.build: add features options for png, gif, tiff, webp, and motif + +Upstream-Status: Submitted [https://github.com/kraxel/fbida/pull/4] +Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com> +--- + meson.build | 41 +++++++++++++++++++++++++++-------------- + meson_options.txt | 5 +++++ + selections.c | 4 ++++ + 3 files changed, 36 insertions(+), 14 deletions(-) + create mode 100644 meson_options.txt + +diff --git a/meson.build b/meson.build +index cd9cc49..b5e3ffc 100644 +--- a/meson.build ++++ b/meson.build +@@ -23,9 +23,9 @@ drm_dep = dependency('libdrm') + gbm_dep = dependency('gbm') + epoxy_dep = dependency('epoxy') + exif_dep = dependency('libexif') +-png_dep = dependency('libpng') +-tiff_dep = dependency('libtiff-4') +-webp_dep = dependency('libwebp', required : false) ++png_dep = dependency('libpng', required: get_option('png')) ++tiff_dep = dependency('libtiff-4', required: get_option('tiff')) ++webp_dep = dependency('libwebp', required : get_option('webp')) + udev_dep = dependency('libudev') + input_dep = dependency('libinput') + xkb_dep = dependency('xkbcommon') +@@ -36,20 +36,20 @@ jpeg_dep = cc.find_library('jpeg') + util_dep = cc.find_library('util') + math_dep = cc.find_library('m', required : false) + pcd_dep = cc.find_library('pcd', required : false) +-gif_dep = cc.find_library('gif', required : false) ++gif_dep = cc.find_library('gif', required: get_option('gif')) + + # motif + x11 libs +-motif_dep = cc.find_library('Xm', required : false) +-xpm_dep = cc.find_library('Xpm', required : false) +-xt_dep = cc.find_library('Xt', required : false) +-xext_dep = cc.find_library('Xext', required : false) +-x11_dep = cc.find_library('X11', required : false) ++motif_dep = cc.find_library('Xm', required : get_option('motif')) ++xpm_dep = cc.find_library('Xpm', required : get_option('motif')) ++xt_dep = cc.find_library('Xt', required : get_option('motif')) ++xext_dep = cc.find_library('Xext', required : get_option('motif')) ++x11_dep = cc.find_library('X11', required : get_option('motif')) + + # image formats + read_srcs = [ 'readers.c', 'rd/read-ppm.c', 'rd/read-bmp.c', +- 'rd/read-jpeg.c', 'rd/read-png.c', 'rd/read-tiff.c' ] ++ 'rd/read-jpeg.c' ] + write_srcs = [ 'writers.c', 'wr/write-ppm.c', 'wr/write-ps.c', +- 'wr/write-jpeg.c', 'wr/write-png.c', 'wr/write-tiff.c' ] ++ 'wr/write-jpeg.c' ] + image_deps = [ jpeg_dep, png_dep, tiff_dep, + pcd_dep, gif_dep, webp_dep ] + +@@ -57,11 +57,21 @@ if pcd_dep.found() + read_srcs += 'rd/read-pcd.c' + config.set('HAVE_LIBPCD', true) + endif +-if gif_dep.found() ++if get_option('png').enabled() ++ read_srcs += 'rd/read-png.c' ++ write_srcs += 'wr/write-png.c' ++ config.set('HAVE_LIBPNG', true) ++endif ++if get_option('tiff').enabled() ++ read_srcs += 'rd/read-tiff.c' ++ write_srcs += 'wr/write-tiff.c' ++ config.set('HAVE_LIBTIFF', true) ++endif ++if get_option('gif').enabled() + read_srcs += 'rd/read-gif.c' + config.set('HAVE_LIBGIF', true) + endif +-if webp_dep.found() ++if get_option('webp').enabled() + read_srcs += 'rd/read-webp.c' + config.set('HAVE_LIBWEBP', true) + endif +@@ -168,7 +181,7 @@ ida_srcs = [ 'ida.c', 'man.c', 'hex.c', 'x11.c', 'viewer.c', + ida_deps = [ pixman_dep, exif_dep, image_deps, math_dep, + motif_dep, xpm_dep, xt_dep, xext_dep, x11_dep ] + +-if motif_dep.found() ++if get_option('motif').enabled() + executable('ida', + sources : ida_srcs, + dependencies : ida_deps, +diff --git a/meson_options.txt b/meson_options.txt +new file mode 100644 +index 0000000..ce37188 +--- /dev/null ++++ b/meson_options.txt +@@ -0,0 +1,5 @@ ++option('gif', type: 'feature', value : 'enabled') ++option('png', type: 'feature', value : 'enabled') ++option('tiff', type: 'feature', value : 'enabled') ++option('webp', type: 'feature', value : 'disabled') ++option('motif', type: 'feature', value : 'disabled') +diff --git a/selections.c b/selections.c +index 7b16264..ccdc686 100644 +--- a/selections.c ++++ b/selections.c +@@ -609,8 +609,12 @@ void ipc_init() + #ifdef HAVE_LIBGIF + targets[ntargets++] = MIME_IMAGE_GIF; + #endif ++#ifdef HAVE_LIBPNG + targets[ntargets++] = MIME_IMAGE_PNG; ++#endif ++#ifdef HAVE_LIBTIFF + targets[ntargets++] = MIME_IMAGE_TIFF; ++#endif + targets[ntargets++] = XA_PIXMAP; + targets[ntargets++] = XA_STRING; + +-- +2.37.3 + diff --git a/meta-oe/recipes-graphics/fbida/files/0003-meson.build-do-not-require-xkbcommon.patch b/meta-oe/recipes-graphics/fbida/files/0003-meson.build-do-not-require-xkbcommon.patch new file mode 100644 index 0000000000..e769014131 --- /dev/null +++ b/meta-oe/recipes-graphics/fbida/files/0003-meson.build-do-not-require-xkbcommon.patch @@ -0,0 +1,27 @@ +From ec82a194f3454ac203a134c9a99bac6d63095d25 Mon Sep 17 00:00:00 2001 +From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com> +Date: Fri, 16 Sep 2022 18:29:03 +0200 +Subject: [PATCH] meson.build: do not require xkbcommon + +Upstream-Status: Pending +Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com> +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 341939c..b5dab14 100644 +--- a/meson.build ++++ b/meson.build +@@ -26,7 +26,7 @@ tiff_dep = dependency('libtiff-4', required: get_option('tiff')) + webp_dep = dependency('libwebp', required : get_option('webp')) + udev_dep = dependency('libudev') + input_dep = dependency('libinput') +-xkb_dep = dependency('xkbcommon') ++xkb_dep = dependency('xkbcommon', required : false) + tsm_dep = dependency('libtsm', required : false) + + # other library deps +-- +2.37.3 + diff --git a/meta-oe/recipes-graphics/fbida/files/fbida-gcc10.patch b/meta-oe/recipes-graphics/fbida/files/fbida-gcc10.patch new file mode 100644 index 0000000000..1104289f3c --- /dev/null +++ b/meta-oe/recipes-graphics/fbida/files/fbida-gcc10.patch @@ -0,0 +1,61 @@ +Fix build with gcc10 + +Patch from https://src.fedoraproject.org/rpms/fbida/raw/master/f/fbida.gcc10.patch + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- fbida-2.14/fbi.c.org 2020-03-15 17:02:17.944189632 +0100 ++++ fbida-2.14/fbi.c 2020-03-15 17:02:21.880223224 +0100 +@@ -100,7 +100,6 @@ + + /* graphics interface */ + gfxstate *gfx; +-int debug; + + /* framebuffer */ + char *fbdev = NULL; +--- fbida-2.14/filter.c 2020-03-15 16:44:17.159855150 +0100 ++++ fbida-2.14/filter.c 2020-03-15 16:44:27.017941447 +0100 +@@ -6,8 +6,6 @@ + #include "readers.h" + #include "filter.h" + +-int debug = 0; +- + /* ----------------------------------------------------------------------- */ + + static void +--- fbida-2.14/readers.c.org 2020-03-15 17:01:18.692683597 +0100 ++++ fbida-2.14/readers.c 2020-03-15 16:57:19.141632384 +0100 +@@ -6,6 +6,8 @@ + + #include "readers.h" + ++int debug=0; ++ + /* ----------------------------------------------------------------------- */ + + void load_bits_lsb(unsigned char *dst, unsigned char *src, int width, + +--- fbida-2.14/viewer.c.org 2020-03-15 17:05:02.991595832 +0100 ++++ fbida-2.14/viewer.c 2020-03-15 17:04:55.424531467 +0100 +@@ -40,7 +40,6 @@ + #define PROCESS_LINES 16 + +-int debug; + Cursor ptrs[POINTER_COUNT]; + + /* ----------------------------------------------------------------------- */ + +--- fbida-2.14/idaconfig.h.org 2020-03-15 17:07:09.239668196 +0100 ++++ fbida-2.14/idaconfig.h 2020-03-15 17:07:21.248770061 +0100 +@@ -17,7 +17,7 @@ + + /* -------------------------------------------------------------------------- */ + +-char *ida_lists; ++extern char *ida_lists; + + void ida_init_config(void); + void ida_read_config(void); diff --git a/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch b/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch index 909a0a6c0f..ef70a070dd 100644 --- a/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch +++ b/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch @@ -1,14 +1,8 @@ -Index: fbida-2.13/GNUmakefile -=================================================================== ---- fbida-2.13.orig/GNUmakefile -+++ fbida-2.13/GNUmakefile -@@ -53,8 +53,7 @@ include $(srcdir)/mk/Autoconf.mk - - ac_jpeg_ver = $(shell \ - $(call ac_init,for libjpeg version);\ -- $(call ac_s_cmd,echo JPEG_LIB_VERSION \ -- | cpp -include jpeglib.h | tail -n 1);\ -+ $(call ac_s_cmd,cpp -include jpeglib.h -dM -E -x c /dev/null | grep 'define JPEG_LIB_VERSION' | cut -f 3 -d' ');\ - $(call ac_fini)) - - define make-config +Upstream-Status: Pending + +--- a/scripts/jpeg-version.sh ++++ b/scripts/jpeg-version.sh +@@ -1,2 +1,2 @@ + #!/bin/sh +-echo JPEG_LIB_VERSION | cpp $CFLAGS -include jpeglib.h | tail -1 ++${CPP} -include jpeglib.h -dM -E -x c /dev/null | grep 'define JPEG_LIB_VERSION' | cut -f 3 -d' ' diff --git a/meta-oe/recipes-graphics/fbida/files/support-jpeg-turbo.patch b/meta-oe/recipes-graphics/fbida/files/support-jpeg-turbo.patch index 05cd74da92..719c096e2b 100644 --- a/meta-oe/recipes-graphics/fbida/files/support-jpeg-turbo.patch +++ b/meta-oe/recipes-graphics/fbida/files/support-jpeg-turbo.patch @@ -1,3 +1,5 @@ +Upstream-Status: Pending + Add patch by Ondrej Sury to migrate to libjpeg-turbo (Closes: #763263) Index: fbida-2.10/jpeg/62/jpegcomp.h diff --git a/meta-oe/recipes-graphics/fbida/files/use-jpeg-turbo.patch b/meta-oe/recipes-graphics/fbida/files/use-jpeg-turbo.patch deleted file mode 100644 index 99639554c2..0000000000 --- a/meta-oe/recipes-graphics/fbida/files/use-jpeg-turbo.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: fbida-2.10/GNUmakefile -=================================================================== ---- fbida-2.10.orig/GNUmakefile -+++ fbida-2.10/GNUmakefile -@@ -51,7 +51,7 @@ HAVE_LIBSANE := $(call ac_lib,sane_init, - HAVE_LIBCURL := $(call ac_lib,curl_easy_init,curl) - HAVE_LIBLIRC := $(call ac_lib,lirc_init,lirc_client) - HAVE_MOTIF := $(call ac_lib,XmStringGenerate,Xm,-L/usr/X11R6/$(LIB) -lXpm -lXt -lXext -lX11) --JPEG_VER := $(call ac_jpeg_ver) -+JPEG_VER := 62 - endef - - # transposing diff --git a/meta-oe/recipes-graphics/feh/feh_3.10.2.bb b/meta-oe/recipes-graphics/feh/feh_3.10.2.bb new file mode 100644 index 0000000000..2c38ce614b --- /dev/null +++ b/meta-oe/recipes-graphics/feh/feh_3.10.2.bb @@ -0,0 +1,30 @@ +SUMMARY = "X11 image viewer aimed mostly at console users" +HOMEPAGE = "https://feh.finalrewind.org/" +SECTION = "x11/utils" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=150e4c518ff8aaecfe35694e47661d9a" +DEPENDS = "\ + imlib2 \ + virtual/libx11 libxt\ +" + +SRC_URI = "https://feh.finalrewind.org/feh-${PV}.tar.bz2" +SRC_URI[sha256sum] = "5f94a77de25c5398876f0cf431612d782b842f4db154d2139b778c8f196e8969" + +inherit mime-xdg features_check +# depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" + +EXTRA_OEMAKE = "curl=0 xinerama=0 PREFIX=/usr" + +do_compile () { + oe_runmake +} + +do_install () { + oe_runmake install app=1 'DESTDIR=${D}' 'ICON_PREFIX=${D}${datadir}/icons' +} + +RDEPENDS:${PN} += "imlib2-loaders" + +FILES:${PN} += "${datadir}/icons" diff --git a/meta-oe/recipes-graphics/fontforge/fontforge/0001-Fix-Translations-containing-invalid-directives-hs.patch b/meta-oe/recipes-graphics/fontforge/fontforge/0001-Fix-Translations-containing-invalid-directives-hs.patch new file mode 100644 index 0000000000..6d133254ed --- /dev/null +++ b/meta-oe/recipes-graphics/fontforge/fontforge/0001-Fix-Translations-containing-invalid-directives-hs.patch @@ -0,0 +1,385 @@ +From e6ccc8a8cf1391010a8220836a732da9fab19c69 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 7 Sep 2023 12:35:12 -0700 +Subject: [PATCH] Fix Translations containing invalid directives %hs + +Found with gettext 0.22 +Older versions of msgfmt were more sloppy, thus allowing such mistakes to cause bugs at runtime. + +https://bugs.gentoo.org/908868 +https://savannah.gnu.org/bugs/index.php?64333 +https://github.com/fontforge/fontforge/issues/5251 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + fontforgeexe/searchview.c | 2 +- + po/ca.po | 4 ++-- + po/de.po | 4 ++-- + po/en_GB.po | 4 ++-- + po/fr.po | 40 +++++++++++++++++++-------------------- + po/hr.po | 4 ++-- + po/it.po | 8 ++++---- + po/ja.po | 4 ++-- + po/ko.po | 4 ++-- + po/pl.po | 4 ++-- + po/uk.po | 4 ++-- + po/vi.po | 4 ++-- + 12 files changed, 43 insertions(+), 43 deletions(-) + +diff --git a/fontforgeexe/searchview.c b/fontforgeexe/searchview.c +index 1cb39a221..7e1c109cb 100644 +--- a/fontforgeexe/searchview.c ++++ b/fontforgeexe/searchview.c +@@ -516,7 +516,7 @@ return( true ); + if ( ask_if_difficult==2 && !searcher->isvisible ) + return( false ); + if ( gwwv_ask(_("Bad Reference"),(const char **) buttons,1,1, +- _("The %1$s in the search dialog contains a reference to %2$.20hs which does not exist in the new font.\nShould I remove the reference?"), ++ _("The %1$s in the search dialog contains a reference to %2$.20s which does not exist in the new font.\nShould I remove the reference?"), + i==0?_("Search Pattern"):_("Replace Pattern"), + r->sc->name)==1 ) + return( false ); +diff --git a/po/ca.po b/po/ca.po +index e2349b6ef..6c920b7c0 100644 +--- a/po/ca.po ++++ b/po/ca.po +@@ -12347,11 +12347,11 @@ msgstr "Tai" + + #, c-format + msgid "" +-"The %1$s in the search dialog contains a reference to %2$.20hs which does " ++"The %1$s in the search dialog contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + msgstr "" +-"Al diàleg de cerca, %1$s conté una referència a %2$.20hs\n" ++"Al diàleg de cerca, %1$s conté una referència a %2$.20s\n" + "que no existeix en el nou tipus.\n" + "Voleu eliminar la referència?" + +diff --git a/po/de.po b/po/de.po +index 41430ffae..8a31aeaa2 100644 +--- a/po/de.po ++++ b/po/de.po +@@ -15765,11 +15765,11 @@ msgstr "" + + #, c-format + msgid "" +-"The %1$s in the search dialog contains a reference to %2$.20hs which does " ++"The %1$s in the search dialog contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + msgstr "" +-"%1$s im Suchdialog enthält eine Referenz auf %2$.20hs, die in der neuen " ++"%1$s im Suchdialog enthält eine Referenz auf %2$.20s, die in der neuen " + "Schrift nicht existiert.\n" + "Soll der Referenz entfernt werden?" + +diff --git a/po/en_GB.po b/po/en_GB.po +index 9bd2d62bb..fce64c97d 100644 +--- a/po/en_GB.po ++++ b/po/en_GB.po +@@ -728,11 +728,11 @@ msgstr "Template Colour" + + #, c-format + msgid "" +-"The %1$s in the search dialog contains a reference to %2$.20hs which does " ++"The %1$s in the search dialog contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + msgstr "" +-"The %1$s in the search dialogue contains a reference to %2$.20hs which does " ++"The %1$s in the search dialogue contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + +diff --git a/po/fr.po b/po/fr.po +index 26e446b38..d130f89bc 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -291,7 +291,7 @@ msgstr "chaîne %1$.30s pour %2$.30s" + #. GT: $4 is the changed flag ('*' for the changed items) + #, c-format + msgid "%1$.80s at %2$d from %3$.90s%4$s" +-msgstr "%1$.80s à %2$d de %3$.90hs%4$s" ++msgstr "%1$.80s à %2$d de %3$.90s%4$s" + + #. GT: This is the title for a window showing a bitmap character + #. GT: It will look something like: +@@ -302,7 +302,7 @@ msgstr "%1$.80s à %2$d de %3$.90hs%4$s" + #. GT: $4 is the font name + #, c-format + msgid "%1$.80s at %2$d size %3$d from %4$.80s" +-msgstr "%1$.80s (%2$d) taille %3$d de %4$.80hs" ++msgstr "%1$.80s (%2$d) taille %3$d de %4$.80s" + + #, c-format + msgid "%1$s from lookup subtable %2$.50s" +@@ -7433,7 +7433,7 @@ msgid "" + "Reverting the file will lose those changes.\n" + "Is that what you want?" + msgstr "" +-"La fonte %1$.40s dans le fichier %2$.40hs a été modifiée.\n" ++"La fonte %1$.40s dans le fichier %2$.40s a été modifiée.\n" + "Revenir vous fera perdre toutes les modifications.\n" + "Voulez vous vraiment revenir ?" + +@@ -19077,11 +19077,11 @@ msgstr "" + + #, c-format + msgid "" +-"The %1$s in the search dialog contains a reference to %2$.20hs which does " ++"The %1$s in the search dialog contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + msgstr "" +-"Dans %1$s du dialogue de recherche il y a une référence vers %2$.20hs qui " ++"Dans %1$s du dialogue de recherche il y a une référence vers %2$.20s qui " + "n'existe pas dans la nouvelle fonte.\n" + "Faut-il supprimer la référence ?" + +@@ -19925,7 +19925,7 @@ msgid "" + "The fonts %1$.30s and %2$.30s have a different number of glyphs or different " + "encodings" + msgstr "" +-"Les fontes %1$.30s et %2$.30hs n'ont pas le même nombre de glyphes ou des " ++"Les fontes %1$.30s et %2$.30s n'ont pas le même nombre de glyphes ou des " + "codages différents" + + #, c-format +@@ -19933,7 +19933,7 @@ msgid "" + "The fonts %1$.30s and %2$.30s use different types of splines (one quadratic, " + "one cubic)" + msgstr "" +-"Les fontes %1$.30s et %2$.30hs utilisent des courbes de Bézier d'ordres " ++"Les fontes %1$.30s et %2$.30s utilisent des courbes de Bézier d'ordres " + "différents (quadratique et cubique)" + + msgid "The generated font won't work with ATM" +@@ -19968,8 +19968,8 @@ msgid "" + "The glyph %1$.30s in font %2$.30s has a different hint mask on its contours " + "than in %3$.30s" + msgstr "" +-"Le glyphe %1$.30s dans la police %2$.30hs a un masque de hints différent que " +-"dans %3$.30hs" ++"Le glyphe %1$.30s dans la police %2$.30s a un masque de hints différent que " ++"dans %3$.30s" + + #, c-format + msgid "" +@@ -19984,8 +19984,8 @@ msgid "" + "The glyph %1$.30s in font %2$.30s has a different number of references than " + "in %3$.30s" + msgstr "" +-"Le glyphe %1$.30s de la fonte %2$.30hs a un nombre de références différent " +-"dans %3$.30hs" ++"Le glyphe %1$.30s de la fonte %2$.30s a un nombre de références différent " ++"dans %3$.30s" + + #, c-format + msgid "" +@@ -20457,7 +20457,7 @@ msgstr "" + #, c-format + msgid "The outlines of glyph %2$.30s were not found in the font %1$.60s" + msgstr "" +-"Le contours du glyphe %2$.30s n'ont pas été trouvés dans la police %1$.60hs" ++"Le contours du glyphe %2$.30s n'ont pas été trouvés dans la police %1$.60s" + + msgid "The paths that make up this glyph intersect one another" + msgstr "Les chemins qui composent ce glyphe se coupent les uns les autres" +@@ -21042,7 +21042,7 @@ msgstr "Il y a déjà une sous-table avec ce nom, changez de nom SVP" + + #, c-format + msgid "There is already an anchor point named %1$.40s in %2$.40s." +-msgstr "Il y a déjà une ancre appelée %1$.40s dans %2$.40hs." ++msgstr "Il y a déjà une ancre appelée %1$.40s dans %2$.40s." + + msgid "There is another glyph in the font with this name" + msgstr "Il y a un autre glyphe dans la fonte avec ce nom" +@@ -21441,8 +21441,8 @@ msgid "" + "been able to find is %1$.20s-%2$.20s-%4$d.\n" + "Shall I use that or let you search?" + msgstr "" +-"Cette fonte est basée sur le jeu de caractères %1$.20s-%2$.20hs-%3$d, mais " +-"ce que j'ai trouvé de mieux c'est %1$.20hs-%2$.20hs-%4$d.\n" ++"Cette fonte est basée sur le jeu de caractères %1$.20s-%2$.20s-%3$d, mais " ++"ce que j'ai trouvé de mieux c'est %1$.20s-%2$.20s-%4$d.\n" + "Devrais-je utiliser cette valeur ou préférez vous chercher ?" + + msgid "" +@@ -21770,7 +21770,7 @@ msgid "" + "with a 0 offset for this combination. Would you like to alter this kerning " + "class entry (or create a kerning pair for just these two glyphs)?" + msgstr "" +-"Cette paire de crénage (%.20s et %.20hs) est dans une classe de crénage\n" ++"Cette paire de crénage (%.20s et %.20s) est dans une classe de crénage\n" + "avec un déplacement de 0 pour cette combinaison. Voulez-vous modifier cette " + "partie\n" + "de la classe de crénage (ou créer une nouvelle paire rien que pour ces 2 " +@@ -24551,8 +24551,8 @@ msgid "" + "referred to.\n" + "It will not be copied." + msgstr "" +-"Vous essayer de coller une référence vers %1$s dans %2$hs.\n" +-"Mais %1$hs n'existe pas dans cette fonte, et FontForge ne trouve pas le " ++"Vous essayer de coller une référence vers %1$s dans %2$s.\n" ++"Mais %1$s n'existe pas dans cette fonte, et FontForge ne trouve pas le " + "glyphe auquel il se référait.\n" + "Le glyphe ne sera pas copié." + +@@ -24562,8 +24562,8 @@ msgid "" + "But %1$s does not exist in this font.\n" + "Would you like to copy the original splines (or delete the reference)?" + msgstr "" +-"Vous essayer de coller une référence vers %1$s dans %2$hs.\n" +-"Mais %1$hs n'existe pas dans cette fonte.\n" ++"Vous essayer de coller une référence vers %1$s dans %2$s.\n" ++"Mais %1$s n'existe pas dans cette fonte.\n" + "Voulez vous copier le contour d'origine (ou supprimer la référence)?" + + msgid "" +diff --git a/po/hr.po b/po/hr.po +index d261d4ca7..ac41b9250 100644 +--- a/po/hr.po ++++ b/po/hr.po +@@ -20156,11 +20156,11 @@ msgstr "" + + #, c-format + msgid "" +-"The %1$s in the search dialog contains a reference to %2$.20hs which does " ++"The %1$s in the search dialog contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + msgstr "" +-"%1$s u dijaloškom okviru traženja sadrži referencu na %2$.20hs koja ne " ++"%1$s u dijaloškom okviru traženja sadrži referencu na %2$.20s koja ne " + "postoji u fontu.\n" + "Želiš li dozvoliti uklanjanje reference?" + +diff --git a/po/it.po b/po/it.po +index e13711485..d0c3ea987 100644 +--- a/po/it.po ++++ b/po/it.po +@@ -2303,7 +2303,7 @@ msgid "" + "Reverting the file will lose those changes.\n" + "Is that what you want?" + msgstr "" +-"Il font %1$.40s nel file %2$.40hs è stato modificato.\n" ++"Il font %1$.40s nel file %2$.40s è stato modificato.\n" + "Ripristinando il file perderai tutte le modifiche.\n" + "È quello che vuoi fare?" + +@@ -5835,7 +5835,7 @@ msgid "" + "The glyph %1$.30s has a different number of contours in font %2$.30s than in " + "%3$.30s" + msgstr "" +-"Il glifo %1$.30s ha un diverso numero di contorni nel font %2$.30hs rispetto " ++"Il glifo %1$.30s ha un diverso numero di contorni nel font %2$.30s rispetto " + "a %3$.30s" + + #, c-format +@@ -6235,8 +6235,8 @@ msgid "" + "been able to find is %1$.20s-%2$.20s-%4$d.\n" + "Shall I use that or let you search?" + msgstr "" +-"Questo font è basato sulla codifica di caratteri %1$.20s-%2$.20hs-%3$d, ma " +-"il migliore che io abbia trovato è %1$.20hs-%2$.20hs-%4$d.\n" ++"Questo font è basato sulla codifica di caratteri %1$.20s-%2$.20s-%3$d, ma " ++"il migliore che io abbia trovato è %1$.20s-%2$.20s-%4$d.\n" + "Devo usare questo valore o preferisci cercare tu stesso?" + + msgid "" +diff --git a/po/ja.po b/po/ja.po +index ed9f5a645..206ae82d1 100644 +--- a/po/ja.po ++++ b/po/ja.po +@@ -11458,11 +11458,11 @@ msgstr "" + + #, c-format + msgid "" +-"The %1$s in the search dialog contains a reference to %2$.20hs which does " ++"The %1$s in the search dialog contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + msgstr "" +-"%1$s には, 新しいフォントには含まれないグリフ %2$.20hs への参照が含まれていま" ++"%1$s には, 新しいフォントには含まれないグリフ %2$.20s への参照が含まれていま" + "す.\n" + "参照を削除しますか?" + +diff --git a/po/ko.po b/po/ko.po +index 971b4db03..4d5c8d40d 100644 +--- a/po/ko.po ++++ b/po/ko.po +@@ -20920,11 +20920,11 @@ msgstr "" + + #, c-format + msgid "" +-"The %1$s in the search dialog contains a reference to %2$.20hs which does " ++"The %1$s in the search dialog contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + msgstr "" +-"검색 대화 상자의 %1$s에는 새 글꼴에 없는 %2$.20hs에 대한 참조가 포함되어 있" ++"검색 대화 상자의 %1$s에는 새 글꼴에 없는 %2$.20s에 대한 참조가 포함되어 있" + "다.\n" + "참조를 제거해야 하는가?" + +diff --git a/po/pl.po b/po/pl.po +index 2bbbf00be..c1fd5a454 100644 +--- a/po/pl.po ++++ b/po/pl.po +@@ -19552,11 +19552,11 @@ msgstr "" + + #, c-format + msgid "" +-"The %1$s in the search dialog contains a reference to %2$.20hs which does " ++"The %1$s in the search dialog contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + msgstr "" +-"%1$s w okienku wyszukiwania zawiera odwołanie do %2$.20hs, który nie " ++"%1$s w okienku wyszukiwania zawiera odwołanie do %2$.20s, który nie " + "istnieje w nowym foncie.\n" + "Czy usunąć to odwołanie?" + +diff --git a/po/uk.po b/po/uk.po +index e3768acc3..3302a1005 100644 +--- a/po/uk.po ++++ b/po/uk.po +@@ -19860,11 +19860,11 @@ msgstr "" + + #, c-format + msgid "" +-"The %1$s in the search dialog contains a reference to %2$.20hs which does " ++"The %1$s in the search dialog contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + msgstr "" +-"%1$s у діалоговому вікні пошуку містить посилання на %2$.20hs, якого не " ++"%1$s у діалоговому вікні пошуку містить посилання на %2$.20s, якого не " + "існує у новому шрифті.\n" + "Вилучити це посилання?" + +diff --git a/po/vi.po b/po/vi.po +index 6aee8bb3f..f5eb739e6 100644 +--- a/po/vi.po ++++ b/po/vi.po +@@ -17109,11 +17109,11 @@ msgstr "" + + #, c-format + msgid "" +-"The %1$s in the search dialog contains a reference to %2$.20hs which does " ++"The %1$s in the search dialog contains a reference to %2$.20s which does " + "not exist in the new font.\n" + "Should I remove the reference?" + msgstr "" +-"Trong hộp thoại tìm kiếm, %1$s chứa một tham chiếu đến %2$.20hs mà không tồn " ++"Trong hộp thoại tìm kiếm, %1$s chứa một tham chiếu đến %2$.20s mà không tồn " + "tại trong phông mới.\n" + "Bạn có muốn gỡ bỏ tham chiếu này không?" + +-- +2.42.0 + diff --git a/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch b/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch new file mode 100644 index 0000000000..573866eb15 --- /dev/null +++ b/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch @@ -0,0 +1,77 @@ +From 644c3380f75b20a11755e7052aa632887f3eee2b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 7 Jul 2022 12:32:47 -0700 +Subject: [PATCH] cmake: Use alternate way to detect libm + +The standard package provided with MathLib cmake module does not work +when libm is folded into libc starting glibc 2.35+ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- + CMakeLists.txt | 7 ++++++- + contrib/fonttools/CMakeLists.txt | 2 +- + fontforge/CMakeLists.txt | 2 +- + fontforgeexe/CMakeLists.txt | 2 +- + 4 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e234cb6e9..284ba2d20 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -115,9 +115,14 @@ else() + endif() + find_package(Iconv REQUIRED) + find_package(LibXml2 REQUIRED) +-find_package(MathLib REQUIRED) + find_package(ZLIB REQUIRED) + ++include(CheckLibraryExists) ++CHECK_LIBRARY_EXISTS(m pow "" HAVE_LIB_M) ++if (HAVE_LIB_M) ++ set(EXTRA_LIBS ${EXTRA_LIBS} m) ++endif (HAVE_LIB_M) ++ + check_include_file(pthread.h HAVE_PTHREAD_H) + if(HAVE_PTHREAD_H) + find_package(Threads) +diff --git a/contrib/fonttools/CMakeLists.txt b/contrib/fonttools/CMakeLists.txt +index d6c698877..1608af152 100644 +--- a/contrib/fonttools/CMakeLists.txt ++++ b/contrib/fonttools/CMakeLists.txt +@@ -15,7 +15,7 @@ add_executable(woff woff.c) + + target_link_libraries(acorn2sfd PRIVATE fontforge) + target_link_libraries(dewoff PRIVATE ZLIB::ZLIB) +-target_link_libraries(pcl2ttf PRIVATE MathLib::MathLib) ++target_link_libraries(pcl2ttf PRIVATE ${EXTRA_LIBS}) + target_link_libraries(ttf2eps PRIVATE fontforge) + target_link_libraries(woff PRIVATE ZLIB::ZLIB) + +diff --git a/fontforge/CMakeLists.txt b/fontforge/CMakeLists.txt +index 9a052f360..067ef40df 100644 +--- a/fontforge/CMakeLists.txt ++++ b/fontforge/CMakeLists.txt +@@ -237,7 +237,7 @@ target_link_libraries(fontforge + GLIB::GLIB + Intl::Intl + PRIVATE +- MathLib::MathLib ++ ${EXTRA_LIBS} + Iconv::Iconv + ZLIB::ZLIB + ) +diff --git a/fontforgeexe/CMakeLists.txt b/fontforgeexe/CMakeLists.txt +index e2982c39d..8829993ea 100644 +--- a/fontforgeexe/CMakeLists.txt ++++ b/fontforgeexe/CMakeLists.txt +@@ -121,7 +121,7 @@ if(ENABLE_PYTHON_SCRIPTING_RESULT) + target_link_libraries(fontforgeexe PRIVATE Python3::Python) + endif() + +-target_link_libraries(fontforgeexe PRIVATE fontforge Iconv::Iconv MathLib::MathLib) ++target_link_libraries(fontforgeexe PRIVATE fontforge Iconv::Iconv ${EXTRA_LIBS}) + install(TARGETS fontforgeexe RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + if(UNIX) diff --git a/meta-oe/recipes-graphics/fontforge/fontforge/0001-fontforgeexe-Use-env-to-find-fontforge.patch b/meta-oe/recipes-graphics/fontforge/fontforge/0001-fontforgeexe-Use-env-to-find-fontforge.patch new file mode 100644 index 0000000000..e8c1a11d48 --- /dev/null +++ b/meta-oe/recipes-graphics/fontforge/fontforge/0001-fontforgeexe-Use-env-to-find-fontforge.patch @@ -0,0 +1,29 @@ +From f5a19ad9b2aea85dab28e7c61ac39404631fad2d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 6 Jul 2022 04:54:23 -0700 +Subject: [PATCH] fontforgeexe: Use env to find fontforge + +This helps in avoiding to encode build paths into interpeter + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + fontforgeexe/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fontforgeexe/CMakeLists.txt b/fontforgeexe/CMakeLists.txt +index b2d663b88..e2a8fee54 100644 +--- a/fontforgeexe/CMakeLists.txt ++++ b/fontforgeexe/CMakeLists.txt +@@ -118,7 +118,7 @@ if(UNIX) + foreach(_script fontimage.pe fontlint.pe sfddiff.pe) + get_filename_component(_output \"\${_script}\" NAME_WE) + file(READ \"${CMAKE_CURRENT_SOURCE_DIR}/\${_script}\" _input) +- file(WRITE \"${CMAKE_CURRENT_BINARY_DIR}/\${_output}\" \"#!\${CMAKE_INSTALL_PREFIX}/bin/fontforge -lang=ff\\n\${_input}\") ++ file(WRITE \"${CMAKE_CURRENT_BINARY_DIR}/\${_output}\" \"#!/usr/bin/env fontforge -lang=ff\\n\${_input}\") + endforeach() + " COMPONENT nativescripts) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/fontimage" "${CMAKE_CURRENT_BINARY_DIR}/fontlint" "${CMAKE_CURRENT_BINARY_DIR}/sfddiff" +-- +2.37.0 + diff --git a/meta-oe/recipes-graphics/fontforge/fontforge/0001-include-sys-select-on-non-glibc-platforms.patch b/meta-oe/recipes-graphics/fontforge/fontforge/0001-include-sys-select-on-non-glibc-platforms.patch new file mode 100644 index 0000000000..27de27d57d --- /dev/null +++ b/meta-oe/recipes-graphics/fontforge/fontforge/0001-include-sys-select-on-non-glibc-platforms.patch @@ -0,0 +1,24 @@ +From 798f2816130838f3618212291de6ab0ea814c868 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 29 Sep 2019 20:39:02 -0700 +Subject: [PATCH] include sys/select on non-glibc platforms + +musl needs sys/select.h for defining fd_set + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + gdraw/gdraw.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/gdraw/gdraw.c ++++ b/gdraw/gdraw.c +@@ -33,7 +33,7 @@ + #include "gkeysym.h" + #include "ustring.h" + +-#if __Mac ++#if __Mac || (defined(__linux__) && !defined(__GLIBC__)) + # include <sys/select.h> + #endif + diff --git a/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb b/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb deleted file mode 100644 index 481fedf983..0000000000 --- a/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb +++ /dev/null @@ -1,60 +0,0 @@ -SUMMARY = "A font editor" -HOMEPAGE = "http://fontforge.github.io/en-US/" -LICENSE = "BSD-3-Clause & GPLv3" -LIC_FILES_CHKSUM = " \ - file://COPYING.gplv3;md5=d32239bcb673463ab874e80d47fae504 \ - file://LICENSE;md5=3f922b42ed0033fa0fd4cd3268f6429c \ -" - -DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg python libtool uthash gnulib gettext-native" -DEPENDS_append_class-target = " libxi" - -inherit autotools pkgconfig pythonnative distro_features_check gettext - -REQUIRED_DISTRO_FEATURES_append_class-target = " x11" - -SRC_URI = "git://github.com/${BPN}/${BPN}.git" -# tag 20170731 -SRCREV = "b9149c13e8f9464fc21473f1f676b36a2130775d" -S = "${WORKDIR}/git" - -EXTRA_OECONF_append_class-native = " with_x=no" - -do_configure_prepend() { - # uthash sources are expected in uthash/src - currdir=`pwd` - cd ${S} - - mkdir -p uthash/src - cp ${STAGING_INCDIR}/ut*.h uthash/src - - # avoid bootstrap cloning gnulib on every configure - cat >.gitmodules <<EOF -[submodule "gnulib"] - path = gnulib - url = git://git.sv.gnu.org/gnulib -EOF - cp -rf ${STAGING_DATADIR}/gnulib ${S} - - # --force to avoid errors on reconfigure e.g if recipes changed we depend on - # | bootstrap: running: libtoolize --quiet - # | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite - # | ... - ./bootstrap --force - - cd $currdir -} - -PACKAGES =+ "${PN}-python-dbg ${PN}-python" - -FILES_${PN} += " \ - ${datadir}/mime \ - ${datadir}/icons \ -" - -FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR} ${datadir}/${PN}/python" -FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug" -RDEPENDS_${PN}-python = "python" - -# for e.g kde's oxygen-fonts -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/fontforge/fontforge_20230101.bb b/meta-oe/recipes-graphics/fontforge/fontforge_20230101.bb new file mode 100644 index 0000000000..31dd495fd7 --- /dev/null +++ b/meta-oe/recipes-graphics/fontforge/fontforge_20230101.bb @@ -0,0 +1,52 @@ +SUMMARY = "A font editor" +HOMEPAGE = "http://fontforge.github.io/en-US/" +LICENSE = "BSD-3-Clause & GPL-3.0-only" +LIC_FILES_CHKSUM = " \ + file://COPYING.gplv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://LICENSE;md5=d042f3d2a8fd7208b704a499168e3c89 \ +" + +DEPENDS = "python3 glib-2.0 pango giflib tiff libxml2 jpeg libtool uthash gettext-native libspiro" +DEPENDS:append:class-target = " libxi" + +inherit cmake pkgconfig python3native python3targetconfig features_check gettext gtk-icon-cache mime mime-xdg + +REQUIRED_DISTRO_FEATURES:append:class-target = " x11" + +# tag 20220308 +SRCREV = "a1dad3e81da03d5d5f3c4c1c1b9b5ca5ebcfcecf" +SRC_URI = "git://github.com/${BPN}/${BPN}.git;branch=master;protocol=https \ + file://0001-include-sys-select-on-non-glibc-platforms.patch \ + file://0001-fontforgeexe-Use-env-to-find-fontforge.patch \ + file://0001-cmake-Use-alternate-way-to-detect-libm.patch \ + file://0001-Fix-Translations-containing-invalid-directives-hs.patch \ +" +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = "-DENABLE_DOCS=OFF" +PACKAGECONFIG = "readline" +PACKAGECONFIG[readline] = "-DENABLE_READLINE=ON,-DENABLE_READLINE=OFF,readline" + +CFLAGS += "-fno-strict-aliasing" +LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI}" +BUILD_LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI}" + +#do_configure:prepend() { +# uthash sources are expected in uthash/src +# mkdir -p ${S}/uthash/src +# cp ${STAGING_INCDIR}/ut*.h ${S}/uthash/src +#} + +PACKAGES =+ "${PN}-python" + +FILES:${PN} += " \ + ${datadir}/appdata \ + ${datadir}/metainfo \ + ${datadir}/mime \ +" + +FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR} ${datadir}/${BPN}/python" +RDEPENDS:${PN}-python = "python3" + +# for e.g kde's oxygen-fonts +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/fontforge/libspiro_20221101.bb b/meta-oe/recipes-graphics/fontforge/libspiro_20221101.bb new file mode 100644 index 0000000000..0adac8464e --- /dev/null +++ b/meta-oe/recipes-graphics/fontforge/libspiro_20221101.bb @@ -0,0 +1,14 @@ +# Copyright (C) 2022 Khem Raj <raj.khem@gmail.com> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "LibSpiro is an adaptation of Spiro formula and functions into a sharable library" +HOMEPAGE = "https://github.com/fontforge/libspiro" +LICENSE = "GPL-3.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "https://github.com/fontforge/libspiro/releases/download/${PV}/libspiro-dist-${PV}.tar.gz" +SRC_URI[sha256sum] = "5984fb5af3e4e1f927f3a74850b705a711fb86284802a5e6170b09786440e8be" + +inherit autotools + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb b/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb deleted file mode 100644 index d54fafc8d4..0000000000 --- a/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "FreeGLUT is a free-software/open-source alternative to the OpenGL \ - Utility Toolkit (GLUT) library" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=89c0b58a3e01ce3d8254c9f59e78adfb" - -SRC_URI = "https://sourceforge.net/projects/${BPN}/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz" -SRC_URI[md5sum] = "90c3ca4dd9d51cf32276bc5344ec9754" -SRC_URI[sha256sum] = "2a43be8515b01ea82bcfa17d29ae0d40bd128342f0930cd1f375f1ff999f76a2" - -inherit cmake distro_features_check - -# depends on virtual/libx11, virtual/libgl -REQUIRED_DISTRO_FEATURES = "x11 opengl" - -PROVIDES += "mesa-glut" - -DEPENDS = "virtual/libx11 libxmu libxi virtual/libgl libglu libxrandr" diff --git a/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb b/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb new file mode 100644 index 0000000000..2cd00b0349 --- /dev/null +++ b/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "FreeGLUT is a free-software/open-source alternative to the OpenGL \ + Utility Toolkit (GLUT) library" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=89c0b58a3e01ce3d8254c9f59e78adfb" + +SRC_URI = "https://sourceforge.net/projects/${BPN}/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz" +SRC_URI[sha256sum] = "3c0bcb915d9b180a97edaebd011b7a1de54583a838644dcd42bb0ea0c6f3eaec" + +inherit cmake features_check pkgconfig + +# depends on virtual/libgl and libxi +REQUIRED_DISTRO_FEATURES = "opengl x11" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" +PACKAGECONFIG[gles] = "-DFREEGLUT_GLES=ON,-DFREEGLUT_GLES=OFF," +PACKAGECONFIG[wayland] = "-DFREEGLUT_WAYLAND=ON,-DFREEGLUT_WAYLAND=OFF,libxkbcommon" +PACKAGECONFIG[demos] = "-DFREEGLUT_BUILD_DEMOS=ON,-DFREEGLUT_BUILD_DEMOS=OFF," +PACKAGECONFIG[x11] = ",,virtual/libx11 libice libxmu libglu libxrandr libxext" +# Add -Wno-implicit-function-declaration since it might be otherwise treated at +# error by clang16+ and this is not really a problem +CFLAGS += "-Wno-implicit-function-declaration" + +PROVIDES += "mesa-glut" + +DEPENDS = "virtual/libgl libxi" + +do_install:append() { + # Remove buildpaths + sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/FreeGLUT/FreeGLUTTargets.cmake +} diff --git a/meta-oe/recipes-graphics/ftgl/ftgl/0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch b/meta-oe/recipes-graphics/ftgl/ftgl/0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch new file mode 100644 index 0000000000..385bff8dd1 --- /dev/null +++ b/meta-oe/recipes-graphics/ftgl/ftgl/0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch @@ -0,0 +1,38 @@ +From e3bce98a60d6db3b719bbf5d71f732f9b86cb566 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 9 Feb 2019 08:28:09 -0800 +Subject: [PATCH] Explicit typecast to avoid implicit double to float + conversion + +fixes compile errors e.g. + +../../ftgl-2.1.3~rc5/demo/simple.cpp:110:27: error: non-constant-expression cannot be narrowed from type 'double' to + 'float' in initializer list [-Wc++11-narrowing] + (t3 + 2.0) / 3, 0.3 }; + ^~~~~~~~~~~~~~ +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + demo/simple.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/demo/simple.cpp b/demo/simple.cpp +index 532e862..aba55b4 100644 +--- a/demo/simple.cpp ++++ b/demo/simple.cpp +@@ -105,9 +105,9 @@ static void RenderScene(void) + float t2 = sin(n / 50 + 1); + float t3 = sin(n / 30 + 2); + +- float ambient[4] = { (t1 + 2.0) / 3, +- (t2 + 2.0) / 3, +- (t3 + 2.0) / 3, 0.3 }; ++ float ambient[4] = { float(t1 + 2.0) / 3, ++ float(t2 + 2.0) / 3, ++ float(t3 + 2.0) / 3, 0.3 }; + float diffuse[4] = { 1.0, 0.9, 0.9, 1.0 }; + float specular[4] = { 1.0, 0.7, 0.7, 1.0 }; + float position[4] = { 100.0, 100.0, 0.0, 1.0 }; +-- +2.20.1 + diff --git a/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch b/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch new file mode 100644 index 0000000000..e5ed0bdb86 --- /dev/null +++ b/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch @@ -0,0 +1,38 @@ +From 8bb183926078b6dd54048fb6820838fe7b6e6163 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> +Date: Sun, 23 Oct 2016 22:46:43 +0200 +Subject: [PATCH] use pkg-config to find freetype2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> +--- + configure.ac | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 53560ea..b5bb6a3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -41,8 +41,13 @@ AC_CHECK_FUNCS(strndup) + + AC_PATH_X + +-AC_CHECK_FT2([9.0.3],[], +- [AC_MSG_ERROR([FreeType2 is required to compile this library])]) ++PKG_CHECK_MODULES(FT2, freetype2, ++ CFLAGS="$CFLAGS $FT2_CFLAGS" ++ LIBS="$LIBS $FT2_LIBS", ++ AC_MSG_ERROR([FreeType2 is required to compile this library]) ++) ++AC_SUBST([FT2_CFLAGS]) ++AC_SUBST([FT2_LIBS]) + + AC_PATH_XTRA + +-- +2.5.5 + diff --git a/meta-oe/recipes-graphics/ftgl/ftgl/0002-Makefile.am-remove-useless-and-breaking-code.patch b/meta-oe/recipes-graphics/ftgl/ftgl/0002-Makefile.am-remove-useless-and-breaking-code.patch new file mode 100644 index 0000000000..830783e204 --- /dev/null +++ b/meta-oe/recipes-graphics/ftgl/ftgl/0002-Makefile.am-remove-useless-and-breaking-code.patch @@ -0,0 +1,38 @@ +From daabb4110661c4358ec73293d5c0b2106f567c1f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> +Date: Sun, 23 Oct 2016 23:54:14 +0200 +Subject: [PATCH] Makefile.am: remove useless and breaking code +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> +--- + Makefile.am | 9 --------- + 1 file changed, 9 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 89a8a7f..e582a34 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -24,15 +24,6 @@ EXTRA_DIST = \ + m4 \ + $(NULL) + +-# Print out an informative summary. +-all-local: +- @$(ECHO) "Done." +- @$(ECHO) +- @if test "x$(MAKECMDGOALS)" = "xall-am" -o "x$(.TARGETS)" = "xall-am" -o "x$(MAKECMDGOALS)" = "x" -o "x$(.TARGETS)" = "x" ; then \ +- $(ECHO) "---" ;\ +- $(ECHO) "Run 'make install' to begin installation into $(prefix)" ;\ +- fi +- @$(ECHO) + + # Upload documentation + DOC = docs/html docs/latex/ftgl.pdf +-- +2.5.5 + diff --git a/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb b/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb new file mode 100644 index 0000000000..65f72747cc --- /dev/null +++ b/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb @@ -0,0 +1,27 @@ +SUMMARY = "OpenGL frontend to Freetype 2" +HOMEPAGE = "https://sourceforge.net/projects/ftgl/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=527a83e92c7bf363025380eec05df6e4" + +inherit autotools pkgconfig features_check + +REQUIRED_DISTRO_FEATURES = "opengl x11" + +DEPENDS += " \ + freetype \ + freeglut \ +" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-use-pkg-config-to-find-freetype2.patch \ + file://0002-Makefile.am-remove-useless-and-breaking-code.patch \ + file://0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch \ +" +SRC_URI[md5sum] = "c7879018cde844059495b3029b0b6503" +SRC_URI[sha256sum] = "521ff7bd62c459ff5372e269c223e2a6107a6a99a36afdc2ae634a973af70c59" + +S = "${WORKDIR}/ftgl-2.1.3~rc5" + +# undefined reference to symbol 'sin@@GLIBC_2.4' +CFLAGS += "-lm" diff --git a/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch b/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch index 5a76474558..4886248233 100644 --- a/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch +++ b/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch @@ -10,11 +10,7 @@ COMPAT_OLD_KEYSYMDEF is a check for a legacy system, which our system most definitely is not. It is accomplished by trying to execute a program, which does not work when cross compiling. -The fvwm(1) man page is created from Docbook XML which is set for -a Windows code page that is not available when compiling. Easiest is -to just not create the man page as those are not needed on the monitor. - -Upstream-Status: inappropriate [OE specific] +Upstream-Status: Inappropriate [OE specific] Signed-off-by: Jarmo Jaakkola <jarmo.jaakkola@vincit.fi> Signed-off-by: Riku Hämäläinen <riku.hamalainen@ge.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> @@ -27,22 +23,7 @@ diff --git a/configure.ac b/configure.ac index 48ce264..fab7b44 100644 --- a/configure.ac +++ b/configure.ac -@@ -1413,23 +1413,7 @@ else - problem_gdkimlib=": Failed on gdk-imlib, see config.log" - fi - --GNOME_INIT_HOOK -- --# Unfortunately we have 2 gnome supports: WM hints and gnome libs. --# The $with_gnomehints below refers to the first, not GNOME_INIT_HOOK. --if test ! x"$enable_gnome_hints" = xno; then -- with_gnomehints=yes -- problem_gnomehints="" --else -- with_gnomehints=no -- problem_gnomehints=": Explicitly disabled" --fi -- +@@ -1413,8 +1413,4 @@ else # Define some compatibility macros needed for config.h. -mg_DEFINE_IF_NOT([#include <X11/keysym.h>], - [defined XK_Page_Up && defined XK_Page_Down], @@ -51,19 +32,6 @@ index 48ce264..fab7b44 100644 AH_VERBATIM([_COMPAT_OLD_KEYSYMDEF], [#ifdef COMPAT_OLD_KEYSYMDEF # define XK_Page_Up XK_Prior -diff --git a/doc/fvwm/Makefile.am b/doc/fvwm/Makefile.am -index cddb102..ff00149 100755 ---- a/doc/fvwm/Makefile.am -+++ b/doc/fvwm/Makefile.am -@@ -10,7 +10,7 @@ XSL_PROFILE = $(srcdir)/../docbook-xsl/profiling/profile.xsl - HTML_FILES = fvwm.man.html - XML_FILES = @DOC_SECTIONS_XML_PATH@ - EXTRA_DIST = @DOC_SECTIONS_XML@ $(man_MANS) sections --man_MANS = fvwm.1 -+man_MANS = - - if FVWM_BUILD_HTMLDOC - doc_DATA = $(HTML_FILES) -- 1.9.1 diff --git a/meta-oe/recipes-graphics/fvwm/fvwm/0001-configure-Do-not-require-support-for-implicit-ints.patch b/meta-oe/recipes-graphics/fvwm/fvwm/0001-configure-Do-not-require-support-for-implicit-ints.patch new file mode 100644 index 0000000000..356bd73f88 --- /dev/null +++ b/meta-oe/recipes-graphics/fvwm/fvwm/0001-configure-Do-not-require-support-for-implicit-ints.patch @@ -0,0 +1,45 @@ +From cbba378a23410241176d62f3bb43965c044615e3 Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Thu, 24 Nov 2022 13:06:50 +0100 +Subject: [PATCH 1/3] configure: Do not require support for implicit ints + +Implicit ints have not been part of C since 1999, and future +compilers will disable support for them by default. Fortunatenly, +only one configure check needs adjusting. + +Upstream-Status: Submitted [https://github.com/fvwmorg/fvwm/pull/100] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + acinclude.m4 | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index 8b74ff1e..b66042f9 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -30,7 +30,7 @@ if test "$ac_cv_func_select" = yes; then + #ifdef HAVE_SYS_SOCKET_H + #include <sys/socket.h> + #endif], +-[extern select ($ac_cv_type_fd_set_size_t, ++[extern int select ($ac_cv_type_fd_set_size_t, + $ac_cv_type_fd_set *, $ac_cv_type_fd_set *, $ac_cv_type_fd_set *, + $ac_type_timeval *);], + [ac_found=yes ; break 3],ac_found=no) +diff --git a/configure.ac b/configure.ac +index 97ab9e7a..c9fcede6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -220,7 +220,7 @@ AC_MINIX + + # catch -Werror and similar options when running configure + AC_TRY_COMPILE([#include <stdio.h>], +-[int i; static j; int *p; char *c; ++[int i; int *p; char *c; + switch (*p = p = *c) { case 0: printf("%Q", c, p); } + *c = &i; c = p; + while (1 || (unsigned int)3 >= 0 || ((int)-1) == ((unsigned int)1)); +-- +2.45.0 + diff --git a/meta-oe/recipes-graphics/fvwm/fvwm/0002-Avoid-absolute-symlinks.patch b/meta-oe/recipes-graphics/fvwm/fvwm/0002-Avoid-absolute-symlinks.patch deleted file mode 100644 index 756cc86e87..0000000000 --- a/meta-oe/recipes-graphics/fvwm/fvwm/0002-Avoid-absolute-symlinks.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Sebastian Reichel <sebastian.reichel@collabora.co.uk> -Date: Tue, 29 Auf 2017 16:08:42 +0200 -Subject: [PATCH] Avoid absolute symlinks - -Avoid usage of absolute symlinks, which breaks yocto builds -since pyro. - -Upstream-Status: Pending -Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> - -diff --git a/default-config/Makefile.am b/default-config/Makefile.am -index 5e16d095a137..5404145a742c 100644 ---- a/default-config/Makefile.am -+++ b/default-config/Makefile.am -@@ -17,9 +17,9 @@ EXTRA_DIST = images \ - - install-data-hook: - cp -r $(srcdir)/images $(inst_location) -- ln -sf $(inst_location)/FvwmScript-DateTime $(inst_location)/.. -- ln -sf $(inst_location)/FvwmScript-ConfirmQuit $(inst_location)/.. -- ln -sf $(inst_location)/FvwmScript-ConfirmCopyConfig $(inst_location)/.. -+ ln -sf default-config/FvwmScript-DateTime $(inst_location)/.. -+ ln -sf default-config/FvwmScript-ConfirmQuit $(inst_location)/.. -+ ln -sf default-config/FvwmScript-ConfirmCopyConfig $(inst_location)/.. - - uninstall-hook: - rm -fr $(DESTDIR)/$(configdir) diff --git a/meta-oe/recipes-graphics/fvwm/fvwm/0002-acinclude.m4-Add-missing-unistd.h-to-AM_SAFETY_CHECK.patch b/meta-oe/recipes-graphics/fvwm/fvwm/0002-acinclude.m4-Add-missing-unistd.h-to-AM_SAFETY_CHECK.patch new file mode 100644 index 0000000000..50ecb20c72 --- /dev/null +++ b/meta-oe/recipes-graphics/fvwm/fvwm/0002-acinclude.m4-Add-missing-unistd.h-to-AM_SAFETY_CHECK.patch @@ -0,0 +1,32 @@ +From 51287fb60263530f61b14df5519e10dabe67d2ad Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Thu, 24 Nov 2022 13:07:56 +0100 +Subject: [PATCH 2/3] acinclude.m4: Add missing <unistd.h> to + AM_SAFETY_CHECK_MKSTEMP + +Otherwise, the check fails on a compiler which does not support +implicit function declarations (a language feature removed in 1999). + +Upstream-Status: Submitted [https://github.com/fvwmorg/fvwm/pull/100] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + acinclude.m4 | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/acinclude.m4 b/acinclude.m4 +index b66042f9..4dee2abe 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -1154,6 +1154,9 @@ AC_DEFUN([AM_SAFETY_CHECK_MKSTEMP],[ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> ++#ifdef HAVE_UNISTD_H ++#include <unistd.h> ++#endif + int main(void) + { + char template[128]; +-- +2.45.0 + diff --git a/meta-oe/recipes-graphics/fvwm/fvwm/0003-configure-Further-defang-the-Werror-check.patch b/meta-oe/recipes-graphics/fvwm/fvwm/0003-configure-Further-defang-the-Werror-check.patch new file mode 100644 index 0000000000..e9d780ddc6 --- /dev/null +++ b/meta-oe/recipes-graphics/fvwm/fvwm/0003-configure-Further-defang-the-Werror-check.patch @@ -0,0 +1,35 @@ +From 542c6f25327587d5a6bffb8a45b457ec85dcf8e1 Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Tue, 19 Dec 2023 13:24:50 +0100 +Subject: [PATCH 3/3] configure: Further defang the -Werror check + +Incompatible pointer types are actually errors (in the sense +that they are invalid C). Compilers have merely tolerated them as +warnings for backwards compatibility. This is changing with Clang 16 +and GCC 14, so relax the check a little. + +Upstream-Status: Submitted [https://github.com/fvwmorg/fvwm/pull/100] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c9fcede6..2e9615b2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -220,9 +220,8 @@ AC_MINIX + + # catch -Werror and similar options when running configure + AC_TRY_COMPILE([#include <stdio.h>], +-[int i; int *p; char *c; +- switch (*p = p = *c) { case 0: printf("%Q", c, p); } +- *c = &i; c = p; ++[int unused; int *p; char *c; ++ printf("%Q", c, p); + while (1 || (unsigned int)3 >= 0 || ((int)-1) == ((unsigned int)1)); + ], , AC_MSG_ERROR(" + configure is not able to compile programs with warnings. Please +-- +2.45.0 + diff --git a/meta-oe/recipes-graphics/fvwm/fvwm_2.6.7.bb b/meta-oe/recipes-graphics/fvwm/fvwm_2.7.0.bb index cb851bfd96..df349494aa 100644 --- a/meta-oe/recipes-graphics/fvwm/fvwm_2.6.7.bb +++ b/meta-oe/recipes-graphics/fvwm/fvwm_2.7.0.bb @@ -1,8 +1,8 @@ SUMMARY = "F Virtual Window Manager " HOMEPAGE = "http://www.fvwm.org/" SECTION = "x11/wm" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=363fbcfb59124689af72c914560eaf6e" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=f8204787357db6ea518dcc9b6cf08388" DEPENDS = " \ bison-native \ @@ -31,33 +31,31 @@ DEPENDS = " \ zlib \ " -PV = "2.6.7+git${SRCPV}" - SRC_URI = " \ - git://github.com/fvwmorg/fvwm.git;protocol=https \ + git://github.com/fvwmorg/fvwm.git;protocol=https;branch=master \ file://0001-Fix-compilation-for-disabled-gnome.patch \ - file://0002-Avoid-absolute-symlinks.patch \ + file://0001-configure-Do-not-require-support-for-implicit-ints.patch \ + file://0002-acinclude.m4-Add-missing-unistd.h-to-AM_SAFETY_CHECK.patch \ + file://0003-configure-Further-defang-the-Werror-check.patch \ " -SRCREV = "597a4e296da4f21e71a17facab297e016a3a80a8" +SRCREV = "7baf540e56fb1a3e91752acba872a88543529d46" S = "${WORKDIR}/git" -inherit autotools gettext update-alternatives pkgconfig pythonnative perlnative distro_features_check +inherit autotools gettext update-alternatives pkgconfig python3native perlnative features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" -ALTERNATIVE_${PN} = "x-window-manager" +ALTERNATIVE:${PN} = "x-window-manager" ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/fvwm" ALTERNATIVE_PRIORITY[x-window-manager] = "20" EXTRA_OECONF = " \ --disable-bidi \ --disable-fontconfigtest \ - --disable-freetypetest \ --disable-htmldoc \ --disable-imlibtest \ - --disable-mandoc \ --disable-nls \ --disable-perllib \ --disable-rsvg \ @@ -80,35 +78,49 @@ EXTRA_OECONF = " \ EXTRA_OEMAKE = " \ V=1 \ " +# clang treats them as errors by default now starting with 15.0+ +CFLAGS += "-Wno-error=int-conversion -Wno-error=implicit-int" -do_install_append() { +do_install:append() { install -d -m 0755 ${D}/${sysconfdir}/xdg/fvwm # You can install the config file here install -d -m 0755 ${D}/${datadir}/fvwm touch ${D}/${datadir}/fvwm/ConfigFvwmDefaults + sed -i -e 's:${STAGING_BINDIR_NATIVE}/perl-native/perl:${USRBINPATH}/env perl:g' ${D}${bindir}/fvwm-* + sed -i -e 's:${STAGING_BINDIR_NATIVE}/perl-native/perl:${USRBINPATH}/env perl:g' ${D}${libexecdir}/fvwm/*/Fvwm* + sed -i -e 's:${STAGING_BINDIR_NATIVE}/python3-native/python3:${USRBINPATH}/env python3:g' ${D}${bindir}/fvwm-menu-desktop } # the only needed packages (note: locale packages are automatically generated # as well) PACKAGES = " \ ${PN} \ + ${PN}-extra \ + ${PN}-doc \ ${PN}-dbg \ " # minimal set of binaries -FILES_${PN} = " \ +FILES:${PN} = " \ ${bindir}/fvwm \ ${bindir}/fvwm-root \ ${datadir}/fvwm/ConfigFvwmDefaults \ " -RDEPENDS_${PN} = " \ +FILES:${PN}-extra = " \ + ${bindir} \ + ${libexecdir} \ + ${sysconfdir}/xdg/fvwm \ +" +FILES:${PN}-doc = " \ + ${mandir} \ + ${datadir}/fvwm \ +" +RDEPENDS:${PN} = " \ xuser-account \ " - -# by default a lot of stuff is installed and it's not easy to control what to -# install, so install everything, but skip the check -INSANE_SKIP_${PN} = " \ - installed-vs-shipped \ +RDEPENDS:${PN}-extra += "\ + perl \ + python3-core \ " diff --git a/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch b/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch deleted file mode 100644 index d145b625f6..0000000000 --- a/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: gegl-0.2.0/configure.ac -=================================================================== ---- gegl-0.2.0.orig/configure.ac 2012-04-02 21:56:49.000000000 +0000 -+++ gegl-0.2.0/configure.ac 2014-07-17 21:34:15.312546602 +0000 -@@ -765,15 +765,7 @@ - - have_sdl="no" - if test "x$with_sdl" != "xno"; then -- AC_PATH_PROG(SDL_CONFIG, sdl-config, no) -- if test "$SDL_CONFIG" = "no"; then -- have_sdl="no (SDL library not found)" -- AC_MSG_RESULT([*** Check for SDL library failed.]) -- else -- have_sdl="yes" -- SDL_CFLAGS=`$SDL_CONFIG --cflags` -- SDL_LIBS=`$SDL_CONFIG --libs` -- fi -+ PKG_CHECK_MODULES([SDL], [sdl], [have_sdl="yes"], [have_sdl="no (SDL library not found)"]) - fi - - AM_CONDITIONAL(HAVE_SDL, test "$have_sdl" = "yes") diff --git a/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb b/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb deleted file mode 100644 index 0053c0c689..0000000000 --- a/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "GEGL (Generic Graphics Library) is a graph based image processing framework" -LICENSE = "LGPL-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -DEPENDS = "babl librsvg glib-2.0 gtk+ pango cairo expat zlib libpng jpeg virtual/libsdl json-glib intltool-native" - -EXTRA_OECONF = "--disable-docs" - -inherit distro_features_check gnomebase vala gobject-introspection - -REQUIRED_DISTRO_FEATURES = "x11" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[jasper] = "--with-jasper,--without-jasper,jasper" -PACKAGECONFIG[avformat] = "--with-libavformat,--without-libavformat,libav" -PACKAGECONFIG[lcms] = "--with-lcms,--without-lcms,lcms" -PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff" -PACKAGECONFIG[webp] = "--with-webp,--without-webp,webp" - -SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.3/${BP}.tar.bz2 \ - file://pkgconfig.patch " -SRC_URI[md5sum] = "6e5c6f229261478dc436a38c84405b2a" -SRC_URI[sha256sum] = "d7858ef26ede136d14e3de188a9e9c0de7707061a9fb96d7d615fab4958491fb" - -LDFLAGS += "-lm" - -# There are a couple of non-symlink .so files installed into libdir, which need to go into main package -FILES_${PN}_append = " ${libdir}/gegl-0.3/*.so ${libdir}/gegl-0.3/*.json ${libdir}/libgegl-npd-0.3.so ${libdir}/libgegl-sc-0.3.so" -FILES_${PN}-dev_append = " ${libdir}/gegl-0.3/*.la ${libdir}/libgegl-0.3.so" -FILES_${PN}-dev_remove = "${libdir}/lib*.so" - -# Fails to build with thumb-1 (qemuarm) -# gegl-0.2.0/operations/common/matting-global.c: In function 'matting_process': -# gegl-0.2.0/operations/common/matting-global.c:463:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275 -ARM_INSTRUCTION_SET = "arm" diff --git a/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch b/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch deleted file mode 100644 index fecd0121c3..0000000000 --- a/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 72ad76841d87e857428693d812a961935284ac62 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> -Date: Thu, 12 Feb 2015 15:57:47 +0100 -Subject: [PATCH] configure-ac: do not check for freetype-config -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -freetype-config is not allowed in our environment - see also binconfig-disabled - -Upstream-Status: inappropriate [OE specific] - -Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> ---- - configure.ac | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 26812b6..abec714 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -647,13 +647,6 @@ if test "x$fontconfig_ok" = xno; then - fi - - --AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) --if test "x$FREETYPE_CONFIG" != "xno" ; then -- AC_MSG_CHECKING([for freetype libraries]) -- FREETYPE_LIBS=`$FREETYPE_CONFIG --libs` -- AC_MSG_RESULT($FREETYPE_LIBS) --fi --AC_SUBST(FREETYPE_LIBS) - - - ########################################## --- -1.9.3 - diff --git a/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch b/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch deleted file mode 100644 index 7da78e2052..0000000000 --- a/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch +++ /dev/null @@ -1,34 +0,0 @@ -From e1c8f4b8323e3965271a93529eab5774c1a7083c Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 29 Jun 2017 10:32:14 -0700 -Subject: [PATCH 3/3] Fix use of gegl API - -newer version of gegl does not define GEGL_IS_PARAM_SPEC_MULTILINE - -| core/libappcore.a(gimpparamspecs-duplicate.o): In function `gimp_param_spec_duplicate': -| /usr/src/debug/gimp/2.8.22-r0/gimp-2.8.22/app/core/../../../../../../../../../workspace/sources/gimp/app/core/gimpparamspecs-duplicate.c:70: undefined reference to `GEGL_IS_PARAM_SPEC_MULTILINE' -| collect2: error: ld returned 1 exit status - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - app/core/gimpparamspecs-duplicate.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/app/core/gimpparamspecs-duplicate.c b/app/core/gimpparamspecs-duplicate.c -index c0b7426..2efaf23 100644 ---- a/app/core/gimpparamspecs-duplicate.c -+++ b/app/core/gimpparamspecs-duplicate.c -@@ -67,7 +67,7 @@ gimp_param_spec_duplicate (GParamSpec *pspec) - spec->default_value, - pspec->flags); - -- if (GEGL_IS_PARAM_SPEC_MULTILINE (pspec)) -+ if (gegl_param_spec_get_property_key(pspec, "multiline")) - { - g_param_spec_set_qdata (new, multiline_quark, - GINT_TO_POINTER (TRUE)); --- -2.13.2 - diff --git a/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch b/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch deleted file mode 100644 index b71bf329e9..0000000000 --- a/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch +++ /dev/null @@ -1,53 +0,0 @@ -Bump acceptable versions of babl and gegl. - -Patch is taken from debian: -https://packages.debian.org/stretch/gimp - -Upstream-Status: Inappropriate [OE specific] -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> -diff --git a/app/sanity.c b/app/sanity.c -index febddfb..85fea55 100644 ---- a/app/sanity.c -+++ b/app/sanity.c -@@ -351,7 +351,7 @@ sanity_check_babl (void) - - #define BABL_REQUIRED_MAJOR 0 - #define BABL_REQUIRED_MINOR 1 --#define BABL_REQUIRED_MICRO 10 -+#define BABL_REQUIRED_MICRO 12 - - babl_get_version (&babl_major_version, - &babl_minor_version, -@@ -388,7 +388,7 @@ sanity_check_gegl (void) - gint gegl_micro_version; - - #define GEGL_REQUIRED_MAJOR 0 --#define GEGL_REQUIRED_MINOR 2 -+#define GEGL_REQUIRED_MINOR 3 - #define GEGL_REQUIRED_MICRO 0 - - gegl_get_version (&gegl_major_version, -diff --git a/configure.ac b/configure.ac -index 26812b6..4252fe9 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -40,8 +40,8 @@ m4_define([gimp_stable], - m4_define([gimp_full_name], [GNU Image Manipulation Program]) - - # required versions of other packages --m4_define([babl_required_version], [0.1.10]) --m4_define([gegl_required_version], [0.2.0]) -+m4_define([babl_required_version], [0.1.12]) -+m4_define([gegl_required_version], [0.3.0]) - m4_define([glib_required_version], [2.30.2]) - m4_define([atk_required_version], [2.2.0]) - m4_define([gtk_required_version], [2.24.10]) -@@ -519,7 +519,7 @@ AC_SUBST(ISO_CODES_LOCALEDIR) - ############################### - - PKG_CHECK_MODULES(BABL, babl >= babl_required_version) --PKG_CHECK_MODULES(GEGL, gegl-0.2 >= gegl_required_version) -+PKG_CHECK_MODULES(GEGL, gegl-0.3 >= gegl_required_version) - PKG_CHECK_MODULES(ATK, atk >= atk_required_version) - - AM_PATH_GLIB_2_0(glib_required_version, :, diff --git a/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb b/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb deleted file mode 100644 index 943986e77e..0000000000 --- a/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "The GIMP is the GNU Image Manipulation Program" -HOMEPAGE = "http://www.gimp.org" -SECTION = "x11/graphics" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = " \ - gdk-pixbuf-native \ - intltool-native \ - libxslt-native \ - gtk+ \ - babl \ - gegl \ - jpeg \ - libpng \ - libexif \ - tiff \ - lcms \ - poppler \ - jasper \ - bzip2 \ - libgudev \ - libmng \ -" -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)}" - -inherit distro_features_check gnome gtk-doc - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "http://ftp.gimp.org/pub/gimp/v2.8/gimp-${PV}.tar.bz2 \ - file://0001-configure-ac-do-not-check-for-freetype-config.patch \ - file://bump_Babl-GEGL_versions.patch \ - file://0003-Fix-use-of-gegl-API.patch \ - " -SRC_URI[md5sum] = "7e4fd7a53b1d3c32dff642ab1a94b44d" -SRC_URI[sha256sum] = "9187a35cc52b110d78124d7b27b68a68ade14a794c2721314bac6134d2a5638a" - -EXTRA_OECONF = "--disable-python \ - --without-webkit \ - --without-wmf" - -do_configure_append() { - find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g - find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g -} - -CFLAGS += "-fPIC" - -FILES_${PN}-dbg += "${libdir}/gimp/2.0/*/.debug" -FILES_${PN} += "${datadir}/appdata" diff --git a/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch b/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch deleted file mode 100644 index d69c5af3af..0000000000 --- a/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch +++ /dev/null @@ -1,860 +0,0 @@ -From 99a9676a0193f6291d7202d7af72e24580abe565 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> -Date: Fri, 16 Mar 2018 13:55:29 +0100 -Subject: [PATCH 1/2] Make GLM_ENABLE_EXPERIMENTAL a configurable option -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It seems that erroring out if GLM_ENABLE_EXPERIMENTAL is not set turns into -packagers nightmare: There are packages around expecting glx headers. E.g -libgltf [1] fails during configure checking for usable headers AND during -compile. Paticularly fixing configure for those packages is time-consuming: -The only way (correct me if I am wrong) is creating a patch adding - -AC_DEFINE([GLM_ENABLE_EXPERIMENTAL], [1], [glm needs this for gtx headers]) - -By adding a configure option 'GLM_ENABLE_EXPERIMENTAL', the decision to use -glm/glx is done at one (and the right) place. - -Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> - -[1] https://gerrit.libreoffice.org/gitweb?p=libgltf.git - -Uptream-Status: Submitted [2] - -[2] https://github.com/g-truc/glm/pull/741 ---- - CMakeLists.txt | 6 ++++++ - glm/CMakeLists.txt | 2 ++ - glm/experimental.hpp.in | 1 + - glm/ext.hpp | 1 + - glm/gtx/associated_min_max.hpp | 1 + - glm/gtx/bit.hpp | 1 + - glm/gtx/closest_point.hpp | 1 + - glm/gtx/color_space.hpp | 1 + - glm/gtx/color_space_YCoCg.hpp | 1 + - glm/gtx/common.hpp | 1 + - glm/gtx/compatibility.hpp | 1 + - glm/gtx/component_wise.hpp | 1 + - glm/gtx/dual_quaternion.hpp | 1 + - glm/gtx/euler_angles.hpp | 1 + - glm/gtx/extend.hpp | 1 + - glm/gtx/extended_min_max.hpp | 1 + - glm/gtx/fast_exponential.hpp | 1 + - glm/gtx/fast_square_root.hpp | 1 + - glm/gtx/fast_trigonometry.hpp | 1 + - glm/gtx/gradient_paint.hpp | 1 + - glm/gtx/handed_coordinate_space.hpp | 1 + - glm/gtx/hash.hpp | 1 + - glm/gtx/integer.hpp | 1 + - glm/gtx/intersect.hpp | 1 + - glm/gtx/io.hpp | 1 + - glm/gtx/log_base.hpp | 1 + - glm/gtx/matrix_cross_product.hpp | 1 + - glm/gtx/matrix_decompose.hpp | 1 + - glm/gtx/matrix_factorisation.hpp | 1 + - glm/gtx/matrix_interpolation.hpp | 1 + - glm/gtx/matrix_major_storage.hpp | 1 + - glm/gtx/matrix_operation.hpp | 1 + - glm/gtx/matrix_query.hpp | 1 + - glm/gtx/matrix_transform_2d.hpp | 1 + - glm/gtx/mixed_product.hpp | 1 + - glm/gtx/norm.hpp | 1 + - glm/gtx/normal.hpp | 1 + - glm/gtx/normalize_dot.hpp | 1 + - glm/gtx/number_precision.hpp | 1 + - glm/gtx/optimum_pow.hpp | 1 + - glm/gtx/orthonormalize.hpp | 1 + - glm/gtx/perpendicular.hpp | 1 + - glm/gtx/polar_coordinates.hpp | 1 + - glm/gtx/projection.hpp | 1 + - glm/gtx/quaternion.hpp | 1 + - glm/gtx/range.hpp | 1 + - glm/gtx/raw_data.hpp | 1 + - glm/gtx/rotate_normalized_axis.hpp | 1 + - glm/gtx/rotate_vector.hpp | 1 + - glm/gtx/scalar_multiplication.hpp | 1 + - glm/gtx/scalar_relational.hpp | 1 + - glm/gtx/spline.hpp | 1 + - glm/gtx/std_based_type.hpp | 1 + - glm/gtx/string_cast.hpp | 1 + - glm/gtx/texture.hpp | 1 + - glm/gtx/transform.hpp | 1 + - glm/gtx/transform2.hpp | 1 + - glm/gtx/type_aligned.hpp | 1 + - glm/gtx/type_trait.hpp | 1 + - glm/gtx/vec_swizzle.hpp | 1 + - glm/gtx/vector_angle.hpp | 1 + - glm/gtx/vector_query.hpp | 1 + - glm/gtx/wrap.hpp | 1 + - 63 files changed, 69 insertions(+) - create mode 100644 glm/experimental.hpp.in - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e5159b0f..bd4dd654 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -82,6 +82,11 @@ option(GLM_TEST_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF) - option(GLM_TEST_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF) - option(GLM_TEST_FORCE_PURE "Force 'pure' instructions" OFF) - -+option(GLM_ENABLE_EXPERIMENTAL "Enable experimental GLM_GTX" OFF) -+configure_file(glm/experimental.hpp.in experimental.hpp @ONLY) -+include_directories(${CMAKE_BINARY_DIR}/glm) -+include_directories(${CMAKE_BINARY_DIR}) -+ - if(GLM_TEST_FORCE_PURE) - add_definitions(-DGLM_FORCE_PURE) - -@@ -167,6 +172,7 @@ option(GLM_INSTALL_ENABLE "GLM install" ON) - set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm") - if (GLM_INSTALL_ENABLE) - install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/experimental.hpp" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glm) - endif() - - write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake" VERSION ${GLM_VERSION} COMPATIBILITY AnyNewerVersion) -diff --git a/glm/CMakeLists.txt b/glm/CMakeLists.txt -index df9c9ee5..dc5db4bc 100644 ---- a/glm/CMakeLists.txt -+++ b/glm/CMakeLists.txt -@@ -43,6 +43,8 @@ source_group("SIMD Files" FILES ${SIMD_INLINE}) - source_group("SIMD Files" FILES ${SIMD_HEADER}) - - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) -+# make out-of tree builds find experimental.hpp -+include_directories(${CMAKE_BINARY_DIR}/glm) - - if(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE) - if(GLM_STATIC_LIBRARY_ENABLE) -diff --git a/glm/experimental.hpp.in b/glm/experimental.hpp.in -new file mode 100644 -index 00000000..bfab5138 ---- /dev/null -+++ b/glm/experimental.hpp.in -@@ -0,0 +1 @@ -+#cmakedefine GLM_ENABLE_EXPERIMENTAL -diff --git a/glm/ext.hpp b/glm/ext.hpp -index d085bfd5..a2948447 100644 ---- a/glm/ext.hpp -+++ b/glm/ext.hpp -@@ -39,6 +39,7 @@ - # include "./gtc/type_aligned.hpp" - #endif - -+#include "experimental.hpp" - #ifdef GLM_ENABLE_EXPERIMENTAL - #include "./gtx/associated_min_max.hpp" - #include "./gtx/bit.hpp" -diff --git a/glm/gtx/associated_min_max.hpp b/glm/gtx/associated_min_max.hpp -index 0c9935f3..d00c2bc4 100644 ---- a/glm/gtx/associated_min_max.hpp -+++ b/glm/gtx/associated_min_max.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GTX_associated_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/bit.hpp b/glm/gtx/bit.hpp -index 1447fa00..31957083 100644 ---- a/glm/gtx/bit.hpp -+++ b/glm/gtx/bit.hpp -@@ -15,6 +15,7 @@ - // Dependencies - #include "../gtc/bitfield.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_bit is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/closest_point.hpp b/glm/gtx/closest_point.hpp -index 6859bb96..ebd9fe5a 100644 ---- a/glm/gtx/closest_point.hpp -+++ b/glm/gtx/closest_point.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/color_space.hpp b/glm/gtx/color_space.hpp -index d1e655c3..51416819 100644 ---- a/glm/gtx/color_space.hpp -+++ b/glm/gtx/color_space.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_color_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/color_space_YCoCg.hpp b/glm/gtx/color_space_YCoCg.hpp -index e82cbd8b..7ae71041 100644 ---- a/glm/gtx/color_space_YCoCg.hpp -+++ b/glm/gtx/color_space_YCoCg.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_color_space_YCoCg is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/common.hpp b/glm/gtx/common.hpp -index 8081bff7..57a68a8d 100644 ---- a/glm/gtx/common.hpp -+++ b/glm/gtx/common.hpp -@@ -18,6 +18,7 @@ - #include "../vec4.hpp" - #include "../gtc/vec1.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_common is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/compatibility.hpp b/glm/gtx/compatibility.hpp -index e5b60399..9876669c 100644 ---- a/glm/gtx/compatibility.hpp -+++ b/glm/gtx/compatibility.hpp -@@ -16,6 +16,7 @@ - #include "../glm.hpp" - #include "../gtc/quaternion.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_compatibility is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/component_wise.hpp b/glm/gtx/component_wise.hpp -index 39bab5d5..4fe0e4e2 100644 ---- a/glm/gtx/component_wise.hpp -+++ b/glm/gtx/component_wise.hpp -@@ -18,6 +18,7 @@ - #include "../detail/setup.hpp" - #include "../detail/qualifier.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_component_wise is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp -index c4343e9d..d59fb459 100644 ---- a/glm/gtx/dual_quaternion.hpp -+++ b/glm/gtx/dual_quaternion.hpp -@@ -20,6 +20,7 @@ - #include "../gtc/constants.hpp" - #include "../gtc/quaternion.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_dual_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/euler_angles.hpp b/glm/gtx/euler_angles.hpp -index e66e9281..ad5988c1 100644 ---- a/glm/gtx/euler_angles.hpp -+++ b/glm/gtx/euler_angles.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_euler_angles is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/extend.hpp b/glm/gtx/extend.hpp -index eda4e470..cde6db63 100644 ---- a/glm/gtx/extend.hpp -+++ b/glm/gtx/extend.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/extended_min_max.hpp b/glm/gtx/extended_min_max.hpp -index 3e767b0c..0bcffcc6 100644 ---- a/glm/gtx/extended_min_max.hpp -+++ b/glm/gtx/extended_min_max.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_extented_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/fast_exponential.hpp b/glm/gtx/fast_exponential.hpp -index 2d4918e7..e6d11f0a 100644 ---- a/glm/gtx/fast_exponential.hpp -+++ b/glm/gtx/fast_exponential.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_fast_exponential is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/fast_square_root.hpp b/glm/gtx/fast_square_root.hpp -index 1e1ec3cf..f758aeef 100644 ---- a/glm/gtx/fast_square_root.hpp -+++ b/glm/gtx/fast_square_root.hpp -@@ -19,6 +19,7 @@ - #include "../exponential.hpp" - #include "../geometric.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_fast_square_root is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/fast_trigonometry.hpp b/glm/gtx/fast_trigonometry.hpp -index 739065fb..f1332958 100644 ---- a/glm/gtx/fast_trigonometry.hpp -+++ b/glm/gtx/fast_trigonometry.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../gtc/constants.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_fast_trigonometry is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/gradient_paint.hpp b/glm/gtx/gradient_paint.hpp -index 2713cec0..d4703991 100644 ---- a/glm/gtx/gradient_paint.hpp -+++ b/glm/gtx/gradient_paint.hpp -@@ -17,6 +17,7 @@ - #include "../glm.hpp" - #include "../gtx/optimum_pow.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_gradient_paint is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/handed_coordinate_space.hpp b/glm/gtx/handed_coordinate_space.hpp -index 1d0d4104..3a52ddcf 100644 ---- a/glm/gtx/handed_coordinate_space.hpp -+++ b/glm/gtx/handed_coordinate_space.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_handed_coordinate_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/hash.hpp b/glm/gtx/hash.hpp -index fe8a3efd..92bfc9b2 100644 ---- a/glm/gtx/hash.hpp -+++ b/glm/gtx/hash.hpp -@@ -12,6 +12,7 @@ - - #pragma once - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_hash is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/integer.hpp b/glm/gtx/integer.hpp -index 96637a13..5d1a16c6 100644 ---- a/glm/gtx/integer.hpp -+++ b/glm/gtx/integer.hpp -@@ -16,6 +16,7 @@ - #include "../glm.hpp" - #include "../gtc/integer.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_integer is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/intersect.hpp b/glm/gtx/intersect.hpp -index 61e2226a..4895ba93 100644 ---- a/glm/gtx/intersect.hpp -+++ b/glm/gtx/intersect.hpp -@@ -21,6 +21,7 @@ - #include "../gtx/closest_point.hpp" - #include "../gtx/vector_query.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/io.hpp b/glm/gtx/io.hpp -index 49a1ec11..ae39cd60 100644 ---- a/glm/gtx/io.hpp -+++ b/glm/gtx/io.hpp -@@ -23,6 +23,7 @@ - #include "../glm.hpp" - #include "../gtx/quaternion.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_io is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/log_base.hpp b/glm/gtx/log_base.hpp -index e873e356..45b8d53c 100644 ---- a/glm/gtx/log_base.hpp -+++ b/glm/gtx/log_base.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_log_base is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_cross_product.hpp b/glm/gtx/matrix_cross_product.hpp -index 967743b8..52d6c173 100644 ---- a/glm/gtx/matrix_cross_product.hpp -+++ b/glm/gtx/matrix_cross_product.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_cross_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_decompose.hpp b/glm/gtx/matrix_decompose.hpp -index b7ec0e83..6793fee2 100644 ---- a/glm/gtx/matrix_decompose.hpp -+++ b/glm/gtx/matrix_decompose.hpp -@@ -20,6 +20,7 @@ - #include "../gtc/quaternion.hpp" - #include "../gtc/matrix_transform.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_decompose is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_factorisation.hpp b/glm/gtx/matrix_factorisation.hpp -index e30a7746..79c293be 100644 ---- a/glm/gtx/matrix_factorisation.hpp -+++ b/glm/gtx/matrix_factorisation.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_factorisation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_interpolation.hpp b/glm/gtx/matrix_interpolation.hpp -index 89c4596c..799983bb 100644 ---- a/glm/gtx/matrix_interpolation.hpp -+++ b/glm/gtx/matrix_interpolation.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_interpolation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_major_storage.hpp b/glm/gtx/matrix_major_storage.hpp -index 7f264a59..e68467cd 100644 ---- a/glm/gtx/matrix_major_storage.hpp -+++ b/glm/gtx/matrix_major_storage.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_major_storage is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_operation.hpp b/glm/gtx/matrix_operation.hpp -index bce938bb..1e85bb5e 100644 ---- a/glm/gtx/matrix_operation.hpp -+++ b/glm/gtx/matrix_operation.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_operation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_query.hpp b/glm/gtx/matrix_query.hpp -index 5df5f52f..eec1eec0 100644 ---- a/glm/gtx/matrix_query.hpp -+++ b/glm/gtx/matrix_query.hpp -@@ -18,6 +18,7 @@ - #include "../gtx/vector_query.hpp" - #include <limits> - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_transform_2d.hpp b/glm/gtx/matrix_transform_2d.hpp -index 239ab9f4..3ca8d2f2 100644 ---- a/glm/gtx/matrix_transform_2d.hpp -+++ b/glm/gtx/matrix_transform_2d.hpp -@@ -17,6 +17,7 @@ - #include "../mat3x3.hpp" - #include "../vec2.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_transform_2d is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/mixed_product.hpp b/glm/gtx/mixed_product.hpp -index 58562aab..5c7460d5 100644 ---- a/glm/gtx/mixed_product.hpp -+++ b/glm/gtx/mixed_product.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_mixed_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/norm.hpp b/glm/gtx/norm.hpp -index 46474e07..3cf2c3ea 100644 ---- a/glm/gtx/norm.hpp -+++ b/glm/gtx/norm.hpp -@@ -17,6 +17,7 @@ - #include "../geometric.hpp" - #include "../gtx/quaternion.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_norm is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/normal.hpp b/glm/gtx/normal.hpp -index 15cec9c2..7bb4c096 100644 ---- a/glm/gtx/normal.hpp -+++ b/glm/gtx/normal.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_normal is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/normalize_dot.hpp b/glm/gtx/normalize_dot.hpp -index 86048e70..c6604da4 100644 ---- a/glm/gtx/normalize_dot.hpp -+++ b/glm/gtx/normalize_dot.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../gtx/fast_square_root.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_normalize_dot is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/number_precision.hpp b/glm/gtx/number_precision.hpp -index 3732a56c..b48845f7 100644 ---- a/glm/gtx/number_precision.hpp -+++ b/glm/gtx/number_precision.hpp -@@ -18,6 +18,7 @@ - #include "../glm.hpp" - #include "../gtc/type_precision.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_number_precision is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/optimum_pow.hpp b/glm/gtx/optimum_pow.hpp -index eb09f1c3..94a6bbb2 100644 ---- a/glm/gtx/optimum_pow.hpp -+++ b/glm/gtx/optimum_pow.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_optimum_pow is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/orthonormalize.hpp b/glm/gtx/orthonormalize.hpp -index 2a684ee4..4ff47e53 100644 ---- a/glm/gtx/orthonormalize.hpp -+++ b/glm/gtx/orthonormalize.hpp -@@ -18,6 +18,7 @@ - #include "../mat3x3.hpp" - #include "../geometric.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_orthonormalize is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/perpendicular.hpp b/glm/gtx/perpendicular.hpp -index 35601ac7..17251ebe 100644 ---- a/glm/gtx/perpendicular.hpp -+++ b/glm/gtx/perpendicular.hpp -@@ -17,6 +17,7 @@ - #include "../glm.hpp" - #include "../gtx/projection.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_perpendicular is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/polar_coordinates.hpp b/glm/gtx/polar_coordinates.hpp -index b8421db4..5125215d 100644 ---- a/glm/gtx/polar_coordinates.hpp -+++ b/glm/gtx/polar_coordinates.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_polar_coordinates is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/projection.hpp b/glm/gtx/projection.hpp -index 9a24abf9..4d5bf76f 100644 ---- a/glm/gtx/projection.hpp -+++ b/glm/gtx/projection.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../geometric.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_projection is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/quaternion.hpp b/glm/gtx/quaternion.hpp -index c3d99a5c..808ba0fd 100644 ---- a/glm/gtx/quaternion.hpp -+++ b/glm/gtx/quaternion.hpp -@@ -19,6 +19,7 @@ - #include "../gtc/quaternion.hpp" - #include "../gtx/norm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/range.hpp b/glm/gtx/range.hpp -index e0ef46af..03c797c3 100644 ---- a/glm/gtx/range.hpp -+++ b/glm/gtx/range.hpp -@@ -15,6 +15,7 @@ - // Dependencies - #include "../detail/setup.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_range is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/raw_data.hpp b/glm/gtx/raw_data.hpp -index fb34c8cb..0084fec6 100644 ---- a/glm/gtx/raw_data.hpp -+++ b/glm/gtx/raw_data.hpp -@@ -16,6 +16,7 @@ - #include "../detail/setup.hpp" - #include "../detail/type_int.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_raw_data is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/rotate_normalized_axis.hpp b/glm/gtx/rotate_normalized_axis.hpp -index eee90d6e..82612928 100644 ---- a/glm/gtx/rotate_normalized_axis.hpp -+++ b/glm/gtx/rotate_normalized_axis.hpp -@@ -19,6 +19,7 @@ - #include "../gtc/epsilon.hpp" - #include "../gtc/quaternion.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_rotate_normalized_axis is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/rotate_vector.hpp b/glm/gtx/rotate_vector.hpp -index c8ace89e..e954b041 100644 ---- a/glm/gtx/rotate_vector.hpp -+++ b/glm/gtx/rotate_vector.hpp -@@ -17,6 +17,7 @@ - #include "../glm.hpp" - #include "../gtx/transform.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_rotate_vector is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/scalar_multiplication.hpp b/glm/gtx/scalar_multiplication.hpp -index b73edf67..22baa52a 100644 ---- a/glm/gtx/scalar_multiplication.hpp -+++ b/glm/gtx/scalar_multiplication.hpp -@@ -16,6 +16,7 @@ - - #include "../detail/setup.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_scalar_multiplication is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/scalar_relational.hpp b/glm/gtx/scalar_relational.hpp -index 7fc8c1cc..f21f3b2b 100644 ---- a/glm/gtx/scalar_relational.hpp -+++ b/glm/gtx/scalar_relational.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/spline.hpp b/glm/gtx/spline.hpp -index f96d7e07..76359cfd 100644 ---- a/glm/gtx/spline.hpp -+++ b/glm/gtx/spline.hpp -@@ -16,6 +16,7 @@ - #include "../glm.hpp" - #include "../gtx/optimum_pow.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_spline is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/std_based_type.hpp b/glm/gtx/std_based_type.hpp -index 55a2f074..92532b9e 100644 ---- a/glm/gtx/std_based_type.hpp -+++ b/glm/gtx/std_based_type.hpp -@@ -17,6 +17,7 @@ - #include "../glm.hpp" - #include <cstdlib> - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_std_based_type is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/string_cast.hpp b/glm/gtx/string_cast.hpp -index 4b4e280f..dfcd5085 100644 ---- a/glm/gtx/string_cast.hpp -+++ b/glm/gtx/string_cast.hpp -@@ -24,6 +24,7 @@ - #include <string> - #include <cmath> - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_string_cast is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/texture.hpp b/glm/gtx/texture.hpp -index 312bf398..7af185f6 100644 ---- a/glm/gtx/texture.hpp -+++ b/glm/gtx/texture.hpp -@@ -17,6 +17,7 @@ - #include "../gtc/integer.hpp" - #include "../gtx/component_wise.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_texture is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/transform.hpp b/glm/gtx/transform.hpp -index d23b99ce..5a5d9619 100644 ---- a/glm/gtx/transform.hpp -+++ b/glm/gtx/transform.hpp -@@ -19,6 +19,7 @@ - #include "../glm.hpp" - #include "../gtc/matrix_transform.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/transform2.hpp b/glm/gtx/transform2.hpp -index 85f5bea4..5d7c83fc 100644 ---- a/glm/gtx/transform2.hpp -+++ b/glm/gtx/transform2.hpp -@@ -17,6 +17,7 @@ - #include "../glm.hpp" - #include "../gtx/transform.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_transform2 is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/type_aligned.hpp b/glm/gtx/type_aligned.hpp -index 6ff9f276..6ad92fad 100644 ---- a/glm/gtx/type_aligned.hpp -+++ b/glm/gtx/type_aligned.hpp -@@ -18,6 +18,7 @@ - // Dependency: - #include "../gtc/type_precision.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_type_aligned is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/type_trait.hpp b/glm/gtx/type_trait.hpp -index 637bbd19..65519cab 100644 ---- a/glm/gtx/type_trait.hpp -+++ b/glm/gtx/type_trait.hpp -@@ -12,6 +12,7 @@ - - #pragma once - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_type_trait is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/vec_swizzle.hpp b/glm/gtx/vec_swizzle.hpp -index daebac38..13d523dc 100644 ---- a/glm/gtx/vec_swizzle.hpp -+++ b/glm/gtx/vec_swizzle.hpp -@@ -14,6 +14,7 @@ - - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_vec_swizzle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/vector_angle.hpp b/glm/gtx/vector_angle.hpp -index 401a47eb..98c9d110 100644 ---- a/glm/gtx/vector_angle.hpp -+++ b/glm/gtx/vector_angle.hpp -@@ -20,6 +20,7 @@ - #include "../gtx/quaternion.hpp" - #include "../gtx/rotate_vector.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_vector_angle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/vector_query.hpp b/glm/gtx/vector_query.hpp -index 6560eaa5..5ab1ffda 100644 ---- a/glm/gtx/vector_query.hpp -+++ b/glm/gtx/vector_query.hpp -@@ -17,6 +17,7 @@ - #include <cfloat> - #include <limits> - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_vector_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/wrap.hpp b/glm/gtx/wrap.hpp -index 2c4b55df..5bf26a33 100644 ---- a/glm/gtx/wrap.hpp -+++ b/glm/gtx/wrap.hpp -@@ -16,6 +16,7 @@ - #include "../glm.hpp" - #include "../gtc/vec1.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_wrap is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif --- -2.14.3 - diff --git a/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch b/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch deleted file mode 100644 index 1be3318cc1..0000000000 --- a/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7fdd36d7496238e03e43fcc32839f75588116c5d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> -Date: Fri, 16 Mar 2018 15:44:48 +0100 -Subject: [PATCH 2/2] glm: install headers only -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Plausibility check in root source path - -$ find glm -type f ! -name '*.hpp' ! -name '*.h' ! -name '*.inl' -glm/detail/glm.cpp -glm/detail/dummy.cpp -glm/experimental.hpp.in -glm/CMakeLists.txt - -Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> - -Uptream-Status: Submitted [1] - -[1] https://github.com/g-truc/glm/pull/741 ---- - CMakeLists.txt | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index bd4dd654..113dd735 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -171,7 +171,12 @@ option(GLM_INSTALL_ENABLE "GLM install" ON) - - set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm") - if (GLM_INSTALL_ENABLE) -- install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -+ install(DIRECTORY glm -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} -+ FILES_MATCHING -+ PATTERN "*.h" -+ PATTERN "*.hpp" -+ PATTERN "*.inl") - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/experimental.hpp" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glm) - endif() - --- -2.14.3 - diff --git a/meta-oe/recipes-graphics/glm/glm/0001-Do-not-use-Werror-with-clang.patch b/meta-oe/recipes-graphics/glm/glm/0001-Do-not-use-Werror-with-clang.patch new file mode 100644 index 0000000000..dee2749898 --- /dev/null +++ b/meta-oe/recipes-graphics/glm/glm/0001-Do-not-use-Werror-with-clang.patch @@ -0,0 +1,32 @@ +From ee405855bca7d6399ff1a1aef952010056c84ff6 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 1 Mar 2023 21:08:09 -0800 +Subject: [PATCH] Do not use -Werror with clang + +Too many warnings to handle for a distro build + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + test/CMakeLists.txt | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index e7f85f19..0b6fd980 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -197,10 +197,6 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + message("GLM: Clang - ${CMAKE_CXX_COMPILER_ID} compiler") + endif() + +- add_compile_options(-Werror -Weverything) +- add_compile_options(-Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-c++11-long-long -Wno-padded -Wno-gnu-anonymous-struct -Wno-nested-anon-types) +- add_compile_options(-Wno-undefined-reinterpret-cast -Wno-sign-conversion -Wno-unused-variable -Wno-missing-prototypes -Wno-unreachable-code -Wno-missing-variable-declarations -Wno-sign-compare -Wno-global-constructors -Wno-unused-macros -Wno-format-nonliteral) +- + elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU") + if(NOT GLM_QUIET) + message("GLM: GCC - ${CMAKE_CXX_COMPILER_ID} compiler") +-- +2.39.2 + diff --git a/meta-oe/recipes-graphics/glm/glm/0001-Silence-clang-warnings.patch b/meta-oe/recipes-graphics/glm/glm/0001-Silence-clang-warnings.patch new file mode 100644 index 0000000000..10692dd423 --- /dev/null +++ b/meta-oe/recipes-graphics/glm/glm/0001-Silence-clang-warnings.patch @@ -0,0 +1,145 @@ +From bd9b5060bc3b9581090d44f15b4e236566ea86a6 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 4 Jun 2021 12:57:57 -0700 +Subject: [PATCH] Silence clang warnings + +Fixes +glm/gtc/random.inl:25:17: error: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Werror,-Wimplicit-int-conversion] +| std::rand() % std::numeric_limits<uint8>::max()); +| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +glm/gtc/../ext/quaternion_common.inl:76:87: error: unused parameter 'k' [-Werror,-Wunused-parameter] + GLM_FUNC_QUALIFIER qua<T, Q> slerp(qua<T, Q> const& x, qua<T, Q> const& y, T a, S k) + ^ + +and + +test/gtx/gtx_fast_trigonometry.cpp:135:9: error: variable 'result' set but not used [-Werror,-Wunused-but-set-variable] +| float result = 0.f; +| ^ + +Upstream-Status: Submitted [https://github.com/g-truc/glm/pull/1055] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + glm/ext/quaternion_common.inl | 2 +- + glm/gtc/random.inl | 2 +- + test/gtx/gtx_fast_trigonometry.cpp | 30 ++++++++++++------------------ + 3 files changed, 14 insertions(+), 20 deletions(-) + +--- a/glm/ext/quaternion_common.inl ++++ b/glm/ext/quaternion_common.inl +@@ -104,7 +104,7 @@ namespace glm + { + // Graphics Gems III, page 96 + T angle = acos(cosTheta); +- T phi = angle + k * glm::pi<T>(); ++ T phi = angle + static_cast<T>(k) * glm::pi<T>(); + return (sin(angle - a * phi)* x + sin(a * phi) * z) / sin(angle); + } + } +--- a/test/gtx/gtx_fast_trigonometry.cpp ++++ b/test/gtx/gtx_fast_trigonometry.cpp +@@ -19,15 +19,14 @@ namespace fastCos + { + const float begin = -glm::pi<float>(); + const float end = glm::pi<float>(); +- float result = 0.f; + + const std::clock_t timestamp1 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::fastCos(i); ++ glm::fastCos(i); + + const std::clock_t timestamp2 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::cos(i); ++ glm::cos(i); + + const std::clock_t timestamp3 = std::clock(); + const std::clock_t time_fast = timestamp2 - timestamp1; +@@ -53,15 +52,14 @@ namespace fastSin + { + const float begin = -glm::pi<float>(); + const float end = glm::pi<float>(); +- float result = 0.f; + + const std::clock_t timestamp1 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::fastSin(i); ++ glm::fastSin(i); + + const std::clock_t timestamp2 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::sin(i); ++ glm::sin(i); + + const std::clock_t timestamp3 = std::clock(); + const std::clock_t time_fast = timestamp2 - timestamp1; +@@ -79,15 +77,14 @@ namespace fastTan + { + const float begin = -glm::pi<float>(); + const float end = glm::pi<float>(); +- float result = 0.f; + + const std::clock_t timestamp1 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::fastTan(i); ++ glm::fastTan(i); + + const std::clock_t timestamp2 = std::clock(); + for (float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::tan(i); ++ glm::tan(i); + + const std::clock_t timestamp3 = std::clock(); + const std::clock_t time_fast = timestamp2 - timestamp1; +@@ -105,15 +102,14 @@ namespace fastAcos + { + const float begin = -glm::pi<float>(); + const float end = glm::pi<float>(); +- float result = 0.f; + + const std::clock_t timestamp1 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::fastAcos(i); ++ glm::fastAcos(i); + + const std::clock_t timestamp2 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::acos(i); ++ glm::acos(i); + + const std::clock_t timestamp3 = std::clock(); + const std::clock_t time_fast = timestamp2 - timestamp1; +@@ -132,13 +128,12 @@ namespace fastAsin + { + const float begin = -glm::pi<float>(); + const float end = glm::pi<float>(); +- float result = 0.f; + const std::clock_t timestamp1 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::fastAsin(i); ++ glm::fastAsin(i); + const std::clock_t timestamp2 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::asin(i); ++ glm::asin(i); + const std::clock_t timestamp3 = std::clock(); + const std::clock_t time_fast = timestamp2 - timestamp1; + const std::clock_t time_default = timestamp3 - timestamp2; +@@ -155,13 +150,12 @@ namespace fastAtan + { + const float begin = -glm::pi<float>(); + const float end = glm::pi<float>(); +- float result = 0.f; + const std::clock_t timestamp1 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::fastAtan(i); ++ glm::fastAtan(i); + const std::clock_t timestamp2 = std::clock(); + for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f) +- result = glm::atan(i); ++ glm::atan(i); + const std::clock_t timestamp3 = std::clock(); + const std::clock_t time_fast = timestamp2 - timestamp1; + const std::clock_t time_default = timestamp3 - timestamp2; diff --git a/meta-oe/recipes-graphics/glm/glm/glm.pc.in b/meta-oe/recipes-graphics/glm/glm/glm.pc.in new file mode 100644 index 0000000000..54052e287d --- /dev/null +++ b/meta-oe/recipes-graphics/glm/glm/glm.pc.in @@ -0,0 +1,7 @@ +prefix=/usr +includedir=${prefix}/include + +Name: GLM +Description: OpenGL Mathematics +Version: @VERSION@ +Cflags: -I${includedir} diff --git a/meta-oe/recipes-graphics/glm/glm/glmConfig.cmake.in b/meta-oe/recipes-graphics/glm/glm/glmConfig.cmake.in new file mode 100644 index 0000000000..8ab23a18d7 --- /dev/null +++ b/meta-oe/recipes-graphics/glm/glm/glmConfig.cmake.in @@ -0,0 +1,20 @@ +set(GLM_VERSION "@VERSION@") + + +####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### +get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) + +macro(set_and_check _var _file) + set(${_var} "${_file}") + if(NOT EXISTS "${_file}") + message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") + endif() +endmacro() + +#################################################################################### + +set_and_check(GLM_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include") + +if (NOT CMAKE_VERSION VERSION_LESS "3.0") + include("${CMAKE_CURRENT_LIST_DIR}/glmTargets.cmake") +endif() diff --git a/meta-oe/recipes-graphics/glm/glm/glmConfigVersion.cmake.in b/meta-oe/recipes-graphics/glm/glm/glmConfigVersion.cmake.in new file mode 100644 index 0000000000..561a0db61f --- /dev/null +++ b/meta-oe/recipes-graphics/glm/glm/glmConfigVersion.cmake.in @@ -0,0 +1,31 @@ +# This is a basic version file for the Config-mode of find_package(). +# It is used by write_basic_package_version_file() as input file for configure_file() +# to create a version-file which can be installed along a config.cmake file. +# +# The created file sets PACKAGE_VERSION_EXACT if the current version string and +# the requested version string are exactly the same and it sets +# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version. +# The variable CVF_VERSION must be set before calling configure_file(). + +set(PACKAGE_VERSION "@VERSION@") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() + +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") + return() +endif() + +# check that the installed version has the same 32/64bit-ness as the one which is currently searching: +if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8") + math(EXPR installedBits "8 * 8") + set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") + set(PACKAGE_VERSION_UNSUITABLE FALSE) +endif() diff --git a/meta-oe/recipes-graphics/glm/glm/glmTargets.cmake b/meta-oe/recipes-graphics/glm/glm/glmTargets.cmake new file mode 100644 index 0000000000..905b67731b --- /dev/null +++ b/meta-oe/recipes-graphics/glm/glm/glmTargets.cmake @@ -0,0 +1,107 @@ +# Generated by CMake + +if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5) + message(FATAL_ERROR "CMake >= 2.6.0 required") +endif() +cmake_policy(PUSH) +cmake_policy(VERSION 2.6) +#---------------------------------------------------------------- +# Generated CMake target import file. +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Protect against multiple inclusion, which would fail when already imported targets are added once more. +set(_targetsDefined) +set(_targetsNotDefined) +set(_expectedTargets) +foreach(_expectedTarget glm) + list(APPEND _expectedTargets ${_expectedTarget}) + if(NOT TARGET ${_expectedTarget}) + list(APPEND _targetsNotDefined ${_expectedTarget}) + endif() + if(TARGET ${_expectedTarget}) + list(APPEND _targetsDefined ${_expectedTarget}) + endif() +endforeach() +if("${_targetsDefined}" STREQUAL "${_expectedTargets}") + unset(_targetsDefined) + unset(_targetsNotDefined) + unset(_expectedTargets) + set(CMAKE_IMPORT_FILE_VERSION) + cmake_policy(POP) + return() +endif() +if(NOT "${_targetsDefined}" STREQUAL "") + message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n") +endif() +unset(_targetsDefined) +unset(_targetsNotDefined) +unset(_expectedTargets) + + +# Compute the installation prefix relative to this file. +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +# Use original install prefix when loaded through a +# cross-prefix symbolic link such as /lib -> /usr/lib. +get_filename_component(_realCurr "${_IMPORT_PREFIX}" REALPATH) +get_filename_component(_realOrig "/usr/lib/cmake/glm" REALPATH) +if(_realCurr STREQUAL _realOrig) + set(_IMPORT_PREFIX "/usr/lib/cmake/glm") +endif() +unset(_realOrig) +unset(_realCurr) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +if(_IMPORT_PREFIX STREQUAL "/") + set(_IMPORT_PREFIX "") +endif() + +# Create imported target glm +add_library(glm INTERFACE IMPORTED) + +set_target_properties(glm PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" +) + +if(CMAKE_VERSION VERSION_LESS 3.0.0) + message(FATAL_ERROR "This file relies on consumers using CMake 3.0.0 or greater.") +endif() + +# Load information for each installed configuration. +get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +file(GLOB CONFIG_FILES "${_DIR}/glmTargets-*.cmake") +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() + +# Cleanup temporary variables. +set(_IMPORT_PREFIX) + +# Loop over all imported files and verify that they actually exist +foreach(target ${_IMPORT_CHECK_TARGETS} ) + foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} ) + if(NOT EXISTS "${file}" ) + message(FATAL_ERROR "The imported target \"${target}\" references the file + \"${file}\" +but this file does not exist. Possible reasons include: +* The file was deleted, renamed, or moved to another location. +* An install or uninstall procedure did not complete successfully. +* The installation package was faulty and contained + \"${CMAKE_CURRENT_LIST_FILE}\" +but not all the files it references. +") + endif() + endforeach() + unset(_IMPORT_CHECK_FILES_FOR_${target}) +endforeach() +unset(_IMPORT_CHECK_TARGETS) + +# This file does not depend on other imported targets which have +# been exported from the same project but in a separate export set. + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) +cmake_policy(POP) diff --git a/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb b/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb deleted file mode 100644 index 4e2ee23787..0000000000 --- a/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "OpenGL Mathematics Library" -DESCRIPTION = "OpenGL Mathematics (GLM) is a header only C++ \ -mathematics library for graphics software based on the OpenGL \ -Shading Language (GLSL) specifications." -HOMEPAGE = "https://glm.g-truc.net" -BUGTRACKER = "https://github.com/g-truc/glm/issues" - -SECTION = "libs" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://readme.md;beginline=21;endline=22;md5=3075b5727d36f29edccf97b93e72b790" - -SRC_URI = " \ - git://github.com/g-truc/glm;branch=master \ - file://0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch \ - file://0002-glm-install-headers-only.patch \ -" -SRCREV = "fcbedf5058ef8613dd02aac62ef00d55dcfeadd7" -S = "${WORKDIR}/git" - -inherit cmake - -EXTRA_OECMAKE = "-DGLM_ENABLE_EXPERIMENTAL=ON" - -FILES_${PN}-dev += "${libdir}/cmake" -RDEPENDS_${PN}-dev = "" - -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb b/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb new file mode 100644 index 0000000000..e313d7a192 --- /dev/null +++ b/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb @@ -0,0 +1,41 @@ +SUMMARY = "OpenGL Mathematics Library" +DESCRIPTION = "OpenGL Mathematics (GLM) is a header only C++ \ +mathematics library for graphics software based on the OpenGL \ +Shading Language (GLSL) specifications." +HOMEPAGE = "https://glm.g-truc.net" +BUGTRACKER = "https://github.com/g-truc/glm/issues" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://copying.txt;md5=462e4b97f73ef12f8171c3c546ce4e8d" + +SRC_URI = " \ + git://github.com/g-truc/glm;branch=master;protocol=https \ + file://0001-Silence-clang-warnings.patch \ + file://0001-Do-not-use-Werror-with-clang.patch \ + file://glmConfig.cmake.in \ + file://glmConfigVersion.cmake.in \ + file://glm.pc.in \ + file://glmTargets.cmake \ +" +SRCREV = "efec5db081e3aad807d0731e172ac597f6a39447" +PV .= "+0.9.9.9+git" + +S = "${WORKDIR}/git" + +inherit cmake + +do_install() { + install -d ${D}${includedir} ${D}${docdir}/glm ${D}${libdir}/pkgconfig ${D}${libdir}/cmake/glm + cp -R --no-dereference --preserve=mode,links ${S}/glm ${D}${includedir} + cp -R --no-dereference --preserve=mode,links ${S}/doc ${D}${docdir}/glm + rm ${D}${includedir}/glm/CMakeLists.txt + sed "s/@VERSION@/${PV}/" ${UNPACKDIR}/glmConfigVersion.cmake.in > ${D}${libdir}/cmake/glm/glmConfigVersion.cmake + sed "s/@VERSION@/${PV}/" ${UNPACKDIR}/glmConfig.cmake.in > ${D}${libdir}/cmake/glm/glmConfig.cmake + sed "s/@VERSION@/${PV}/" ${UNPACKDIR}/glm.pc.in > ${D}${libdir}/pkgconfig/glm.pc + install -Dm644 ${UNPACKDIR}/glmTargets.cmake ${D}${libdir}/cmake/glm/glmTargets.cmake + +} + +RDEPENDS:${PN}-dev = "" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch new file mode 100644 index 0000000000..abe38e12ce --- /dev/null +++ b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch @@ -0,0 +1,50 @@ +From 366930ccc1a261c3eb883da2bf3c655162ccd75f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 1 Mar 2023 22:58:37 -0800 +Subject: [PATCH] Match prototypes of callbacks with libgphoto + +In https://github.com/gphoto/gphoto2/pull/535/commits/ccc4c1f092bd21ebc713f4d7b9be85be49f92f1e +we tried to fix by using pthread_t but it also needs to make changes in +libgphoto and these changes can be invasive, therefore lets revert to +older types and to fix musl problem fix it via type casts + +Upstream-Status: Submitted [https://github.com/gphoto/gphoto2/pull/569] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + gphoto2/main.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/gphoto2/main.c b/gphoto2/main.c +index 0dac947..cd3c990 100644 +--- a/gphoto2/main.c ++++ b/gphoto2/main.c +@@ -1198,7 +1198,7 @@ thread_func (void *data) + pthread_cleanup_pop (1); + } + +-static pthread_t ++static unsigned int + start_timeout_func (Camera *camera, unsigned int timeout, + CameraTimeoutFunc func, void __unused__ *data) + { +@@ -1215,14 +1215,14 @@ start_timeout_func (Camera *camera, unsigned int timeout, + + pthread_create (&tid, NULL, thread_func, td); + +- return (tid); ++ return (unsigned int)tid; + } + + static void +-stop_timeout_func (Camera __unused__ *camera, pthread_t id, ++stop_timeout_func (Camera __unused__ *camera, unsigned int id, + void __unused__ *data) + { +- pthread_t tid = id; ++ pthread_t tid = (pthread_t)id; + + pthread_cancel (tid); + pthread_join (tid, NULL); +-- +2.39.2 + diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch index 7800fdd570..14976ffb72 100644 --- a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch +++ b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch @@ -6,21 +6,18 @@ Subject: [PATCH] configure.ac remove AM_PO_SUBDIRS This is done twice together with oe autotools.bbclass. --- +Upstream-Status: Pending + configure.ac | 1 - 1 file changed, 1 deletion(-) -diff --git a/configure.ac b/configure.ac -index bb5b795..93fbaf2 100644 --- a/configure.ac +++ b/configure.ac -@@ -64,7 +64,6 @@ GP_GETTEXT_HACK([],[Lutz Müller and others],[${MAIL_GPHOTO_TRANSLATION}]) +@@ -46,7 +46,6 @@ dnl i18n support + dnl --------------------------------------------------------------------------- + GP_GETTEXT_HACK([],[Lutz Müller and others],[${MAIL_GPHOTO_TRANSLATION}]) ALL_LINGUAS="az cs da de en_GB es eu fi fr hu id is it ja nl pa pl pt_BR ro ru rw sk sr sv uk vi zh_CN zh_TW" +-AM_PO_SUBDIRS() AM_GNU_GETTEXT_VERSION([0.14.1]) AM_GNU_GETTEXT([external]) --AM_PO_SUBDIRS() AM_ICONV() - GP_GETTEXT_FLAGS() - --- -1.9.1 - diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch new file mode 100644 index 0000000000..a27c02cefc --- /dev/null +++ b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch @@ -0,0 +1,39 @@ +From 23c67e93e51f700d0aeecfc08277e39f51201fc3 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 2 Sep 2022 12:59:46 -0700 +Subject: [PATCH] gphoto2: Use pthread_t abstract type for thead IDs + +This is not a plain old datatype in every libc, e.g. with musl this +would fail in type conversion + +Upstream-Status: Submitted [https://github.com/gphoto/gphoto2/pull/535] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + gphoto2/main.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gphoto2/main.c b/gphoto2/main.c +index 2bf5964..9a6b05d 100644 +--- a/gphoto2/main.c ++++ b/gphoto2/main.c +@@ -1198,7 +1198,7 @@ thread_func (void *data) + pthread_cleanup_pop (1); + } + +-static unsigned int ++static pthread_t + start_timeout_func (Camera *camera, unsigned int timeout, + CameraTimeoutFunc func, void __unused__ *data) + { +@@ -1219,7 +1219,7 @@ start_timeout_func (Camera *camera, unsigned int timeout, + } + + static void +-stop_timeout_func (Camera __unused__ *camera, unsigned int id, ++stop_timeout_func (Camera __unused__ *camera, pthread_t id, + void __unused__ *data) + { + pthread_t tid = id; +-- +2.37.3 + diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch deleted file mode 100644 index e6c7dd6675..0000000000 --- a/meta-oe/recipes-graphics/gphoto2/gphoto2/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 884d4c9bbd2dc147d614a5fabc25dbea7a71cd48 Mon Sep 17 00:00:00 2001 -From: Andreas Baak <andreas.baak@gmail.com> -Date: Sun, 12 Jul 2015 02:13:58 -0700 -Subject: [PATCH] Look for popt with GP_CHECK_LIBRARY function - -The previously used proprietary function GP_CHECK_POPT -defined in /.m4m/gp-check-opt.m4 is not ready for cross -compilation since it looks for the library and headers -in the host system. Yocto reports the following error: -"QA Issue: gphoto2: The compile log indicates that host -include and/or library paths were used." -Using the GP_CHECK_LIBRARY function fixes this problem ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 93fbaf2..6d661f0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -285,7 +285,7 @@ GP_CONFIG_MSG([Text preview support],[$aa_msg]) - dnl --------------------------------------------------------------------------- - dnl popt.h: Simplifies handling of command-line options enormously. - dnl --------------------------------------------------------------------------- --GP_CHECK_POPT([mandatory]) -+GP_CHECK_LIBRARY([POPT], [popt], [], [popt.h], [], [], [mandatory]) - - - dnl --------------------------------------------------------------------------- --- -1.9.1 - diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.14.bb b/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb index 75ad7f4f0f..513845194d 100644 --- a/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.14.bb +++ b/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb @@ -1,18 +1,17 @@ SUMMARY = "gphoto2 - a command-line frontend to libgphoto2" HOMEPAGE = "http://www.gphoto.com/" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" DEPENDS = "libgphoto2 popt readline" -RDEPENDS_gphoto2 = "libgphoto2" +RDEPENDS:gphoto2 = "libgphoto2" SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/gphoto2-${PV}.tar.bz2;name=gphoto2 \ file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \ - file://0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch \ + file://0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch \ + file://0001-Match-prototypes-of-callbacks-with-libgphoto.patch \ " - -SRC_URI[gphoto2.md5sum] = "6c6a21b5e879330cdd71ef92dce36399" -SRC_URI[gphoto2.sha256sum] = "9302d02fb472d4936988382b7277ccdc4edaf7ede56c490278912ffd0627699c" +SRC_URI[gphoto2.sha256sum] = "2a648dcdf12da19e208255df4ebed3e7d2a02f905be4165f2443c984cf887375" inherit autotools pkgconfig gettext diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch new file mode 100644 index 0000000000..570bb3e4c1 --- /dev/null +++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch @@ -0,0 +1,48 @@ +From 06be633b8f4e2241bd37d4faf62b49606ad778e7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 25 May 2023 19:01:36 -0700 +Subject: [PATCH] configure: Filter out buildpaths from CC + +Upstream-Status: Inappropriate [Cross-compile specific] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 4 +++- + libgphoto2_port/configure.ac | 6 ++++-- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 17216b1..39c8cc4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -261,7 +261,9 @@ GP_CONFIG_MSG([Compiler],[${CC}]) + GP_CONFIG_MSG([libltdl includes],[$LTDLINCL]) + GP_CONFIG_MSG([libltdl library],[$LIBLTDL]) + +-AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC"], ++CC_NO_SYSROOT=`echo $CC | sed -e \ ++ 's|--sysroot=.*\b||g'` ++AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC_NO_SYSROOT"], + [The C compiler we are using]) + + +diff --git a/libgphoto2_port/configure.ac b/libgphoto2_port/configure.ac +index 1086b8e..59f3c34 100644 +--- a/libgphoto2_port/configure.ac ++++ b/libgphoto2_port/configure.ac +@@ -103,8 +103,10 @@ GP_CONFIG_MSG([Compiler],[${CC}]) + GP_CONFIG_MSG([libltdl includes],[$LTDLINCL]) + GP_CONFIG_MSG([libltdl library],[$LIBLTDL]) + +-AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC"], +- [The C compiler we're using]) ++CC_NO_SYSROOT=`echo $CC | sed -e \ ++ 's|--sysroot=.*\b||g'` ++AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC_NO_SYSROOT"], ++ [The C compiler we are using]) + + AM_CPPFLAGS="" + +-- +2.40.1 + diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch index 8093676adc..fd647b7386 100644 --- a/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch +++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch @@ -11,7 +11,7 @@ together with oe autotools.bbclass this is done twice and causes: | autoreconf: running: aclocal --system-acdir=/home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/aclocal-copy/ --automake-acdir=/home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/share/aclocal-1.12 -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/auto-m4/ -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/m4m/ -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/auto-m4/ -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/m4m/ --force -I auto-m4 -I m4m | configure.ac:230: error: `po-directories' is already registered with AC_CONFIG_COMMANDS. -Upstream-Status: Inapropriate [configuration] +Upstream-Status: Inappropriate [configuration] Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> --- @@ -19,30 +19,23 @@ Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> libgphoto2_port/configure.ac | 1 - 2 files changed, 0 insertions(+), 2 deletions(-) -diff --git a/configure.ac b/configure.ac -index 2f8e1b8..2e90acf 100644 --- a/configure.ac +++ b/configure.ac -@@ -209,7 +209,6 @@ ALL_LINGUAS="cs da de es eu fr hu it ja nl pl ru sv uk vi zh_CN" - GP_GETTEXT_HACK([${PACKAGE}-${LIBGPHOTO2_CURRENT_MIN}],[The gPhoto Team],[${MAIL_GPHOTO_TRANSLATION}]) - AM_GNU_GETTEXT_VERSION([0.14.1]) - AM_GNU_GETTEXT([external]) +@@ -282,7 +282,6 @@ dnl ------------------------------------ + GP_GETTEXT_SETUP([GETTEXT_PACKAGE_LIBGPHOTO2], + [${PACKAGE}-${LIBGPHOTO2_CURRENT_MIN}], + [po]) -AM_PO_SUBDIRS() + AM_GNU_GETTEXT_VERSION([0.19.1]) + AM_GNU_GETTEXT([external]) AM_ICONV() - GP_GETTEXT_FLAGS() - -diff --git a/libgphoto2_port/configure.ac b/libgphoto2_port/configure.ac -index 0b66d58..df47357 100644 --- a/libgphoto2_port/configure.ac +++ b/libgphoto2_port/configure.ac -@@ -124,7 +124,6 @@ GP_GETTEXT_HACK([${PACKAGE}-${LIBGPHOTO2_PORT_CURRENT_MIN}],[Lutz Mueller and ot - ALL_LINGUAS="cs da de es eu fi fr it ja nl pl pt_BR ru sk sr sv uk vi zh_CN zh_TW" - AM_GNU_GETTEXT_VERSION([0.14.1]) - AM_GNU_GETTEXT([external]) +@@ -122,7 +122,6 @@ dnl ------------------------------------ + GP_GETTEXT_SETUP([GETTEXT_PACKAGE_LIBGPHOTO2_PORT], + [${PACKAGE}-${LIBGPHOTO2_PORT_CURRENT_MIN}], + [po]) -AM_PO_SUBDIRS() + AM_GNU_GETTEXT_VERSION([0.19.1]) + AM_GNU_GETTEXT([external]) AM_ICONV() - GP_GETTEXT_FLAGS() - --- -1.7.4.4 - diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi b/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi deleted file mode 100644 index 3977064fe0..0000000000 --- a/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi +++ /dev/null @@ -1,9533 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> -<!-- This file was generated by libgphoto2 print-camera-list - - fdi-device --> -<!--+ - | Created from this library: - | libgphoto2 2.5.8 all camlibs, gcc, ltdl, no EXIF - | libgphoto2_port 0.12.0 gcc, ltdl, no USB, serial without locking - +--> -<deviceinfo version="0.2"> - <device> - <match key="info.subsystem" string="usb"> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13251"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13252"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13891"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13628"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13869"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13702"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13128"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13129"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13130"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13272"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13180"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13181"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13259"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13093"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13121"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13124"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13125"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13193"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13194"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13176"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13588"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13736"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13892"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="14117"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13833"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13427"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13663"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13911"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13226"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13796"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1282"> - <match key="usb_device.product_id" int="13853"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="5845"> - <match key="usb_device.product_id" int="32774"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="5845"> - <match key="usb_device.product_id" int="32773"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1725"> - <match key="usb_device.product_id" int="1027"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1725"> - <match key="usb_device.product_id" int="1028"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1276"> - <match key="usb_device.product_id" int="20555"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1276"> - <match key="usb_device.product_id" int="20554"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2250"> - <match key="usb_device.product_id" int="273"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1276"> - <match key="usb_device.product_id" int="20554"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1276"> - <match key="usb_device.product_id" int="20555"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7099"> - <match key="usb_device.product_id" int="360"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7099"> - <match key="usb_device.product_id" int="8200"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7099"> - <match key="usb_device.product_id" int="3074"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7099"> - <match key="usb_device.product_id" int="40974"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7099"> - <match key="usb_device.product_id" int="61443"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7099"> - <match key="usb_device.product_id" int="36941"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7099"> - <match key="usb_device.product_id" int="359"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6473"> - <match key="usb_device.product_id" int="2048"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6473"> - <match key="usb_device.product_id" int="7"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6473"> - <match key="usb_device.product_id" int="8"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6473"> - <match key="usb_device.product_id" int="10"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6473"> - <match key="usb_device.product_id" int="12"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6473"> - <match key="usb_device.product_id" int="18"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6473"> - <match key="usb_device.product_id" int="11"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6473"> - <match key="usb_device.product_id" int="13"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6473"> - <match key="usb_device.product_id" int="5"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6473"> - <match key="usb_device.product_id" int="242"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="548"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4762"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4779"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4752"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4754"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4756"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4759"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4768"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4776"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4753"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4755"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1452"> - <match key="usb_device.product_id" int="4761"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="20488"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="20489"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="16386"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5416"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5417"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5433"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5432"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5305"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5448"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4618"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4893"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4620"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4865"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4867"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4881"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4897"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="12787"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4913"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4915"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="12841"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4871"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="8200"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4951"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4945"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4873"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4875"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4883"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4885"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4917"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4877"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4879"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4889"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5359"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5480"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5481"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5311"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5400"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5384"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5385"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5293"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5274"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5227"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5214"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="5208"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="12715"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4615"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4929"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4891"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3705"> - <match key="usb_device.product_id" int="4616"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="271"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="271"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37180"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="271"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="23055"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19680"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19681"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="20815"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="30579"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21519"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21535"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21775"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21760"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19664"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19665"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21023"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21007"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19648"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19649"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21600"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21608"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21504"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21520"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21521"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21606"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="30578"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21766"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21857"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="20992"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="20993"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21008"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21009"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21012"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21024"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21025"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21040"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21041"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19968"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19969"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19983"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19999"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19712"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19713"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19584"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19585"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19600"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19601"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19616"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="19617"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="22047"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="24322"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="22543"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="22559"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21632"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21633"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="30593"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21648"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2821"> - <match key="usb_device.product_id" int="21649"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36945"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8320"> - <match key="usb_device.product_id" int="6"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8320"> - <match key="usb_device.product_id" int="5"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1189"> - <match key="usb_device.product_id" int="12291"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7493"> - <match key="usb_device.product_id" int="17821"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10823"> - <match key="usb_device.product_id" int="32528"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10823"> - <match key="usb_device.product_id" int="8200"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10823"> - <match key="usb_device.product_id" int="3074"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12359"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12738"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12733"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12774"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12787"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12904"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12480"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12365"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12791"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12390"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12479"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12405"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12474"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12558"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12468"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12543"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12572"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12542"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12623"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12530"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12622"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12566"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12676"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12569"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12660"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12598"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12640"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12660"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12565"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12740"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12619"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12639"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12659"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12691"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12737"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12443"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12443"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12484"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12402"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12470"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12532"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12370"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12389"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12400"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12401"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12529"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12526"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12394"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12424"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12423"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12453"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12667"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12912"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12419"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12476"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12823"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12927"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12522"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12615"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12752"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12825"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12523"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12524"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12420"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12441"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12563"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12527"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12526"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12526"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12560"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12614"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12613"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12751"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12699"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12778"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12545"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12546"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12697"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12858"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12824"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12821"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12859"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12880"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12914"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12883"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12698"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12911"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12356"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12384"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12420"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12441"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12560"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12420"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12441"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12526"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12560"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12613"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12751"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12861"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12953"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12751"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12613"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12430"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12865"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12969"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12837"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12774"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12691"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12358"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12363"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12484"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12395"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12438"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12412"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12410"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12448"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12438"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12430"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12417"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12416"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12457"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12395"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12429"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12418"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12415"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12416"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12395"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12438"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12457"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12549"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12430"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12367"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12385"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12686"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12739"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12862"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12900"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12366"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12386"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12689"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12734"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12842"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12874"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12873"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12913"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12898"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12377"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12406"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12786"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12472"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12785"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12897"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12376"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12471"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12867"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12537"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12559"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12536"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12629"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12617"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12666"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12735"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12783"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12482"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12481"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12582"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12571"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12624"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12621"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12620"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12663"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12662"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12404"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12541"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12540"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12602"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12601"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12635"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12403"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12567"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12600"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12637"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12469"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12442"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12838"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12863"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12473"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12475"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12732"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12936"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12937"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12360"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12851"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12687"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12767"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12888"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12373"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12398"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12399"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12421"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12467"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12581"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12634"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12443"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12361"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12444"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12353"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12854"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12357"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12369"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12891"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12917"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12528"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12355"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12389"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12400"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12401"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12570"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12375"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12364"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12390"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12374"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12405"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12474"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12396"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12397"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12616"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12407"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12468"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12466"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12465"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12538"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12818"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12443"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12402"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12623"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12470"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12676"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12740"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12788"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12484"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12480"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12599"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12529"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12543"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12530"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12572"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12542"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12569"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12622"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12661"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12738"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12660"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12619"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12694"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12565"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12774"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12737"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12691"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12685"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12638"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12690"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12768"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12817"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12852"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12890"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12918"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12772"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12736"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12790"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12844"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12840"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12869"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12868"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12895"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12856"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12892"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12919"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12955"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12368"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12380"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12778"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12823"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12859"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1193"> - <match key="usb_device.product_id" int="12408"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1999"> - <match key="usb_device.product_id" int="4169"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1999"> - <match key="usb_device.product_id" int="4162"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1999"> - <match key="usb_device.product_id" int="4173"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1999"> - <match key="usb_device.product_id" int="4172"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1999"> - <match key="usb_device.product_id" int="4474"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1375"> - <match key="usb_device.product_id" int="49664"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1207"> - <match key="usb_device.product_id" int="34985"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="4098"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1943"> - <match key="usb_device.product_id" int="32769"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="548"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7796"> - <match key="usb_device.product_id" int="25874"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7763"> - <match key="usb_device.product_id" int="5"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="16640"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1000"> - <match key="usb_device.product_id" int="8578"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1000"> - <match key="usb_device.product_id" int="8576"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2386"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="1809"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="1873"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2321"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2369"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2049"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2161"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2193"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2145"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2177"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2337"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2305"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="1793"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="1889"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3617"> - <match key="usb_device.product_id" int="2353"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16406"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16391"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16394"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16402"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16395"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16403"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16675"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16727"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16688"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16700"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16691"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16737"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16695"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16701"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16689"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16720"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16728"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16722"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16671"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16723"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16702"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16721"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16738"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16745"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16680"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4204"> - <match key="usb_device.product_id" int="12821"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2125"> - <match key="usb_device.product_id" int="3"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3428"> - <match key="usb_device.product_id" int="4129"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1000"> - <match key="usb_device.product_id" int="8496"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3141"> - <match key="usb_device.product_id" int="32768"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16690"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="16687"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16700"> - <match key="usb_device.product_id" int="45323"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16700"> - <match key="usb_device.product_id" int="45338"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16700"> - <match key="usb_device.product_id" int="45339"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16700"> - <match key="usb_device.product_id" int="17664"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7994"> - <match key="usb_device.product_id" int="3074"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="270"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1498"> - <match key="usb_device.product_id" int="4120"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4483"> - <match key="usb_device.product_id" int="1"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1498"> - <match key="usb_device.product_id" int="4128"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2726"> - <match key="usb_device.product_id" int="24609"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36944"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36946"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4310"> - <match key="usb_device.product_id" int="8704"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="270"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="271"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1208"> - <match key="usb_device.product_id" int="1027"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1208"> - <match key="usb_device.product_id" int="1026"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10608"> - <match key="usb_device.product_id" int="8200"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10608"> - <match key="usb_device.product_id" int="3074"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6018"> - <match key="usb_device.product_id" int="16385"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1747"> - <match key="usb_device.product_id" int="8634"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3530"> - <match key="usb_device.product_id" int="2"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3530"> - <match key="usb_device.product_id" int="2"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="330"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="466"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="454"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="467"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="539"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="403"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="480"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="448"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="484"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="411"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="449"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="453"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="468"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="486"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="506"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="526"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="557"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="625"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="592"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="477"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="475"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="495"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="512"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="488"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="521"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="576"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="637"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="613"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="664"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="452"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="471"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="447"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="322"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="399"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="668"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="563"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="622"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="611"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="678"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="648"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="472"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="513"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="525"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="510"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="693"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1227"> - <match key="usb_device.product_id" int="451"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1221"> - <match key="usb_device.product_id" int="4416"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1221"> - <match key="usb_device.product_id" int="4923"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2334"> - <match key="usb_device.product_id" int="9605"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1112"> - <match key="usb_device.product_id" int="28677"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1037"> - <match key="usb_device.product_id" int="34908"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1044"> - <match key="usb_device.product_id" int="8200"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1044"> - <match key="usb_device.product_id" int="3074"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="7"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="6"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="20033"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="20034"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="19983"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="19712"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="11522"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="29706"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="53514"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="53513"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="20193"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="20194"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="45066"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="28840"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="20005"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="20006"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="1459"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="28930"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6353"> - <match key="usb_device.product_id" int="20197"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="9842"> - <match key="usb_device.product_id" int="17"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1943"> - <match key="usb_device.product_id" int="32796"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4866"> - <match key="usb_device.product_id" int="4118"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4866"> - <match key="usb_device.product_id" int="4119"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="270"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="32285"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="23837"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="23581"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4251"> - <match key="usb_device.product_id" int="37126"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4251"> - <match key="usb_device.product_id" int="37129"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4251"> - <match key="usb_device.product_id" int="37125"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="25858"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="25090"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="31746"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="32002"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="25346"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="26114"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="29698"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="30722"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="29186"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="28162"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="30978"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="27906"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="25346"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="16642"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="26626"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="28930"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="27394"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="25602"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="30210"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="26370"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="27650"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="27138"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="16898"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="30466"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="32258"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="17154"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="16642"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="17410"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="17666"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="16642"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="24578"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="61443"> - <match key="usb_device.product_id" int="24578"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="35586"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="35842"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="29954"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="31490"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="29442"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="31234"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="32770"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="33026"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="33282"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="39682"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="33794"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="34050"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="38402"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="38658"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="34562"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1008"> - <match key="usb_device.product_id" int="34818"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="26716"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="26720"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3074"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="8200"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3782"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3773"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3583"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3219"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3240"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3582"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3556"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="1533"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3541"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3633"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3634"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3573"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="1966"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3546"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3985"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3940"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3939"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3975"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3935"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3936"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3562"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3538"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="1994"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3877"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="1562"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="4020"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="4021"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="1995"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="2009"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3308"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3576"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3577"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3578"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3579"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3580"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3581"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="2008"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="8210"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="1547"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="3533"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="61642"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="2977"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2996"> - <match key="usb_device.product_id" int="2978"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4817"> - <match key="usb_device.product_id" int="4226"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4817"> - <match key="usb_device.product_id" int="13839"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4817"> - <match key="usb_device.product_id" int="13855"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4817"> - <match key="usb_device.product_id" int="4177"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4817"> - <match key="usb_device.product_id" int="4178"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37203"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1161"> - <match key="usb_device.product_id" int="49189"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="270"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6655"> - <match key="usb_device.product_id" int="771"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6655"> - <match key="usb_device.product_id" int="777"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6655"> - <match key="usb_device.product_id" int="775"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="32903"> - <match key="usb_device.product_id" int="2655"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="32903"> - <match key="usb_device.product_id" int="2581"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="32903"> - <match key="usb_device.product_id" int="2582"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="32902"> - <match key="usb_device.product_id" int="1584"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="32903"> - <match key="usb_device.product_id" int="2654"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="32903"> - <match key="usb_device.product_id" int="2555"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="271"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4394"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4390"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4417"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4418"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4434"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4455"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4433"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="8449"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="8453"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="8450"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4102"> - <match key="usb_device.product_id" int="12292"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4104"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4386"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4102"> - <match key="usb_device.product_id" int="16386"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4102"> - <match key="usb_device.product_id" int="16387"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4423"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4371"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4384"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4375"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4373"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4372"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4376"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4377"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4435"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4404"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4162"> - <match key="usb_device.product_id" int="4419"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7784"> - <match key="usb_device.product_id" int="4098"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4374"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="16642"> - <match key="usb_device.product_id" int="4402"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2848"> - <match key="usb_device.product_id" int="56814"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1924"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="13056"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="16640"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1498"> - <match key="usb_device.product_id" int="4102"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="0"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10545"> - <match key="usb_device.product_id" int="2561"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10545"> - <match key="usb_device.product_id" int="2565"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1265"> - <match key="usb_device.product_id" int="24837"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2126"> - <match key="usb_device.product_id" int="1"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2856"> - <match key="usb_device.product_id" int="4108"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8759"> - <match key="usb_device.product_id" int="53512"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8759"> - <match key="usb_device.product_id" int="53513"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8759"> - <match key="usb_device.product_id" int="45320"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1559"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1547"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1406"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1418"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1420"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1421"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1417"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1450"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1434"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1442"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1463"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1466"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1447"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1455"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1454"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1475"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1449"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1478"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1436"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1376"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1376"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1333"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1382"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1382"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1396"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1395"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1393"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1412"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1401"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1400"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1400"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1402"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1403"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1414"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1404"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="288"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="289"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="272"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="273"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="304"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="274"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="306"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="352"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="305"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1317"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1280"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1296"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1328"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="368"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1365"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1398"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1360"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1392"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1394"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1397"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1405"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1407"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1399"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="768"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1344"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1384"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1385"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1381"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1383"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1486"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1536"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1439"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1473"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1453"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1413"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1024"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1426"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1427"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1422"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1423"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1425"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1440"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1452"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1451"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1464"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1437"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1438"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1415"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1459"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1460"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1408"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1416"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1027"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1461"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1429"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1487"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1485"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1034"> - <match key="usb_device.product_id" int="1472"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1224"> - <match key="usb_device.product_id" int="1826"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4907"> - <match key="usb_device.product_id" int="1"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4907"> - <match key="usb_device.product_id" int="25"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4907"> - <match key="usb_device.product_id" int="9"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4907"> - <match key="usb_device.product_id" int="7"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4907"> - <match key="usb_device.product_id" int="24"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4907"> - <match key="usb_device.product_id" int="34"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7994"> - <match key="usb_device.product_id" int="4102"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1154"> - <match key="usb_device.product_id" int="2425"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1154"> - <match key="usb_device.product_id" int="2064"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1154"> - <match key="usb_device.product_id" int="1393"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1154"> - <match key="usb_device.product_id" int="1434"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36945"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9077"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6808"> - <match key="usb_device.product_id" int="2"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30519"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30507"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="29848"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30140"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30142"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30018"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30077"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30440"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="29706"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30851"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30133"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30554"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="29900"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="3074"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="29847"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="29862"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="29944"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30488"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="29724"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30450"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30698"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30463"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="30641"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25073"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25081"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25215"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25198"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="24859"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="24719"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="24882"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25406"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25145"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25149"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25116"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25125"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="24986"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1086"> - <match key="usb_device.product_id" int="28736"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1086"> - <match key="usb_device.product_id" int="28849"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25372"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="25189"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="24592"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4100"> - <match key="usb_device.product_id" int="24581"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="16640"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="5073"> - <match key="usb_device.product_id" int="28674"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1133"> - <match key="usb_device.product_id" int="2304"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1133"> - <match key="usb_device.product_id" int="2384"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="16640"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="13056"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1276"> - <match key="usb_device.product_id" int="20555"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1647"> - <match key="usb_device.product_id" int="33900"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3725"> - <match key="usb_device.product_id" int="80"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1032"> - <match key="usb_device.product_id" int="45066"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6127"> - <match key="usb_device.product_id" int="29827"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1276"> - <match key="usb_device.product_id" int="20554"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="16640"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8709"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="16642"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1647"> - <match key="usb_device.product_id" int="34128"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1647"> - <match key="usb_device.product_id" int="34184"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1032"> - <match key="usb_device.product_id" int="45065"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4721"> - <match key="usb_device.product_id" int="8210"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8222"> - <match key="usb_device.product_id" int="17067"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10821"> - <match key="usb_device.product_id" int="8200"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10821"> - <match key="usb_device.product_id" int="3074"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4310"> - <match key="usb_device.product_id" int="8960"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3504"> - <match key="usb_device.product_id" int="21874"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1118"> - <match key="usb_device.product_id" int="1600"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1118"> - <match key="usb_device.product_id" int="1570"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1118"> - <match key="usb_device.product_id" int="1260"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1118"> - <match key="usb_device.product_id" int="1808"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1118"> - <match key="usb_device.product_id" int="1598"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1118"> - <match key="usb_device.product_id" int="61642"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1118"> - <match key="usb_device.product_id" int="201"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1118"> - <match key="usb_device.product_id" int="1601"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3141"> - <match key="usb_device.product_id" int="32776"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2125"> - <match key="usb_device.product_id" int="3"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="24778"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="28808"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="25807"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11826"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11827"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11879"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11941"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11944"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11880"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="16854"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="16858"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="17063"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="17279"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="17267"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="18449"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="16860"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="28874"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11894"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11906"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11908"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11874"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11875"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11878"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="25619"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="25781"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="25782"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11856"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="11857"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="25621"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="10853"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="28835"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="28840"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="28841"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="17169"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="17158"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="16847"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="28941"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="28942"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8888"> - <match key="usb_device.product_id" int="17250"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1375"> - <match key="usb_device.product_id" int="49664"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1375"> - <match key="usb_device.product_id" int="41808"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1375"> - <match key="usb_device.product_id" int="49696"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1375"> - <match key="usb_device.product_id" int="50208"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1375"> - <match key="usb_device.product_id" int="50464"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2726"> - <match key="usb_device.product_id" int="38401"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1033"> - <match key="usb_device.product_id" int="806"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1033"> - <match key="usb_device.product_id" int="1074"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1033"> - <match key="usb_device.product_id" int="578"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1026"> - <match key="usb_device.product_id" int="22120"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="770"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="279"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="290"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="291"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="265"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="277"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="289"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="273"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="285"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="301"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="516"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="271"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="267"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="304"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="305"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="297"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="275"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="518"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="281"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="302"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="269"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="309"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="313"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="311"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="287"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="259"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="295"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="274"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="401"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="258"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="550"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="392"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="520"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="779"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="777"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="382"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="351"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="389"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="789"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="792"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="791"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="804"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="835"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="773"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="402"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="320"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="381"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="322"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="545"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="524"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="361"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="388"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="347"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="547"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="355"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="552"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="785"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="367"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="383"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="395"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="549"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="553"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="363"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="364"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="371"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="823"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="838"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="334"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="353"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="375"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="376"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="801"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="813"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="831"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="795"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="800"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="820"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="810"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="324"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="809"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="349"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="544"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="334"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="369"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="542"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="540"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="343"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="543"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="546"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="390"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="403"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="843"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1028"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1036"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1032"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1052"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1034"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1026"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1040"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1046"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1050"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1060"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1061"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1063"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1068"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1075"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1062"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1056"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1067"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1044"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1048"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1077"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1059"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1065"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1071"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1073"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1054"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1069"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1030"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1058"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1064"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1038"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1072"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1079"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1042"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1066"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1070"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1078"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1057"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1538"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1539"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1541"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1545"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1542"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1537"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1200"> - <match key="usb_device.product_id" int="1540"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1276"> - <match key="usb_device.product_id" int="20554"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="548"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="705"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="101"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="95"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1122"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="494"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="521"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1214"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="738"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1210"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="108"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="234"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1150"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="553"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1204"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="340"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="341"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="345"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="46"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="152"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="141"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="60"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="663"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1491"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1426"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="961"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="973"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="463"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="815"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="377"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="229"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="820"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="821"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="228"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="417"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="545"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1788"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1638"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1633"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1316"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1160"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1233"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1249"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="121"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="390"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="766"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="770"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1265"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="10"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="116"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="146"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1306"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1157"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1144"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1253"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1263"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="110"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="978"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="57"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="501"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="619"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="500"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="628"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1057"> - <match key="usb_device.product_id" int="1768"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="5891"> - <match key="usb_device.product_id" int="1"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="5891"> - <match key="usb_device.product_id" int="2"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2389"> - <match key="usb_device.product_id" int="28841"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2389"> - <match key="usb_device.product_id" int="46080"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2389"> - <match key="usb_device.product_id" int="52999"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2389"> - <match key="usb_device.product_id" int="52994"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2389"> - <match key="usb_device.product_id" int="28928"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2389"> - <match key="usb_device.product_id" int="28930"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7763"> - <match key="usb_device.product_id" int="6"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="276"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="276"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="276"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="276"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="276"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="276"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="272"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="303"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="303"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="278"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="276"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="275"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="303"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="276"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="276"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="278"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1972"> - <match key="usb_device.product_id" int="278"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8921"> - <match key="usb_device.product_id" int="10085"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8921"> - <match key="usb_device.product_id" int="10100"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8921"> - <match key="usb_device.product_id" int="10099"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="9076"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="8517"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1242"> - <match key="usb_device.product_id" int="8536"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4204"> - <match key="usb_device.product_id" int="61443"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7501"> - <match key="usb_device.product_id" int="20534"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7501"> - <match key="usb_device.product_id" int="20533"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7501"> - <match key="usb_device.product_id" int="20554"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="9723"> - <match key="usb_device.product_id" int="357"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2583"> - <match key="usb_device.product_id" int="13"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2583"> - <match key="usb_device.product_id" int="247"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2726"> - <match key="usb_device.product_id" int="38658"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8316"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8377"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8504"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="357"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8311"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8334"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8196"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="2135"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="2126"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8194"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="335"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8309"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8315"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8375"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8421"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="333"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="332"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="491"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="331"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="6411"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="270"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8592"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="32257"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="385"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="356"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="8226"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1137"> - <match key="usb_device.product_id" int="370"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2276"> - <match key="usb_device.product_id" int="322"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2276"> - <match key="usb_device.product_id" int="328"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="270"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1924"> - <match key="usb_device.product_id" int="10376"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1350"> - <match key="usb_device.product_id" int="8245"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1350"> - <match key="usb_device.product_id" int="3503"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="271"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10724"> - <match key="usb_device.product_id" int="4611"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10724"> - <match key="usb_device.product_id" int="4355"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1924"> - <match key="usb_device.product_id" int="21248"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1276"> - <match key="usb_device.product_id" int="65535"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1478"> - <match key="usb_device.product_id" int="34816"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1478"> - <match key="usb_device.product_id" int="61443"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1478"> - <match key="usb_device.product_id" int="553"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1478"> - <match key="usb_device.product_id" int="12694"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1478"> - <match key="usb_device.product_id" int="26468"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1478"> - <match key="usb_device.product_id" int="26469"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1478"> - <match key="usb_device.product_id" int="36921"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1478"> - <match key="usb_device.product_id" int="36901"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3530"> - <match key="usb_device.product_id" int="4"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1924"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="4704"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="4712"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8715"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8707"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8708"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8712"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8716"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="805"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8724"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="813"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8717"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8722"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="811"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8723"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8726"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="815"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8727"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8730"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="272"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8706"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="829"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8717"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4042"> - <match key="usb_device.product_id" int="32775"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8719"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8719"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37181"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37181"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37181"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3141"> - <match key="usb_device.product_id" int="32771"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3141"> - <match key="usb_device.product_id" int="32771"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3141"> - <match key="usb_device.product_id" int="32771"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="270"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="271"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="271"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26726"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26407"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26720"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26716"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26743"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26450"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26799"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="57868"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26649"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="1188"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20255"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26420"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26178"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="5132"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="4996"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26698"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26467"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26377"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26793"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="26370"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20526"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20509"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20514"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20527"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20516"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="23055"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20531"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="1033"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20567"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20609"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20570"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20760"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20611"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20762"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20757"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20765"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20784"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20773"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20751"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20782"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20625"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20619"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20618"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20551"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20607"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20564"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20605"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20627"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20769"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20791"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1256"> - <match key="usb_device.product_id" int="20540"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29712"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29776"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29778"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29746"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29748"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29924"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29904"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29824"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29728"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29730"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29792"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29888"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29890"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29920"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29697"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29696"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29744"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1921"> - <match key="usb_device.product_id" int="29872"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1140"> - <match key="usb_device.product_id" int="560"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1943"> - <match key="usb_device.product_id" int="35073"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1943"> - <match key="usb_device.product_id" int="35081"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1943"> - <match key="usb_device.product_id" int="35089"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2125"> - <match key="usb_device.product_id" int="4097"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="851"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="8718"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1482"> - <match key="usb_device.product_id" int="807"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1245"> - <match key="usb_device.product_id" int="38497"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1245"> - <match key="usb_device.product_id" int="38602"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1161"> - <match key="usb_device.product_id" int="49189"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="270"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1647"> - <match key="usb_device.product_id" int="40976"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3191"> - <match key="usb_device.product_id" int="4113"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3191"> - <match key="usb_device.product_id" int="4117"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3191"> - <match key="usb_device.product_id" int="4098"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3191"> - <match key="usb_device.product_id" int="4112"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3428"> - <match key="usb_device.product_id" int="4097"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3191"> - <match key="usb_device.product_id" int="4097"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6390"> - <match key="usb_device.product_id" int="258"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6390"> - <match key="usb_device.product_id" int="272"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="13056"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7132"> - <match key="usb_device.product_id" int="64191"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3530"> - <match key="usb_device.product_id" int="2"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3783"> - <match key="usb_device.product_id" int="4104"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1870"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1990"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="2391"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="2279"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="2382"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="2231"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="2387"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="2381"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="2388"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="2274"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="4756"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="704"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="743"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1347"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1567"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1774"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1169"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="2221"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1323"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1322"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1867"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="662"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="662"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="835"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="760"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1340"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20853"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="41333"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="45429"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="370"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20850"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16754"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="390"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20870"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16774"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="361"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20841"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16745"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="373"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16757"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="374"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16758"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="375"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20855"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16759"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="41335"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="45431"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="376"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20856"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16760"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="386"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20866"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16770"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="371"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20851"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16755"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="41331"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="45427"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1839"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1656"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="860"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="805"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="859"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1028"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="878"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="984"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1214"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1434"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1673"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1020"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1227"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="901"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1021"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1446"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="806"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1022"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="807"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="910"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="858"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="908"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1228"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1448"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="904"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1211"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="919"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="920"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="78"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1191"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="801"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1187"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1641"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1846"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1847"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1396"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1653"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20854"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="41334"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="45430"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="385"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20865"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16769"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1233"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1459"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1356"> - <match key="usb_device.product_id" int="1460"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="369"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="368"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20848"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16752"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="384"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20864"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16768"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20849"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16753"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="382"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20862"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16766"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="41342"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="45438"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="365"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="408"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20888"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="419"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20899"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16803"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="396"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20876"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16780"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="444"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20924"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="444"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="459"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20939"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16843"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="392"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20872"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16776"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="402"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20882"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16786"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="411"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20891"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16795"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="427"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20907"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16811"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="426"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20906"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16810"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="405"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20885"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16789"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="397"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="404"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20877"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20884"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16781"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16788"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="403"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20883"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16787"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="438"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="406"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="412"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20918"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20886"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20892"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16796"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="423"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16807"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20903"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="414"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20894"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16798"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="431"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20911"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16815"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="443"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20923"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16827"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="442"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20922"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16826"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="393"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20873"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16777"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="407"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20887"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="326"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20806"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="217"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="212"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="239"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="343"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20823"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16727"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="334"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="53572"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="324"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="57344"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="117"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20815"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="335"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="346"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20826"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="342"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20822"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="349"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20829"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="358"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20838"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="359"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20839"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="360"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20840"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="16744"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="353"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20833"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="251"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="307"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="314"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="4296"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="243"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="261"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="198"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="179"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="245"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="118"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="218"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="274"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4046"> - <match key="usb_device.product_id" int="20845"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37181"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1105"> - <match key="usb_device.product_id" int="53512"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="5073"> - <match key="usb_device.product_id" int="28695"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2726"> - <match key="usb_device.product_id" int="12305"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1691"> - <match key="usb_device.product_id" int="12341"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1691"> - <match key="usb_device.product_id" int="1911"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1691"> - <match key="usb_device.product_id" int="1908"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1691"> - <match key="usb_device.product_id" int="1916"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1691"> - <match key="usb_device.product_id" int="12314"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1691"> - <match key="usb_device.product_id" int="12328"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2329"> - <match key="usb_device.product_id" int="256"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="5008"> - <match key="usb_device.product_id" int="21589"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4571"> - <match key="usb_device.product_id" int="4096"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="2403"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="12"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="9"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="29"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="26"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="24"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="17"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="15"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="16"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="25"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="22"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="20"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4402"> - <match key="usb_device.product_id" int="17207"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4402"> - <match key="usb_device.product_id" int="17202"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4402"> - <match key="usb_device.product_id" int="17205"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="4402"> - <match key="usb_device.product_id" int="17204"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2352"> - <match key="usb_device.product_id" int="28928"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="13056"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3478"> - <match key="usb_device.product_id" int="16640"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7784"> - <match key="usb_device.product_id" int="2"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1026"> - <match key="usb_device.product_id" int="1553"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1647"> - <match key="usb_device.product_id" int="33834"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2125"> - <match key="usb_device.product_id" int="3"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1750"> - <match key="usb_device.product_id" int="46"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1750"> - <match key="usb_device.product_id" int="45"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2250"> - <match key="usb_device.product_id" int="272"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1276"> - <match key="usb_device.product_id" int="20554"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1943"> - <match key="usb_device.product_id" int="32794"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1363"> - <match key="usb_device.product_id" int="514"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3428"> - <match key="usb_device.product_id" int="4097"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8711"> - <match key="usb_device.product_id" int="1"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8711"> - <match key="usb_device.product_id" int="17"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1032"> - <match key="usb_device.product_id" int="14489"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="37152"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2425"> - <match key="usb_device.product_id" int="551"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="270"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="2362"> - <match key="usb_device.product_id" int="271"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3141"> - <match key="usb_device.product_id" int="32778"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1161"> - <match key="usb_device.product_id" int="57617"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1161"> - <match key="usb_device.product_id" int="49190"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1161"> - <match key="usb_device.product_id" int="57408"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1329"> - <match key="usb_device.product_id" int="8193"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="3141"> - <match key="usb_device.product_id" int="32769"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7763"> - <match key="usb_device.product_id" int="7"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="4968"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="4680"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="4672"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="61443"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="36921"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="65352"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="872"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="864"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10007"> - <match key="usb_device.product_id" int="1632"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="8711"> - <match key="usb_device.product_id" int="6"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10518"> - <match key="usb_device.product_id" int="37197"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10518"> - <match key="usb_device.product_id" int="61443"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="7871"> - <match key="usb_device.product_id" int="32553"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="1054"> - <match key="usb_device.product_id" int="24576"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="10096"> - <match key="usb_device.product_id" int="36956"> - <append key="info.capabilities" type="strlist">camera</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6610"> - <match key="usb_device.product_id" int="835"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6610"> - <match key="usb_device.product_id" int="65486"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6610"> - <match key="usb_device.product_id" int="580"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6610"> - <match key="usb_device.product_id" int="581"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6610"> - <match key="usb_device.product_id" int="774"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6610"> - <match key="usb_device.product_id" int="775"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - <match key="usb_device.vendor_id" int="6610"> - <match key="usb_device.product_id" int="899"> - <append key="info.capabilities" type="strlist">portable_audio_player</append> - </match> - </match> - </match> - </device> -</deviceinfo> diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi b/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi deleted file mode 100644 index 00427e7d97..0000000000 --- a/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi +++ /dev/null @@ -1,19018 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> -<!-- This file was generated by libgphoto2 print-camera-list - - fdi --> -<!--+ - | Created from this library: - | libgphoto2 2.5.8 all camlibs, gcc, ltdl, no EXIF - | libgphoto2_port 0.12.0 gcc, ltdl, no USB, serial without locking - +--> -<deviceinfo version="0.2"> - <device> - <match key="info.subsystem" string="usb"> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string"> JL2005B/C/D camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13251"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer E350 Liquid Gallant Duo (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13252"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer E350 Liquid Gallant Duo (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13891"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer E39</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13628"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia A1-810</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13869"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia A1-840FHD</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13702"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia A3-A11</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13128"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A100 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13129"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A100 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13130"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A101 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13272"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A110</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13180"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A200 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13181"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A200 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13259"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A210</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13093"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A500 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13121"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A500 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13124"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A501 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13125"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A501 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13193"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A510 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13194"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A510 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13176"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13588"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Liquid E2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13736"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Liquid E3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13892"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer liquid e700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="14117"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Liquid S56</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13833"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Liquid X1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13427"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Liquid Z120 MT65xx Android Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13663"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Liquid Z130 MT65xx Android Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13911"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer One 7</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13226"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer S500 CloudMobile</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13796"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Z150</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1282"> - <match key="usb.product_id" int="13853"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acer Z160</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="5845"> - <match key="usb.product_id" int="32774"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acromag Inc. XO Learning Tablet (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="5845"> - <match key="usb.product_id" int="32773"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Acromag Inc. XO Learning Tablet (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">AEG Snap 300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1725"> - <match key="usb.product_id" int="1027"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Agfa ePhoto CL18</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1725"> - <match key="usb.product_id" int="1028"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Agfa ePhoto CL20</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1276"> - <match key="usb.product_id" int="20555"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Aiptek 1.3 mega PocketCam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Aiptek PalmCam Trio</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1276"> - <match key="usb.product_id" int="20554"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Aiptek Pencam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Aiptek PenCam Trio</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2250"> - <match key="usb.product_id" int="273"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Aiptek PenCam VGA+</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1276"> - <match key="usb.product_id" int="20554"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Aiptek Pencam without flash</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1276"> - <match key="usb.product_id" int="20555"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Aiptek Smart Megacam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7099"> - <match key="usb.product_id" int="360"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Alcatel 6030a</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7099"> - <match key="usb.product_id" int="8200"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Alcatel One Touch 997D (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7099"> - <match key="usb.product_id" int="3074"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Alcatel One Touch 997D (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7099"> - <match key="usb.product_id" int="40974"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Alcatel OneTouch 5042D (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7099"> - <match key="usb.product_id" int="61443"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Alcatel OneTouch 6034R</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7099"> - <match key="usb.product_id" int="36941"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Alcatel/Bouygues BS472</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7099"> - <match key="usb.product_id" int="359"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Alcatel/TCT 6010D/TCL S950</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Amazing Spiderman</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6473"> - <match key="usb.product_id" int="2048"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Amazon Fire Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6473"> - <match key="usb.product_id" int="7"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6473"> - <match key="usb.product_id" int="8"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6473"> - <match key="usb.product_id" int="10"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID3)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6473"> - <match key="usb.product_id" int="12"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID4)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6473"> - <match key="usb.product_id" int="18"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID5)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6473"> - <match key="usb.product_id" int="11"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID6)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6473"> - <match key="usb.product_id" int="13"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID7)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6473"> - <match key="usb.product_id" int="5"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire 2G (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6473"> - <match key="usb.product_id" int="242"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire HD6</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="548"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">American Idol Keychain Camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4762"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPad (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4779"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPad Air</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4752"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPhone (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4754"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPhone 3G (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4756"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPhone 3GS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4759"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPhone 4 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4768"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPhone 4S (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4776"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPhone 5 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4753"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPod Touch (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4755"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPod Touch 2G (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="1452"> - <match key="usb.product_id" int="4761"> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Apple iPod Touch 3rd Gen (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="20488"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos (for Tesco) Hudl (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="20489"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos (for Tesco) Hudl (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="16386"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 101 G4</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5416"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5417"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5433"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 Turbo</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5432"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 Turbo 250 HD</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5305"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 101 Titanium</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5448"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 101 XS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4618"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 104 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4893"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 105 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4620"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 204 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4865"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 404 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4867"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 404CAM (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4881"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 405 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4897"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 405HDD (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="12787"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 45 Neon</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4913"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 5 (MTP mode 1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4915"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 5 (MTP mode 2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="12841"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 50 Diamond</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4871"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 504 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="8200"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 50c</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4951"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 5H IT (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4945"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 5S IT (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4873"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 604 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4875"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 604WIFI (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4883"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 605 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4885"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 605F (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4917"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 7 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4877"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 704 mobile dvr</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4879"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 704TV (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4889"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 705 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5359"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 70b Titanium</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5480"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 70it2 (ID 1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5481"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 70it2 (ID 2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5311"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 80 Titanium</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5400"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 80G9</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5384"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 8o G9 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5385"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 8o G9 Turbo (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5293"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 97 Titanium</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5274"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos 97 Xenon</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5227"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos Arnova 10bG3 Tablet</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5214"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos Arnova 8c G3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="5208"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos Arnova Childpad</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="12715"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos C40</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4615"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos Gmini XS100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4929"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos SPOD (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4891"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos TV+ (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3705"> - <match key="usb.product_id" int="4616"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Archos XS202 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Argus Bean Sprout</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Argus DC-1500</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Argus DC-1510</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="271"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Argus DC-1610</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="271"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Argus DC-1620</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37180"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Argus DC-1730</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Argus DC-2200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Argus DC1512e</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="271"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Argus QuickClix</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Aries ATC-0017</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Aries Digital Keychain Camera, I</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="23055"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus A450CG (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19680"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Asus Fonepad Note 6 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19681"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Asus Fonepad Note 6 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="20815"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Fonepad</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="30579"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Fonepad 7 (FE375CXG)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21519"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Fonepad 7 LTE ME372CL (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21535"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Fonepad 7 LTE ME372CL (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21775"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus K00E (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21760"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus K010 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19664"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ME301T MeMo Pad Smart 10 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19665"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ME301T MeMo Pad Smart 10 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21023"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ME302C MemoPad (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21007"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ME302C MemoPad (MTP+?)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19648"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ME302KL MeMo Pad FHD10 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19649"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ME302KL MeMo Pad FHD10 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21600"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Memo K00F (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21608"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Memo K00F (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21504"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Memo ME172V (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21520"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Memo ME173X (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21521"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Memo ME173X (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21606"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Memo Pad 8 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="30578"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus MemoPad 7 (ME572CL)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21766"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus MemoPad 7 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21857"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus MemoPad 8 ME181 CX (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="20992"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus PadFone (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="20993"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus PadFone (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21008"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus PadFone 2 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21009"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus PadFone 2 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21012"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus PadFone 2 (PTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21024"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (2nd ID) (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21025"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (2nd ID) (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21040"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21041"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19968"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus SL101 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19969"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus SL101 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19983"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TF101 Eeepad Transformer (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19999"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TF101 Eeepad Transformer (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19712"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TF201 Transformer Prime (keyboard dock)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19713"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TF201 Transformer Prime (tablet only)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19584"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TF300 Transformer (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19585"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TF300 Transformer (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19600"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TF700 Transformer (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19601"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TF700 Transformer (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19616"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TF701T Transformer Pad (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="19617"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TF701T Transformer Pad (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="22047"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus TX201LA (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="24322"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus Zenfone 2 ZE550ML (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="22543"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 4 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="22559"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 4 A400CG (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21632"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 5 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21633"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 5 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="30593"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 5 A500KL (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21648"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 6 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2821"> - <match key="usb.product_id" int="21649"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 6 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36945"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Barbie Camera (Digital Blue)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8320"> - <match key="usb.product_id" int="6"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Barnes&Noble Nook HD</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8320"> - <match key="usb.product_id" int="5"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Barnes&Noble Nook HD+</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1189"> - <match key="usb.product_id" int="12291"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Benq DC1300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7493"> - <match key="usb.product_id" int="17821"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">BenQ F5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10823"> - <match key="usb.product_id" int="32528"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">bq Aquarius E5-4G</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10823"> - <match key="usb.product_id" int="8200"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">bq Krillin (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10823"> - <match key="usb.product_id" int="3074"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">bq Krillin (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12359"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12738"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 100 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12733"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 110 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12774"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 120 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12787"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 130</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12904"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 255HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12480"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 30 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12365"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12791"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 300 HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12390"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 330</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12479"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 40 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12405"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 400 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12474"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 430 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12558"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 50 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12468"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12543"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 55 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12572"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 60 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12542"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 65 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12623"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 70 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12530"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 700 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12622"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 75 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12566"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 750 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12676"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 80 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12569"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 800 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12660"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 85 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12598"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 850 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12640"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 860 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12660"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 90 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12565"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 900Ti (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12740"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 95 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12619"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 950 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12639"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 960 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12659"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 970 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12691"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 980 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12737"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 990 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12443"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS i (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12443"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS i (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12484"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS i5 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12402"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS II (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12470"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS IIs (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12532"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS iZ (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12370"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12389"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12400"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v3 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12401"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v3 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12529"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS Wireless (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12526"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital Rebel XT (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12394"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Digital unknown 3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12424"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Elura 50 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12423"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Elura 50 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12453"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Elura 65 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12667"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 1000D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12912"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 100D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12419"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 10D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12476"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 10D (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12823"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 1100D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12927"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 1200D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12522"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D Mark II (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12615"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D Mark III (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12752"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D Mark IV</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12825"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D X</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12523"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 20D (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12524"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 20D (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12420"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 300D (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12441"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 300D (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12563"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 30D (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12527"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 350D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12526"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 350D (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12526"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 350D (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12560"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 400D (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12614"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 40D (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12613"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 450D (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12751"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 500D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12699"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 50D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12778"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 550D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12545"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12546"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12697"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D Mark II</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12858"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D Mark III</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12824"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 600D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12821"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 60D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12859"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 650D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12880"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 6D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12914"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 700D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12883"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 70D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12698"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 7D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12911"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS 7D MarkII</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12356"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS D30</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12384"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS D60</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12420"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Digital Rebel (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12441"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Digital Rebel (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12560"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Digital Rebel XTi (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12420"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12441"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12526"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital N (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12560"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital X (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12613"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss X2 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12751"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss X3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12861"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS M</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12953"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS M3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12751"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Rebel T1i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12613"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon EOS Rebel XSi (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12430"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon FV M1 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12865"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon IXUS 125HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12969"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon IXUS 165</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12837"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon IXUS 310IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12774"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon IXY 220 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12691"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon IXY 3000 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12358"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon IXY DIGITAL</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12363"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon IXY DIGITAL 300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12484"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon IXY Digital L2 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12395"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon IXY DV M</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12438"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon IXY DV M2 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12412"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon MV630i (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12410"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon MV650i (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12448"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon MV750i (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12438"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon MVX 10i (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12430"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon MVX 3i (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12417"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon MVX100i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12416"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon MVX150i (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12457"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon MVX25i (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12395"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon MVX2i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12429"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon MVX3i (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12418"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Optura 10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12415"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Optura 20</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12416"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Optura 20 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12395"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Optura 200 MC</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12438"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Optura 300 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12457"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Optura 40 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12549"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Optura 600 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12430"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Optura Xi (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12367"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12385"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12686"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1000 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12739"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1100 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12862"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1300IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12900"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1400</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12366"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A20</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12386"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12689"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2000 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12734"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2100 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12842"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12874"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2300IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12873"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2400IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12913"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2500</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12898"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2600</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12377"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A30</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12406"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A300 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12786"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A3000 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12472"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A310 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12785"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A3100 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12897"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A3500IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12376"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A40</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12471"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A400 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12867"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A4000IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12537"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A410 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12559"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A420 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12536"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A430 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12629"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A450 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12617"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A460 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12666"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A470</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12735"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A480</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12783"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Powershot A495</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12482"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A510 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12481"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A520 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12582"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A530 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12571"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A540 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12624"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A550 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12621"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A560 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12620"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A570 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12663"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A580</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12662"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A590 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12404"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A60 (PTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12541"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A610 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12540"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A620 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12602"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A630 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12601"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A640 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12635"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A650IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12403"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A70 (PTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12567"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A700 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12600"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A710 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12637"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A720 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12469"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A75 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12442"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A80 (PTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12838"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A800</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12863"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A810</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12473"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A85 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12475"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A95 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12732"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot D10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12936"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot Elph135</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12937"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot Elph340HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12360"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12851"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G1 X</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12687"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12767"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G11</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12888"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G15</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12373"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12398"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G3 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12399"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G3 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12421"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G5 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12467"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Powershot G6 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12581"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G7 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12634"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G9 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12443"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot IXY Digital L (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12361"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot Pro90 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12444"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S1 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12353"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12854"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12357"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S100 (2000)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12369"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S110 (2001)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12891"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S110 (PTP Mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12917"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S120</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12528"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S2 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12355"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S20</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12389"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12400"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S230 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12401"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S230 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12570"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S3 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12375"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S30</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12364"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12390"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S330</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12374"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S40</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12405"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S400 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12474"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S410 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12396"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S45 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12397"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S45 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12616"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S5 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12407"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S50 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12468"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12466"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Powershot S60 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12465"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Powershot S70 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12538"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S80 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12818"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S95</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12443"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD10 Digital ELPH (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12402"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12623"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD1000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12470"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD110 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12676"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Powershot SD1100 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12740"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Powershot SD1200 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12788"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD1300 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12484"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD20 (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12480"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD200 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12599"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD40 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12529"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD430 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12543"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD450 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12530"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12572"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD600 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12542"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD630 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12569"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD700 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12622"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD750 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12661"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD770 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12738"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD780 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12660"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Powershot SD790 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12619"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD850 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12694"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD880 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12565"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD900 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12774"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD940 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12737"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD970 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12691"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD990</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12685"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX10 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12638"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Powershot SX100 IS (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12690"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX110 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12768"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX120 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12817"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX130 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12852"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX150 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12890"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX160IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12918"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX170 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12772"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX20 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12736"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX200 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12790"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX210 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12844"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX220HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12840"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX230HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12869"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX240HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12868"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX260HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12895"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX280HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12856"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX40HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12892"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX500IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12919"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX510 HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12955"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX520 HS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12368"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot unknown 1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12380"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon PowerShot unknown 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12778"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Rebel T2i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12823"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Rebel T3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12859"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Canon Rebel T4i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1193"> - <match key="usb.product_id" int="12408"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Canon ZR70MC (normal mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1999"> - <match key="usb.product_id" int="4169"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Casio EX-S770</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1999"> - <match key="usb.product_id" int="4162"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Casio EX-Z120</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1999"> - <match key="usb.product_id" int="4173"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Casio EX-Z65</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1999"> - <match key="usb.product_id" int="4172"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Casio EX-Z700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1999"> - <match key="usb.product_id" int="4474"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Casio EX-ZR700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1375"> - <match key="usb.product_id" int="49664"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Casio LV 10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1207"> - <match key="usb.product_id" int="34985"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Caterpillar Cat S50</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Che-ez Snap</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Che-Ez Snap SNAP-U</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Che-ez! Babe</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="4098"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Che-ez! Splash</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Che-ez! SPYZ</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1943"> - <match key="usb.product_id" int="32769"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Clever CAM 360</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="548"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Cobra DC125</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Cobra Digital Camera DC150</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7796"> - <match key="usb.product_id" int="25874"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Coby COBY MP705</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7763"> - <match key="usb.product_id" int="5"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Conceptronic CMTD2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Concord Eye-Q Duo</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Concord Eye-Q Easy</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="16640"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Concord EyeQ 4330</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1000"> - <match key="usb.product_id" int="8578"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Concord EyeQMini_1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1000"> - <match key="usb.product_id" int="8576"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Concord EyeQMini_2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">CoolCam CP086</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2386"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 10 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="1809"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 6 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="1873"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 7 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2321"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 9 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2369"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio C2 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2049"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2161"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ DAB FW 4.x (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2193"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ DMB FW 1.x (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2145"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ FW 2.x (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2177"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ FW 3.x (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2337"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio J3 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2305"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio S9 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="1793"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio U3 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="1889"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio U5 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3617"> - <match key="usb.product_id" int="2353"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Cowon iAudio X7 (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16406"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Creative CardCam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16391"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Creative Go Mini</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16394"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM 300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16402"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM350</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16395"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM600</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16403"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM750</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16675"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative Portable Media Center</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16727"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16688"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN Micro (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16700"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN MicroPhoto</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16691"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN MicroPhoto (alternate version)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16737"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN Mozaic</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16695"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN Sleek (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16701"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN Sleek Photo</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16689"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN Touch (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16720"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN V</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16728"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN V 2GB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16722"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN V Plus</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16671"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16723"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision W</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16702"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision:M</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16721"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision:M (DVP-HD0004)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16738"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN X-Fi</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16745"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN X-Fi 3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16680"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Creative ZEN Xtra (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4204"> - <match key="usb.product_id" int="12821"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Curitel Communications, Inc. Verizon Wireless Device</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2125"> - <match key="usb.product_id" int="3"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">D-Link DSC 350+</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3428"> - <match key="usb.product_id" int="4129"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">D-Link DSC 350F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1000"> - <match key="usb.product_id" int="8496"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">D-MAX DM3588</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DC-N130t</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DC-N130ta</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3141"> - <match key="usb.product_id" int="32768"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DC31VC</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16690"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Dell Dell Pocket DJ (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="16687"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Dell DJ (2nd generation)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16700"> - <match key="usb.product_id" int="45323"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Dell Inc Dell Streak 7</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16700"> - <match key="usb.product_id" int="45338"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Dell Inc Dell Venue 7 inch</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16700"> - <match key="usb.product_id" int="45339"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Dell Inc Dell Venue 7 inch (2nd ID)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16700"> - <match key="usb.product_id" int="17664"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Dell Inc DJ Itty</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Digigr8</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7994"> - <match key="usb.product_id" int="3074"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">DigiLand DL701Q</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="270"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Digital camera, CD302N</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DIGITAL MID#0020509 (no-name camera)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1498"> - <match key="usb.product_id" int="4120"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DigitalDream Enigma1.3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DigitalDream l'elegante</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DigitalDream l'elite</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DigitalDream l'espion</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4483"> - <match key="usb.product_id" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DigitalDream l'espion XS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1498"> - <match key="usb.product_id" int="4128"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DigitalDream l'espion xtra</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DigitalDream l'esprit</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">DigitalDream la ronde</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2726"> - <match key="usb.product_id" int="24609"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Disney MixMax</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36944"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Disney pix micro</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36946"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Disney pix micro 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4310"> - <match key="usb.product_id" int="8704"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Dunlop MP3 player 1GB / EGOMAN MD223AFD</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="270"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Elta Medi@ digi-cam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="271"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Emprex PCD3600</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1208"> - <match key="usb.product_id" int="1027"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Epson PhotoPC 3000z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1208"> - <match key="usb.product_id" int="1026"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Epson PhotoPC 850z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10608"> - <match key="usb.product_id" int="8200"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Fly Evo Tech 4</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10608"> - <match key="usb.product_id" int="3074"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Fly iq4415 era style 3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6018"> - <match key="usb.product_id" int="16385"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Fly iq449</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1747"> - <match key="usb.product_id" int="8634"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">FOMA D905i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3530"> - <match key="usb.product_id" int="2"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji Axia Eyeplate</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3530"> - <match key="usb.product_id" int="2"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji Axia Slimshot</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="330"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A330</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="466"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A800</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="454"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A820</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="467"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A920</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="539"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix AV-150</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="403"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix E900</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="480"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F100fd</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="448"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F20</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="484"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F200 EXR</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="411"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F30</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="449"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F31fd</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="453"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F40fd</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="468"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F50fd</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="486"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F60fd</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="506"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F70 EXR</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="526"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F80EXR</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="557"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix H20EXR</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="625"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix HS30EXR</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="592"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix JX370</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="477"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S1000fd</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="475"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S100fs</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="495"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S1500</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="512"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S1800</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="488"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2000HD</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="521"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2500HD</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="576"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2950</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="637"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2980</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="613"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S4300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="664"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S4850</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="452"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S5700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="471"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S5800</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="447"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S6500fd</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="322"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S7000</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="399"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S9500</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="668"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix SL1000</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="563"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix T200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="622"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix X-S1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="611"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix X10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="678"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix X20</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="648"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix XF1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="472"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix Z100fd</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="513"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix Z35</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="525"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji FinePix Z700EXR</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="510"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji Fujifilm A220</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="693"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji Fujifilm X-E2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji IX-1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1227"> - <match key="usb.product_id" int="451"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Fuji S5 Pro</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">FujiFilm @xia ix-100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1221"> - <match key="usb.product_id" int="4416"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Fujitsu, Ltd F903iX HIGH-SPEED</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1221"> - <match key="usb.product_id" int="4923"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Fujitsu, Ltd STYLISTIC M532</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2334"> - <match key="usb.product_id" int="9605"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Garmin Monterra</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Gear to go</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Generic SoundVision Clarity2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1112"> - <match key="usb.product_id" int="28677"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Genius Smart 300, version 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1037"> - <match key="usb.product_id" int="34908"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Gensis GT-7305 </merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1044"> - <match key="usb.product_id" int="8200"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Gigabyte RCT6773W22 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1044"> - <match key="usb.product_id" int="3074"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Gigabyte RCT6773W22 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Global Point 3 in 1 Digital Fun Graffiti 00044</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Global Point Clipster</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Global Point Splash Mini (underwater camera)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="7"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Ainol Novo) Fire/Flame</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="6"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Allwinner) A31 SoC</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="20033"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) Nexus 7 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="20034"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) Nexus 7 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="19983"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) TF101 Transformer</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="19712"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) TF201 Transformer</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="11522"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Barnes & Noble) Nook Color</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="29706"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Lenovo) Ideapad K1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="53514"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics) P990/Optimus</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="53513"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics) P990/Optimus (Cyanogen)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="20193"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics/Samsung) Nexus 4/5/7/10 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="20194"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics/Samsung) Nexus 4/5/7/10 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="45066"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Medion) MD99000 (P9514)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="28840"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Motorola) Xoom (MZ604)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="20005"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Samsung) Nexus S (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="20006"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Samsung) Nexus S (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="1459"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Sony) S1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="28930"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Inc (for Toshiba) Thrive 7/AT105</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6353"> - <match key="usb.product_id" int="20197"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Google Nexus 5 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="9842"> - <match key="usb.product_id" int="17"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">GoPro HERO3+</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1943"> - <match key="usb.product_id" int="32796"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">GrandTek ScopeCam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">GTW Electronics</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4866"> - <match key="usb.product_id" int="4118"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Haier Ibiza Rhapsody 1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4866"> - <match key="usb.product_id" int="4119"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Haier Ibiza Rhapsody 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="270"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Haimei Electronics HE-501A</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Hawking DC120 Pocketcam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="32285"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Hewlett-Packard Slate 10 HD</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="23837"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Hewlett-Packard Slate 7 2800</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="23581"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Hewlett-Packard Slate 7 4600</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4251"> - <match key="usb.product_id" int="37126"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Hisense E860 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4251"> - <match key="usb.product_id" int="37129"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Hisense E860 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4251"> - <match key="usb.product_id" int="37125"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HiSense Sero 7 Pro</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="25858"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 120 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="25090"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 215</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="31746"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 217 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="32002"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 317 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="25346"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 318 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="26114"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 320 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="29698"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 407 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="30722"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 417 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="29186"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 43x (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="28162"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 507 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="30978"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 517 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="27906"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 607 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="25346"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 612 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="16642"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 618</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="26626"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 620 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="28930"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 635 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="27394"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 707 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="25602"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 715 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="30210"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 717 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="26370"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 720 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="27650"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 733 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="27138"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 735 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="16898"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 812 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="30466"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 817 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="32258"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 818 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="17154"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 850 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="16642"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 912</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="17410"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 935 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="17666"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 945 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="16642"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart C500</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="24578"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart C500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="61443"> - <match key="usb.product_id" int="24578"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart C500 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="35586"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart E327 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="35842"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart E427 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="29954"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M22 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="31490"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M23 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="29442"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M307 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="31234"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M415 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="32770"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M425 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="33026"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M525 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="33282"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M527 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="39682"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M547 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="33794"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M725 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="34050"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M727 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="38402"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M737 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="38658"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart R742 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="34562"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart R927 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1008"> - <match key="usb.product_id" int="34818"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart R967 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="26716"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC (for Hewlett-Packard) HP Touchpad (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="26720"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC (for Hewlett-Packard) HP Touchpad (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3074"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC Android Device ID1 (Zopo, HD2, Bird...)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="8200"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC Android Device ID2 (Zopo, HD2...)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3782"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC Desire 310 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3773"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC Droid DNA (MTP+UMS)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3583"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC Droid DNA (MTP+UMS+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3219"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC EVO 4G LTE/One V (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3240"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC EVO 4G LTE/One V (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3582"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC Butterfly (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3556"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC Butterfly X290d</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="1533"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC Desire 510 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3541"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC Desire X</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3633"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC Droid Incredible 4G LTE (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3634"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC Droid Incredible 4G LTE (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3573"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC Evo 4G LTE (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="1966"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One (HTC6500LVW)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3546"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3985"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One (ID3)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3940"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3939"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3975"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+ADB+?)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3935"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+ADB+CDC)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3936"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+CDC)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3562"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+UMS+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3538"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One 802w (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="1994"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (HTC6525LVW)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3877"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="1562"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="4020"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP+ADB+UMS)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="4021"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP+UMS)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="1995"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (Verizon) (HTC6525LVW)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="2009"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One Remix (HTC6515LVW)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3308"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One S (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3576"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One S (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3577"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One S (ID3)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3578"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3579"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3580"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID3)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3581"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID4)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="2008"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC HTC6515LVW/One Remix</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="8210"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC Motorola Razr D1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="1547"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC One M8 Google Play Edition (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="3533"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC One Mini (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="61642"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC Windows Phone 8s ID1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="2977"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC Windows Phone 8X ID1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2996"> - <match key="usb.product_id" int="2978"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">HTC Windows Phone 8X ID2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4817"> - <match key="usb.product_id" int="4226"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Huawei Ascend P8 </merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4817"> - <match key="usb.product_id" int="13839"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Huawei Mediapad (mode 0)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4817"> - <match key="usb.product_id" int="13855"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Huawei Mediapad (mode 1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4817"> - <match key="usb.product_id" int="4177"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Huawei MTP device (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4817"> - <match key="usb.product_id" int="4178"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Huawei MTP device (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37203"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">iClick 5X</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">iConcepts digital camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1161"> - <match key="usb.product_id" int="49189"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">InFocus M810</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="270"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">INNOVAGE Mini Digital, CD302N</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6655"> - <match key="usb.product_id" int="771"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Insignia NS-DV45</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6655"> - <match key="usb.product_id" int="777"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Insignia Pilot 4GB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6655"> - <match key="usb.product_id" int="775"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Insignia Sport Player</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="32903"> - <match key="usb.product_id" int="2655"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Intel Chuwi vi8</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="32903"> - <match key="usb.product_id" int="2581"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Intel Foxconn iView i700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="32903"> - <match key="usb.product_id" int="2582"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Intel Noblex T7A21</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="32902"> - <match key="usb.product_id" int="1584"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Intel Pocket PC Camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="32903"> - <match key="usb.product_id" int="2654"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Intel Telcast Air 3G</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="32903"> - <match key="usb.product_id" int="2555"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Intel Xolo 900/AZ210A</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">IOMagic MagicImage 400</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="271"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">ION digital camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4394"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver Clix</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4390"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver Clix2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4417"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver E100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4418"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver E100 v2/Lplayer</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4434"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver E150</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4455"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver E30</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4433"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver E50</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="8449"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver H10 20GB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="8453"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver H10 5.6GB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="8450"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver H10 5GB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4102"> - <match key="usb.product_id" int="12292"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver H300 Series MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4104"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver iFP-880</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4386"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver N12</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4102"> - <match key="usb.product_id" int="16386"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver Portable Media Center 1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4102"> - <match key="usb.product_id" int="16387"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver Portable Media Center 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4423"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver Spinn</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4371"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver T10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4384"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver T10 2GB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4375"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver T10b</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4373"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver T20</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4372"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver T20 FM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4376"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver T20b</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4377"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver T30</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4435"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver T5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4404"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver T60</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4162"> - <match key="usb.product_id" int="4419"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver T7 Volcano</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7784"> - <match key="usb.product_id" int="4098"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver Tolino Tab 7</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4374"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver U10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="16642"> - <match key="usb.product_id" int="4402"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">iRiver X20</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2848"> - <match key="usb.product_id" int="56814"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Isabella Her Prototype</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1924"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ixla DualCam 640</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Jazwares Star Wars no. 15256</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Jazz JDC9</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Jazz JDK235</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="13056"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Jenoptik JD-3300z3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="16640"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Jenoptik JD-4100z3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1498"> - <match key="usb.product_id" int="4102"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Jenoptik JD350 entrance</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="0"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Jenoptik JD350 video</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Jenoptik JDC 350</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10545"> - <match key="usb.product_id" int="2561"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Jolla Sailfish (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10545"> - <match key="usb.product_id" int="2565"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Jolla Sailfish (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1265"> - <match key="usb.product_id" int="24837"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">JVC Alneo XA-HD500</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2126"> - <match key="usb.product_id" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">KBGear JamCam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2856"> - <match key="usb.product_id" int="4108"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Kenwood Media Keg HD10GB7 Sport Player</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8759"> - <match key="usb.product_id" int="53512"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Kobo Arc (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8759"> - <match key="usb.product_id" int="53513"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Kobo Arc (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8759"> - <match key="usb.product_id" int="45320"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Kobo Arc 7 HD</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1559"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C1530</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1547"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C183</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1406"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1418"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C310</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1420"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C330</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1421"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C340</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1417"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C360</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1450"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C433</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1434"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C530</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1442"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C533</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1463"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C613</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1466"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C633</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1447"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C643</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1455"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C653</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1454"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C743</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1475"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C813</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1449"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C875</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1478"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak C913</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1436"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CD33</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1376"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX4200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1376"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX4210</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1333"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX4230</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1382"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX4300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1382"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX4310</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1396"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX6200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1395"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX6230</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1393"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX6330</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1412"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX6445</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1401"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX7220</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1400"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX7300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1400"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX7310</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1402"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX7330</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1403"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX7430</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1414"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX7525</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1404"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak CX7530</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DC220</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="288"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DC240</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="289"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DC240 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="272"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DC260</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="273"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DC265</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="304"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DC280</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="274"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DC290</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="306"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DC3400</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="352"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DC4800</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="305"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DC5000</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1317"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX3215</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1280"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX3500</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1296"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX3600</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1328"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX3700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="368"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX3900</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1365"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX4330</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1398"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX4530</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1360"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX4900</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1392"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX6340</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1394"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX6440</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1397"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX6490</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1405"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX7440</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1407"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX7590</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1399"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak DX7630</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="768"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak EZ200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1344"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak LS420</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1384"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak LS443</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1385"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak LS663</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1381"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak LS743</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1383"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak LS753</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1486"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak M1063</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1536"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak M531</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1439"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak M753</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1473"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak M863</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1453"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak M883</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1413"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak M893 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1024"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak MC3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1426"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak P850</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1427"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak P880</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1422"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak V530</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1423"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak V550</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1425"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak V570</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1440"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak V603</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1452"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak V610</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1451"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak V705</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1464"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak V803</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1437"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z612</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1438"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z650</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1415"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1459"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z710</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1460"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z712 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1408"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z730</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1416"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z740</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1027"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z7590</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1461"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z812 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1429"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z8612 IS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1487"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z915</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1485"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak Z950</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1034"> - <match key="usb.product_id" int="1472"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Kodak ZD710</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1224"> - <match key="usb.product_id" int="1826"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Konica e-mini</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4907"> - <match key="usb.product_id" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE A2 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4907"> - <match key="usb.product_id" int="25"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE A200 (PictBridge mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4907"> - <match key="usb.product_id" int="9"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE X21 (PictBridge mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4907"> - <match key="usb.product_id" int="7"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE Z2 (PictBridge mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4907"> - <match key="usb.product_id" int="24"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE Z3 (PictBridge mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4907"> - <match key="usb.product_id" int="34"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE Z5 (PictBridge mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7994"> - <match key="usb.product_id" int="4102"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Kurio 7S</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1154"> - <match key="usb.product_id" int="2425"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Kyocera DuraForce</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1154"> - <match key="usb.product_id" int="2064"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Kyocera KYL22</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1154"> - <match key="usb.product_id" int="1393"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Kyocera Rise</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1154"> - <match key="usb.product_id" int="1434"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Kyocera Torque Model E6715</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36945"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Lego Bionicle</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9077"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Leica D-LUX 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6808"> - <match key="usb.product_id" int="2"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Leica M9</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30519"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo A3500-F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30507"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo A5500-F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="29848"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo A820</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30140"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaPad A3000 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30142"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaPad A3000 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30018"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaTab A2109A</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30077"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaTab S2210a</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30440"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaTab S5000</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="29706"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo K1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30851"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo K3 Note</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30133"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo K900 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30554"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo LifeTab E733X</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="29900"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo Lifetab S9512</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="3074"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo P70-A</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="29847"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo P700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="29862"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo P780</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="29944"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo S660</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30488"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo S930</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="29724"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo ThinkPad Tablet</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30450"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo Toga Tablet B6000-F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30698"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo Vibe Z2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30463"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo Yoga Tablet 10 B8000-H</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="30641"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Lenovo Yoga Tablet 2 Pro</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25073"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. Android phone (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25081"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. Android phone (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25215"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. G3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25198"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. G3 (VS985)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="24859"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. GR-500 Music Player</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="24719"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. KC910 Renoir Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="24882"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. KM900</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25406"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG G Flex 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25145"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG VS870</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25149"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG VS890</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25116"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG VS980</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25125"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG2 Optimus</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="24986"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG8575</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1086"> - <match key="usb.product_id" int="28736"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. T54</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1086"> - <match key="usb.product_id" int="28849"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. UP3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25372"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. Various E and P models</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="25189"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. VK810</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="24592"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. VX8550 V CAST Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4100"> - <match key="usb.product_id" int="24581"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">LG T5100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="16640"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Lifetec LT 5995</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="5073"> - <match key="usb.product_id" int="28674"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Logik LOG DAX MP3 and DAB Player</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1133"> - <match key="usb.product_id" int="2304"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Logitech Clicksmart 310</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1133"> - <match key="usb.product_id" int="2384"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Logitech Pocket Digital</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="16640"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Maginon SX-410z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="13056"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Maginon SX330z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Magpix B350</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1276"> - <match key="usb.product_id" int="20555"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Maxell Max Pocket</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1647"> - <match key="usb.product_id" int="33900"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Maxfield G-Flash NG 1GB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Media-Tech mt-406</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3725"> - <match key="usb.product_id" int="80"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">MediaTek Inc MT5xx and MT6xx SoCs</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1032"> - <match key="usb.product_id" int="45066"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Medion Lifetab P9514</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6127"> - <match key="usb.product_id" int="29827"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Medion Lifetab P9516</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1276"> - <match key="usb.product_id" int="20554"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Medion MD 5319</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="16640"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Medion MD 6000</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8709"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Medion MD 6126</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="16642"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Medion MD 9700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1647"> - <match key="usb.product_id" int="34128"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Medion MD8333 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1647"> - <match key="usb.product_id" int="34184"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Medion MD8333 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1032"> - <match key="usb.product_id" int="45065"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Medion MD99000 (P9514)/Olivetti Olipad 110</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4721"> - <match key="usb.product_id" int="8210"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Megafon Login+</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8222"> - <match key="usb.product_id" int="17067"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Megafon MFLogin3T</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10821"> - <match key="usb.product_id" int="8200"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Meizu MX Phone (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10821"> - <match key="usb.product_id" int="3074"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Meizu MX Phone (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4310"> - <match key="usb.product_id" int="8960"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Memorex or iRiver MMP 8585/8586 or iRiver E200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3504"> - <match key="usb.product_id" int="21874"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Micro-Star International P610/Model MS-5557</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Micromaxx Digital Camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1118"> - <match key="usb.product_id" int="1600"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Microsoft Kin 1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1118"> - <match key="usb.product_id" int="1570"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Microsoft Windows MTP Simulator</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1118"> - <match key="usb.product_id" int="1260"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Microsoft Windows Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1118"> - <match key="usb.product_id" int="1808"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Microsoft Zune</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1118"> - <match key="usb.product_id" int="1598"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Microsoft Zune HD</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1118"> - <match key="usb.product_id" int="61642"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Microsoft/HTC HTC 8S</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1118"> - <match key="usb.product_id" int="201"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Microsoft/Intel Bandon Portable Media Center</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1118"> - <match key="usb.product_id" int="1601"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Microsoft/Sharp/nVidia Kin TwoM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3141"> - <match key="usb.product_id" int="32776"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Mini Shotz ms-350</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2125"> - <match key="usb.product_id" int="3"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Minton S-Cam F5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Mitek CD10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Mitek CD30P</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="24778"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola A1200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="28808"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Atrix MB860 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="25807"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Atrix XT687 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11826"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Atrix/Razr HD (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11827"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Atrix/Razr HD (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11879"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Droid Maxx (XT1080)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11941"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Droid Turbo (XT1254)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11944"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Droid Turbo Verizon</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11880"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Droid Ultra</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="16854"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Droid X/MB525 (Defy)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="16858"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola DROID2 (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="17063"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola DROID2 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="17279"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola DROID4</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="17267"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola DROID4 (PTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="18449"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola IdeaPad K1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="16860"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Milestone / Verizon Droid</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="28874"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Milestone X2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11894"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Moto G (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11906"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Moto G (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11908"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Moto G (XT1032)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11874"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Moto X (XT1053)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11875"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Moto X (XT1058)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11878"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Moto X (XT1080)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="25619"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola MTP Test Command Interface</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="25781"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Razr D1/D3/i (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="25782"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Razr D1/D3/i (MTP+?)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11856"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola RAZR M XT907 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="11857"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola RAZR M XT907 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="25621"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola RAZR2 V8/U9/Z6</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="10853"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola V3m/V750 verizon</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="28835"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Xoom (Factory test)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="28840"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Xoom (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="28841"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Xoom (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="17169"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Xoom 2 Media Edition</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="17158"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Xoom 2 Media Edition (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="16847"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola Xoom 2 Media Edition (ID3)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="28941"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola XT890/907/Razr (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="28942"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola XT890/907/Razr (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8888"> - <match key="usb.product_id" int="17250"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Motorola XT912/XT928</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1375"> - <match key="usb.product_id" int="49664"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Mustek gSmart 300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1375"> - <match key="usb.product_id" int="41808"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Mustek gSmart 350</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1375"> - <match key="usb.product_id" int="49696"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Mustek gSmart mini</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1375"> - <match key="usb.product_id" int="50208"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Mustek gSmart mini 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1375"> - <match key="usb.product_id" int="50464"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Mustek gSmart mini 3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2726"> - <match key="usb.product_id" int="38401"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">MyMusix PD-6070</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1033"> - <match key="usb.product_id" int="806"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">NEC Casio C811</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1033"> - <match key="usb.product_id" int="1074"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">NEC Casio CA-201L</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1033"> - <match key="usb.product_id" int="578"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">NEC FOMA N01A</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1026"> - <match key="usb.product_id" int="22120"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nextar MA715A-8R</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Nexxtech Mini Digital Camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="770"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="279"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="290"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2200 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="291"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2200v1.1 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="265"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="277"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="289"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3200 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="273"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="285"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3700 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="301"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="516"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4200 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="271"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4300 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="267"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="304"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4600 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="305"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4600a (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="297"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4800 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="275"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="518"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5200 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="281"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5400 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="302"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5600 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="269"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5700 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="309"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5900 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="313"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 7600 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="311"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 7900 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="287"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 8700 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="259"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon CoolPix 880</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="295"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 8800 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="274"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 885 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="401"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 9400 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="258"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon CoolPix 990</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="550"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix A (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="392"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix AW100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="520"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L1 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="779"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L10 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="777"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L11 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="382"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L110 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="351"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L12 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="389"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L120 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="789"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L16 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="792"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L19 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="791"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L20 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="804"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L23 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="835"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L27</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="773"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L4 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="402"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L820 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="320"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P1 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="381"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="322"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P2 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="545"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P300 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P330 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="524"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P4 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="361"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P50 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="388"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="347"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P5000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="547"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P510 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="355"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P5100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="552"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P520 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="785"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P60 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="367"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P6000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="383"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="395"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="549"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7700 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="553"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7800 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="363"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P80 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="364"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P80 v1.1 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="371"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P90 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="823"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S01</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="838"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S02</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="334"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="353"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S200 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="375"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S220 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="376"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S225 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="801"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="813"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2600 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="831"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="795"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="800"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="820"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="810"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3300 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="324"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S4 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="809"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S4300 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="349"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="544"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S5100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="334"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S6 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="369"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S60 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="542"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S6000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="540"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S620 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="343"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S7c (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="543"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S8000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="546"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S8200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="390"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S9100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="403"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S9500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="843"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S9700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix SQ (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1028"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon D2H SLR (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1036"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon D2Hs (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1032"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon D2X SLR (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1052"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon D3 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1034"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon D50 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1026"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1040"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D200 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1046"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D2Xs (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1050"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D300 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1060"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1061"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D300s (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1063"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1068"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1075"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1062"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3s (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1056"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3x (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1067"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D4</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1044"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D40 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1048"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D40x (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1077"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D4s</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1059"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1065"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1071"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1073"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1054"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D60 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1069"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D600</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D610</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1030"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D70 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1058"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D700 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1064"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D7000 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1038"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D70s (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1072"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D7100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1079"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D750</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1042"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D80 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1066"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D800</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1070"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D800E</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1078"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D810</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1057"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon DSC D90 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1538"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon J1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1539"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon J2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1541"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon J3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1545"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon J4</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1542"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon S1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1537"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon V1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1200"> - <match key="usb.product_id" int="1540"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nikon V2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1276"> - <match key="usb.product_id" int="20554"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">nisis Quickpix Qp3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="548"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">NogaNet TDC-15</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="705"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 2710</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="101"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 3109c Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="95"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 3110c Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1122"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 3250 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="494"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 3710</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="521"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5130 XpressMusic</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1214"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5200 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="738"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5230</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1210"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5300 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="108"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5310 XpressMusic</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="234"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5320 XpressMusic</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1150"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5500 Sport Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="553"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5530</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1204"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5700 XpressMusic Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="340"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5800 XpressMusic</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="341"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5800 XpressMusic v2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="345"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 5800 XpressMusic v3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="46"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 6120c Classic Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="152"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 6210 Navigator</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="141"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 6220 Classic</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="60"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 6500c Classic Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="663"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 6600i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1491"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia 808 PureView</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1426"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia C5-00</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="961"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia C7</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="973"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia C7 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="463"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia E52</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="815"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia E6</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="377"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia E63</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="229"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia E66</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="820"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia E7</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="821"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia E7 (Ovi mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="228"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia E71</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="417"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia E71x</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="545"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia E72</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1788"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia Lumia (RM-975)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1638"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia Lumia 301</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1633"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia Lumia WP8</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1316"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1160"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Nokia N73</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1233"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N73 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1249"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N75 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="121"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N78 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="390"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N79</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="766"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N8</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="770"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N8 (Ovi mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1265"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N80 Internet Edition (Media Player)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="10"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N81 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="116"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N82 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="146"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N85 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1306"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N9</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1157"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N91 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1144"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N93 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1253"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N93i Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1263"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N95 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="110"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N95 Mobile Phone 8GB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="978"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N950</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="57"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N96 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="501"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N97</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="619"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N97 mini</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="500"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia N97-1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="628"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia X6</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1057"> - <match key="usb.product_id" int="1768"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Nokia XL</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="5891"> - <match key="usb.product_id" int="1"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">NormSoft, Inc. Pocket Tunes</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="5891"> - <match key="usb.product_id" int="2"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">NormSoft, Inc. Pocket Tunes 4</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2389"> - <match key="usb.product_id" int="28841"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">nVidia CM9-Adam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2389"> - <match key="usb.product_id" int="46080"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">nVidia Shield (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2389"> - <match key="usb.product_id" int="52999"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">nVidia Shield (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2389"> - <match key="usb.product_id" int="52994"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">nVidia Tegra Note</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2389"> - <match key="usb.product_id" int="28928"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">nVidia Various tablets (ID1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2389"> - <match key="usb.product_id" int="28930"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">nVidia Various tablets (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7763"> - <match key="usb.product_id" int="6"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">O2 Sistemas ZoltarTV</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus C-2100UZ</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus C-3000Z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus C-3030Z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="276"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus C-310Z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="276"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus C-350Z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="276"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus C-5500Z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="276"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus C-55Z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="276"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus D-540Z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="276"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus D-560Z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="272"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus E series (Control)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="303"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus E-M5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="303"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus E-PL5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="278"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus FE4000</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="276"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus IR-300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="275"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus mju 500</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="303"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus SP-720UZ</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="276"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus X-100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="276"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus X-250</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="278"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus X920</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1972"> - <match key="usb.product_id" int="278"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Olympus X925</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8921"> - <match key="usb.product_id" int="10085"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Oppo Find 7 (ID 1)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8921"> - <match key="usb.product_id" int="10100"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Oppo Find 7 (ID 2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8921"> - <match key="usb.product_id" int="10099"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Oppo X9006</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Oregon Scientific DShot II</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Oregon Scientific DShot III</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FS62</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ20</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ38</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ45</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ50</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-GF1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-LS2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-LS3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-LX7</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-TZ15</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-TZ18</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="9076"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-TZ8</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="8517"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Panasonic P905i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1242"> - <match key="usb.product_id" int="8536"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Panasonic P906i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4204"> - <match key="usb.product_id" int="61443"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Pantech Crux</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7501"> - <match key="usb.product_id" int="20534"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Pegatron Chagall</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7501"> - <match key="usb.product_id" int="20533"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Pegatron Chagall (ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7501"> - <match key="usb.product_id" int="20554"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Pegatron Hudl 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Pencam TEVION MD 9456</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="9723"> - <match key="usb.product_id" int="357"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Pentax K3 (PTP Mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2583"> - <match key="usb.product_id" int="13"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Pentax Optio 43WR</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2583"> - <match key="usb.product_id" int="247"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Pentax Optio W90</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2726"> - <match key="usb.product_id" int="38658"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Perception Digital, Ltd Gigaware GX400</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8316"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear Aria</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8377"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear Ariaz</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8504"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear Ariaz/97</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="357"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear Audio</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8311"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear Muse</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8334"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA1VBE08KX/78</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8196"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA3345</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="2135"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA5145</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="2126"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA6014/SA6015/SA6024/SA6025/SA6044/SA6045</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8194"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA6125/SA6145/SA6185</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="335"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA9200</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8309"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear ViBE SA1VBE04</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8315"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear ViBE SA1VBE04/08</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8375"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear VIBE SA2VBE[08|16]K/02</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8421"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips GoGear Vibe/02</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="333"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips HDD085/00 or HDD082/17</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="332"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips HDD14XX,HDD1620 or HDD1630/17</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="491"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips HDD6320</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="331"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips HDD6320/00 or HDD6330/17</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="6411"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips i908</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="270"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Philips P44417B keychain camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8592"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips PI3900B2/58 </merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="32257"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips PSA235</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="385"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips PSA610</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="356"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips SA1115/55</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="8226"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips SA5285</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1137"> - <match key="usb.product_id" int="370"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Philips Shoqbox</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Phoebe Smartcam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2276"> - <match key="usb.product_id" int="322"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Pioneer DVR-LX60D</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2276"> - <match key="usb.product_id" int="328"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Pioneer XMP3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="270"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Pixart Gemini Keychain Camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Pixie Princess Jelly-Soft</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">PockCam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1924"> - <match key="usb.product_id" int="10376"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Polaroid DC700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1350"> - <match key="usb.product_id" int="8245"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Polaroid Freescape/MPU-433158</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1350"> - <match key="usb.product_id" int="3503"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Polaroid PDC 2300Z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Praktica Slimpix</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Precision Mini Digital Camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="271"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Precision Mini, Model HA513A</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10724"> - <match key="usb.product_id" int="4611"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Prestigio 5504 DUO </merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10724"> - <match key="usb.product_id" int="4355"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Prestigio 5505 DUO </merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1924"> - <match key="usb.product_id" int="21248"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Pretec dc530</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1276"> - <match key="usb.product_id" int="65535"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">PureDigital Ritz Disposable</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1478"> - <match key="usb.product_id" int="34816"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Gigabyte) GSmart G1342</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1478"> - <match key="usb.product_id" int="61443"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Highscreen) Omega Prime S</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1478"> - <match key="usb.product_id" int="553"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Nokia) 5530 Xpressmusic</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1478"> - <match key="usb.product_id" int="12694"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Nokia/Verizon) 6205 Balboa/Verizon Music Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1478"> - <match key="usb.product_id" int="26468"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Qualcomm (for OnePlus) One (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1478"> - <match key="usb.product_id" int="26469"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Qualcomm (for OnePlus) One (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1478"> - <match key="usb.product_id" int="36921"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Qualcomm (for PhiComm) C230w (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1478"> - <match key="usb.product_id" int="36901"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Smartfren) Andromax U</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">QuickPix QP1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3530"> - <match key="usb.product_id" int="4"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Radioshack Flatfoto</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1924"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">RCA CDS1005</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="4704"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Redmi 1S (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="4712"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Redmi HM 1S (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Request Ultra Slim</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8715"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Capilo RX</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8707"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio 300G</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8708"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio G3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8712"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio G4</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8716"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="805"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8724"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX 8</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="813"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX 8 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8717"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8722"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R1v</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="811"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R1v (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8723"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8726"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="815"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R3 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8727"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R4</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8730"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="272"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R5 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8706"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio RR30</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="829"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio RR750 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8717"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio RZ1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4042"> - <match key="usb.product_id" int="32775"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">RIM BlackBerry Storm/9650</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8719"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Rollei dr5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8719"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Rollei dr5 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37181"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar 23070 Crayola Digital Cam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37181"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar 28290 and 28292 Digital C</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37181"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar 92045 Spiderman</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar clipshot no. 1169x</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3141"> - <match key="usb.product_id" int="32771"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Digital Keychain 11199</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3141"> - <match key="usb.product_id" int="32771"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Digital no, 6637x</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3141"> - <match key="usb.product_id" int="32771"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Digital no, 67480</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="270"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Digital no. 56379 Spyshot</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="271"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Digital no. 77379</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Dora the Explorer no. 88067</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Hello Kitty no. 94009</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Kidz Cam 86379</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Kidz-Cam no. 88379</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Micro Digital 2428x</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Nickelodeon iCarly no. 88061</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="271"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar no. 1638x CyberPix</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar no. 75379</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar no. 81890</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar no. 91379</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar no. 98379</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Star Wars kit no. 92022</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sakar Sticker Wizard no. 59379</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26726"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Samsung EK-GC100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26407"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung F250 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26720"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung Galaxy models (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26716"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung Galaxy models (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26743"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung Galaxy models Kies mode</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26450"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung GT-B2700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26799"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung GT-B2710/Xcover 271</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="57868"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung GT-S5230</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26649"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung GT-S8500</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="1188"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung I550W Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20255"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung Jet S8000</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26420"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung Juke (SCH-U470)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26178"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung M7600 Beat/GT-S8300T/SGH-F490/S8300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="5132"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Samsung NX1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="4996"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Samsung NX1000</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26698"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Samsung S5620</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26467"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung SAMSUNG Trance</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26377"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung U600 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26793"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung Vibrant SGH-T959/Captivate/Media player mode</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="26370"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung X830 Mobile Phone</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20526"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YH-820</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20509"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YH-920 (501d)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20514"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YH-920 (5022)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20527"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YH-925(-GS)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20516"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YH-925GS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="23055"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YH-999 Portable Media Center/SGH-A707/SGH-L760V/SGH-U900/Verizon Intensity/Fascinate</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20531"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YH-J70J</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="1033"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-900</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20567"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-F2J</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20609"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-K3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20570"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-K5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20760"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-M1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20611"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-P2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20762"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-P3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20757"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-Q1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20765"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-Q2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20784"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-Q3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20773"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-R0</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20751"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-R1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20782"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-R2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20625"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-S3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20619"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-S5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20618"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-T10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20551"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-T7J</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20607"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-T9</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20564"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-U2J (YP-U2JXB/XAA)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20605"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-U3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20627"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-U4</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20769"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-U5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20791"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-Z3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1256"> - <match key="usb.product_id" int="20540"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Samsung YP-Z5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29712"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa c150</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29776"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa c240/c250</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29778"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa c250 v2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29746"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29748"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip v2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29924"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip Zip</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29904"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip+</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29824"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Connect</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29728"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa e200/e250/e260/e270/e280</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29730"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa e260/e280 v2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29792"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Express</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29888"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Fuze</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29890"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Fuze v2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29920"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Fuze+</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29697"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa m200-tcc (MTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29696"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa m230/m240</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29744"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa m240/m250</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1921"> - <match key="usb.product_id" int="29872"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa View</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1140"> - <match key="usb.product_id" int="560"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sanyo VPC-C5 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1943"> - <match key="usb.product_id" int="35073"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35a</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1943"> - <match key="usb.product_id" int="35081"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35b</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1943"> - <match key="usb.product_id" int="35089"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35c</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2125"> - <match key="usb.product_id" int="4097"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35d</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Scott APX 30</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="851"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sea & Sea 2G (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="8718"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Sea & Sea 5000G</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1482"> - <match key="usb.product_id" int="807"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sea & Sea 5000G (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Shark 2-in-1 Mini</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Shark SDC-513</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Shark SDC-519</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1245"> - <match key="usb.product_id" int="38497"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SHARP Corporation SBM203SH</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1245"> - <match key="usb.product_id" int="38602"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SHARP Corporation SH-06E</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1161"> - <match key="usb.product_id" int="49189"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SHARP Corporation SH930W</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="270"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Shift3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1647"> - <match key="usb.product_id" int="40976"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SigmaTel Inc. MTPMSCN Audio Player</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3191"> - <match key="usb.product_id" int="4113"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SiPix Blink 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3191"> - <match key="usb.product_id" int="4117"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SiPix CAMeleon</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3191"> - <match key="usb.product_id" int="4098"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SiPix SC2100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3191"> - <match key="usb.product_id" int="4112"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SiPix Snap</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3428"> - <match key="usb.product_id" int="4097"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SiPix Stylecam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3191"> - <match key="usb.product_id" int="4097"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SiPix Web2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6390"> - <match key="usb.product_id" int="258"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sirius Stiletto</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6390"> - <match key="usb.product_id" int="272"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sirius Stiletto 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="13056"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Skanhex SX-330z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7132"> - <match key="usb.product_id" int="64191"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Slacker Inc. Slacker Portable Media Player</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3530"> - <match key="usb.product_id" int="2"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SMaL Ultra-Pocket</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3783"> - <match key="usb.product_id" int="4104"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">So. Show 301</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1870"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A3000</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1990"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A5000 (Control)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="2391"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A5100 (Control)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="2279"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A5100 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="2382"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A6000 (Control)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="2231"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A6000 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="2387"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A77 M2 (Control)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="2381"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A7r (Control)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="2388"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A7S (Control)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="2274"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A7S (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="4756"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony DCR-SR75</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="704"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-A100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="743"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-A900 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-F707V (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-F717 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-F828 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-H1 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-H2 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-H5 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1347"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX100V (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1567"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX200V (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1774"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX300 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1169"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX5V (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="2221"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX60V (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-N2 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P10 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P120 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P200 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P30 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P31 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P32 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P41 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P43 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P5 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P50 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P51 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P52 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P71 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P72 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P73 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P92 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-P93 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-R1 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1323"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-RX1 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1322"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-RX100 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1867"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-RX100M2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-S40 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-S60 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="662"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-S730 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-S75 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="662"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-S780 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-S85 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-T1 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-T10 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-T3 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-U10 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-U20 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-V1 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-W1 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-W12 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="835"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-W130 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="760"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-W200 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-W35 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1340"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-W510 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony DSC-W55 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20853"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY IS12S Xperia Acro HD MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="41333"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY IS12S Xperia Acro HD MTP+UMS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="45429"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY IS12S Xperia Acro MTP+UMS+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="370"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT22i Xperia P MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20850"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT22i Xperia P MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16754"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT22i Xperia P MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="390"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT25i Xperia V MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20870"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT25i Xperia V MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16774"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT25i Xperia V MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="361"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT26i Xperia S MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20841"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT26i Xperia S MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16745"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT26i Xperia S MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="373"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD IS12S MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16757"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD IS12S MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="374"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD SO-03D MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16758"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD SO-03D MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="375"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20855"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16759"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="41335"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+UMS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="45431"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+UMS+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="376"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT29i Xperia GX MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20856"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT29i Xperia GX MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16760"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT29i Xperia GX MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="386"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT30p Xperia T MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20866"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT30p Xperia T MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16770"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY LT30p Xperia T MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="371"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20851"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16755"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="41331"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+UMS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="45427"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+UMS+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony MVC-CD300 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony MVC-CD500 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1839"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony NEX-3N (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1656"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony NEX-6</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="860"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A726/NWZ-A728/NWZ-A768</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="805"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A815/NWZ-A818</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="859"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A826/NWZ-A828/NWZ-A829</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1028"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A845</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="878"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B135</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="984"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B142F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1214"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B153F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1434"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B163F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1673"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B173F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1020"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E344/E345</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1227"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E354</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="901"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E436F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1021"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E445</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1446"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E464</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="806"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S516</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1022"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S545</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="807"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S615F/NWZ-S616F/NWZ-S618F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="910"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S638F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="858"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S716F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="908"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S739F</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1228"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S754</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1448"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S765</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="904"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-W202</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1211"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-W252B</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="919"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-X1050B/NWZ-X1060B</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="920"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony NWZ-X1051/NWZ-X1061</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="78"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony PTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1191"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony SLT-A35 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="801"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony SLT-A350 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1187"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony SLT-A55 (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1641"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony SLT-A57</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1846"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony SLT-A58</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1847"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony SLT-A58 (Control)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1396"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony SLT-A65V (PTP mode)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1653"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">Sony SLT-A99v</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20854"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY SO-03D Xperia Acro HD MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="41334"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY SO-03D Xperia Acro HD MTP+UMS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="45430"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY SO-03D Xperia Acro MTP+UMS+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="385"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY SO-05D Xperia SX MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20865"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY SO-05D Xperia SX MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16769"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY SO-05D Xperia SX MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1233"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony Sony Tablet P1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1459"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony Sony Tablet S</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1356"> - <match key="usb.product_id" int="1460"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Sony Sony Tablet S1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="369"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST15i Xperia U MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="368"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST21i Xperia Tipo MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20848"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST21i Xperia Tipo MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16752"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST21i Xperia Tipo MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="384"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST23i Xperia Miro MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20864"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST23i Xperia Miro MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16768"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST23i Xperia Miro MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20849"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST25i Xperia U MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16753"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST25i Xperia U MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="382"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20862"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16766"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="41342"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+UMS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="45438"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+UMS+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="365"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY WT19i Live Walkman MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="408"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia A MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20888"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia A MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="419"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia C MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20899"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia C MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16803"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia C MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="396"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia E MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20876"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia E MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16780"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia E MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="444"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia E3 MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20924"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia E3 MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="444"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia E3 MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="459"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY XPeria E4g MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20939"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY XPeria E4g MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16843"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY XPeria E4g MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="392"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia J MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20872"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia J MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16776"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia J MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="402"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia L MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20882"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia L MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16786"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia L MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="411"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia M MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20891"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia M MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16795"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia M MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="427"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 Dual MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20907"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 Dual MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16811"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 Dual MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="426"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20906"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16810"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="405"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia SP MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20885"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia SP MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16789"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia SP MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="397"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP 1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="404"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20877"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+ADB 1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20884"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+ADB 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16781"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+CDROM 1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16788"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+CDROM 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="403"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20883"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16787"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="438"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="406"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="412"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP (ID3)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20918"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20886"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+ADB (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20892"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+ADB (ID3)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16796"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+CDROM (ID3)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="423"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 Compact D5503</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16807"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 Compact D5503 MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20903"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 Compact MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="414"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20894"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16798"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="431"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z2 MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20911"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z2 MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16815"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z2 MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="443"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 Compact MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20923"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 Compact MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16827"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 Compact MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="442"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20922"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16826"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="393"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZL MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20873"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZL MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16777"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZL MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="407"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZR MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20887"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZR MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="326"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson c1605 Xperia Dual E MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20806"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson c1605 Xperia Dual E MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="217"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson C702</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="212"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson C902</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="239"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson C905</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="343"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson IS12S Xperia Acro MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20823"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson IS12S Xperia Acro MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16727"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson IS12S Xperia Acro MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="334"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson j108i (Cedar)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="53572"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson j10i (Elm)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="324"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson j10i2 (Elm)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="57344"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson K550i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="117"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson K850i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20815"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson LT15i Xperia Arc MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="335"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson LT15i Xperia arc S MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="346"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson MK16i Xperia MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20826"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson MK16i Xperia MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="342"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson MT11i Xperia Neo MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20822"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson MT11i Xperia Neo MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="349"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson R800/R88i Xperia Play MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20829"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson R800/R88i Xperia Play MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="358"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson SK17i Xperia Mini Pro MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20838"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson SK17i Xperia Mini Pro MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="359"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST15i Xperia Mini MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20839"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST15i Xperia Mini MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="360"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST17i Xperia Active MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20840"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST17i Xperia Active MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="16744"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST17i Xperia Active MTP+CDROM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="353"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST18a Xperia Ray MTP</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20833"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST18i Xperia Ray MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="251"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson T700</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="307"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson U5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="314"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson U8i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="4296"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson W302</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="243"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson W595</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="261"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson W705/W715</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="198"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson W760i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="179"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson W890i</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="245"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson W902</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="118"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson W910</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="218"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson W980</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="274"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson W995</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4046"> - <match key="usb.product_id" int="20845"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">SonyEricsson WT19i Live Walkman MTP+ADB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Soundstar TDC-35</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SpyPen Axys</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SpyPen Cleo</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SpyPen Luxo</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SpyPen Memo</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SpyPen Xion</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SQ chip camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">StarCam CP086</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">STM USB Dual-mode camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Stop & Shop 87096</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">STV0680</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37181"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Suprema Digital Keychain Camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">SY-2107C</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1105"> - <match key="usb.product_id" int="53512"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">TCL Alcatel one touch 986+</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="5073"> - <match key="usb.product_id" int="28695"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Technika MP-709</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2726"> - <match key="usb.product_id" int="12305"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Tevion MD 81488</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1691"> - <match key="usb.product_id" int="12341"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Thomson / RCA Lyra HC308A</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1691"> - <match key="usb.product_id" int="1911"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Thomson / RCA Opal / Lyra MC4002</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1691"> - <match key="usb.product_id" int="1908"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Thomson EM28 Series</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1691"> - <match key="usb.product_id" int="1916"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Thomson Lyra MC5104B (M51 Series)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1691"> - <match key="usb.product_id" int="12314"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Thomson RCA H106</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1691"> - <match key="usb.product_id" int="12328"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Thomson scenium E308</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2329"> - <match key="usb.product_id" int="256"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Tiger Fast Flicks</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Timlex CP075</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="5008"> - <match key="usb.product_id" int="21589"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">TomTom Rider 40</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4571"> - <match key="usb.product_id" int="4096"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Topfield TF5000PVR</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="2403"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Excite AT300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="12"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="9"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MEGF-40</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="29"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MET401</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="26"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MEU201</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="24"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MEU202</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="17"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat P10</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="15"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat P20</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="16"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat S</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="25"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat T</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="22"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat U</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="20"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat V30</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4402"> - <match key="usb.product_id" int="17207"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M11</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4402"> - <match key="usb.product_id" int="17202"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M60</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4402"> - <match key="usb.product_id" int="17205"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M61</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="4402"> - <match key="usb.product_id" int="17204"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M65</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2352"> - <match key="usb.product_id" int="28928"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Toshiba Thrive AT100/AT105</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="13056"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Traveler SX330z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3478"> - <match key="usb.product_id" int="16640"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Traveler SX410z</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7784"> - <match key="usb.product_id" int="2"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">TrekStor i.Beat Organix 2.0</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1026"> - <match key="usb.product_id" int="1553"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">TrekStor i.Beat Sweez FM</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1647"> - <match key="usb.product_id" int="33834"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">TrekStor Vibez 8/12GB</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2125"> - <match key="usb.product_id" int="3"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Trust Familycam 300</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1750"> - <match key="usb.product_id" int="46"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Trust PowerC@m 350FS</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1750"> - <match key="usb.product_id" int="45"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Trust PowerC@m 350FT</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2250"> - <match key="usb.product_id" int="272"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Trust Spyc@m 100</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1276"> - <match key="usb.product_id" int="20554"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Trust Spyc@m 500F FLASH</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1943"> - <match key="usb.product_id" int="32794"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Typhoon StyloCam</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1363"> - <match key="usb.product_id" int="514"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">UMAX AstraPen</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3428"> - <match key="usb.product_id" int="4097"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">UMAX AstraPix 320s</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.interface.class" int="6"> - <match key="usb.interface.subclass" int="1"> - <match key="usb.interface.protocol" int="1"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">ptp</merge> - <merge key="camera.libgphoto2.name" type="string">USB PTP Class Camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - <match key="usb.vendor_id" int="8711"> - <match key="usb.product_id" int="1"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Various Viewpia DR/bq Kepler</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8711"> - <match key="usb.product_id" int="17"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Various Viewpia DR/bq Kepler Debugging</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1032"> - <match key="usb.product_id" int="14489"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Verizon Ellipsis 7</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">ViviCam3350</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="37152"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">ViviCam5B</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2425"> - <match key="usb.product_id" int="551"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Vivitar Freelance</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="270"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Vivitar Mini Digital Camera</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="2362"> - <match key="usb.product_id" int="271"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Vivitar Vivicam 55</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3141"> - <match key="usb.product_id" int="32778"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Vivitar Vivicam3350B</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Vivitar Vivicam35</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1161"> - <match key="usb.product_id" int="57617"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Vizio (for Lenovo) LIFETAB S9714</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1161"> - <match key="usb.product_id" int="49190"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Vizio Unknown 1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1161"> - <match key="usb.product_id" int="57408"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Vizio VTAB1008</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1329"> - <match key="usb.product_id" int="8193"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Wacom Cintiq Companion Hybrid (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="3141"> - <match key="usb.product_id" int="32769"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">Wild Planet Digital Spy Camera 70137</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7763"> - <match key="usb.product_id" int="7"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Wyplay Wyplayer</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="4968"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Xiaomi HM NOTE 1LTEW MIUI (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="4680"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Xiaomi Hongmi (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="4672"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Xiaomi Hongmi (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="61443"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-2 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="36921"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-2 (MTP+ADB)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="65352"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-2s (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="872"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-3 (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="864"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-3w (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10007"> - <match key="usb.product_id" int="1632"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Xiaomi MiPad (MTP)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="8711"> - <match key="usb.product_id" int="6"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">YiFang BQ Tesla</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10518"> - <match key="usb.product_id" int="37197"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Yota Phone 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10518"> - <match key="usb.product_id" int="61443"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">Yota Phone 2 (ID2)</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="7871"> - <match key="usb.product_id" int="32553"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">YU Yureka Vodafone smart turbo 4</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="1054"> - <match key="usb.product_id" int="24576"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">ZiiLABS Zii EGG</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="10096"> - <match key="usb.product_id" int="36956"> - <merge key="info.category" type="string">camera</merge> - <addset key="info.capabilities" type="strlist">camera</addset> - <merge key="camera.access_method" type="string">proprietary</merge> - <merge key="camera.libgphoto2.name" type="string">ZINA Mini Digital Keychain Camer</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6610"> - <match key="usb.product_id" int="835"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">ZTE Grand X In</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6610"> - <match key="usb.product_id" int="65486"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">ZTE V5</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6610"> - <match key="usb.product_id" int="580"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">ZTE V55 ID 1</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6610"> - <match key="usb.product_id" int="581"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">ZTE V55 ID 2</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6610"> - <match key="usb.product_id" int="774"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">ZTE V790/Blade 3</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6610"> - <match key="usb.product_id" int="775"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">ZTE V880E</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - <match key="usb.vendor_id" int="6610"> - <match key="usb.product_id" int="899"> - <merge key="info.category" type="string">portable_audio_player</merge> - <addset key="info.capabilities" type="strlist">portable_audio_player</addset> - <merge key="portable_audio_player.access_method" type="string">user</merge> - <merge key="portable_audio_player.type" type="string">mtp</merge> - <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append> - <merge key="camera.libgphoto2.name" type="string">ZTE V985</merge> - <merge key="camera.libgphoto2.support" type="bool">true</merge> - </match> - </match> - </match> - </device> -</deviceinfo> diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.31.bb index 7a691c611d..1d0b37826d 100644 --- a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb +++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.31.bb @@ -1,7 +1,7 @@ SUMMARY = "libgphoto2 allows you to access digital cameras" SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=477378d78dfeeaa93826ee4ec7c643fb" DEPENDS = "libtool jpeg virtual/libusb0 libexif zlib libxml2" @@ -10,14 +10,11 @@ DEPENDS = "libtool jpeg virtual/libusb0 libexif zlib libxml2" # They are release specific, so please regen when adding new releases SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2;name=libgphoto2 \ - file://10-camera-libgphoto2-device.fdi \ - file://10-camera-libgphoto2.fdi \ file://40-libgphoto2.rules \ file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \ + file://0001-configure-Filter-out-buildpaths-from-CC.patch \ " - -SRC_URI[libgphoto2.md5sum] = "084d220d078d28c0c7a3ba13f4476128" -SRC_URI[libgphoto2.sha256sum] = "e757416d1623e01a9d0d294b2e790162e434c0964f50d3b7ff1a3424b62a2906" +SRC_URI[libgphoto2.sha256sum] = "4f81c34c0b812bee67afd5f144940fbcbe01a2055586a6a1fa2d0626024a545b" inherit autotools pkgconfig gettext lib_package @@ -27,28 +24,30 @@ PACKAGECONFIG ??= "" PACKAGECONFIG[gd] = ",--without-gdlib,gd" PACKAGECONFIG[serial] = "--enable-serial,--disable-serial,lockdev" -do_configure_append() { +do_configure:prepend() { + rm -rf ${S}/libgphoto2_port/auto-m4/* + rm -rf ${S}/auto-m4/* +} + +do_configure:append() { cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/libgphoto2_port/po/ cd ${S}/libgphoto2_port/ autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths cd ${S} } -do_install_append() { - install -d ${D}${datadir}/hal/fdi/information/20thirdparty - install -m 0644 ${WORKDIR}/*.fdi ${D}${datadir}/hal/fdi/information/20thirdparty/ - +do_install:append() { install -d ${D}${sysconfdir}/udev/rules.d/ - install -m 0755 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/ + install -m 0644 ${UNPACKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/ } PACKAGES =+ "libgphotoport libgphoto2-camlibs" -FILES_libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*" -RRECOMMENDS_${PN} = "libgphoto2-camlibs" +FILES:libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*" +RRECOMMENDS:${PN} = "libgphoto2-camlibs" -FILES_libgphotoport = "${libdir}/libgphoto2_port.so.*" +FILES:libgphotoport = "${libdir}/libgphoto2_port.so.*" -FILES_${PN} += "${nonarch_base_libdir}/udev/* ${datadir}/hal" -FILES_${PN}-dbg += "${libdir}/*/*/.debug" -FILES_${PN}-dev += "${libdir}/*/*/*.la" -FILES_${PN}-doc += "${datadir}/libgphoto2_port/0.12.0/vcamera/README.txt" +FILES:${PN} += "${nonarch_base_libdir}/udev/*" +FILES:${PN}-dbg += "${libdir}/*/*/.debug" +FILES:${PN}-dev += "${libdir}/*/*/*.la" +FILES:${PN}-doc += "${datadir}/libgphoto2_port/0.12.?/vcamera/README.txt" diff --git a/meta-oe/recipes-graphics/graphviz/graphviz/0001-Autotools-fix-do-not-put-prefix-based-paths-in-compi.patch b/meta-oe/recipes-graphics/graphviz/graphviz/0001-Autotools-fix-do-not-put-prefix-based-paths-in-compi.patch new file mode 100644 index 0000000000..0d3f412706 --- /dev/null +++ b/meta-oe/recipes-graphics/graphviz/graphviz/0001-Autotools-fix-do-not-put-prefix-based-paths-in-compi.patch @@ -0,0 +1,58 @@ +From 671e0d091b40ef7deb4a9d43e0dbed2a44edbec8 Mon Sep 17 00:00:00 2001 +From: Matthew Fernandez <matthew.fernandez@gmail.com> +Date: Sat, 9 Sep 2023 01:03:04 -0700 +Subject: [PATCH] Autotools: fix: do not put '$prefix' based paths in + compilation flags + +This was causing problems with cross-compilation with a dedicated sysroot, +because compilation would incorrectly use headers and libraries from the +`--prefix` path. The `--prefix` path is meant to indicate a target path to +install to, not a path from which to source dependent libraries. + +Gitlab: fixes #2442 +Reported-by: Daniel Klauer +Suggested-by: Daniel Klauer + +Upstream-Status: Backport [https://gitlab.com/graphviz/graphviz/-/commit/012d250a903e13114bce3ba40995fb957fed7848] +Signed-off-by: Daniel Klauer <daniel.klauer@gin.de> +--- + CHANGELOG.md | 3 +++ + configure.ac | 8 -------- + 2 files changed, 3 insertions(+), 8 deletions(-) + +diff --git a/CHANGELOG.md b/CHANGELOG.md +index b9b7e8e08..3a15fd256 100644 +--- a/CHANGELOG.md ++++ b/CHANGELOG.md +@@ -39,6 +39,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 + longer fails due to missing PHP files. #2388 + - Syntax for a loop in `gvmap.sh` has been corrected. This was a regression in + Graphviz 2.50.0. #2404 ++- The Autotools build system no longer uses headers and libraries from the ++ `--prefix` path given on the command line. This previously caused ++ cross-compilation to incorrectly pick up host headers and libraries. #2442 + + ## [8.0.5] – 2023-04-30 + +diff --git a/configure.ac b/configure.ac +index 573a3ee5d..7d53346de 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -190,14 +190,6 @@ if test "x${prefix}" = "xNONE"; then + AC_SUBST([prefix]) + fi + +-# automatically check for other dependencies in $prefix first +-if test "x${prefix}" != "x/usr"; then +- CPPFLAGS="$CPPFLAGS -I${prefix}/include" +- LDFLAGS="$LDFLAGS -L${prefix}/lib" +- PKG_CONFIG_PATH="$prefix/lib/pkgconfig$PATHSEPARATOR$PKG_CONFIG_PATH" +- export PKG_CONFIG_PATH +-fi +- + dnl ----------------------------------- + # Static/Shared binaries + +-- +2.34.1 + diff --git a/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch b/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch new file mode 100644 index 0000000000..99b53e2e12 --- /dev/null +++ b/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch @@ -0,0 +1,33 @@ +From 564901ab78da2b2b1bed92351dc3c102dc0a8154 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 6 Aug 2019 17:51:39 -0700 +Subject: [PATCH] Set use_tcl to be empty string if tcl is disabled + +Upstream-Status: Inappropriate [Cross-compile specific] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/configure.ac ++++ b/configure.ac +@@ -1225,7 +1225,7 @@ AC_ARG_ENABLE(tcl, + [], [enable_tcl=yes]) + + if test "x$enable_tcl" != "xyes"; then +- use_tcl="No (disabled)" ++ use_tcl="" + fi + + if test "x$use_tcl" = "x"; then +--- a/Makefile.am ++++ b/Makefile.am +@@ -11,7 +11,7 @@ pkginclude_HEADERS = $(top_builddir)/gra + dist_man_MANS = graphviz.7 + + # $(subdirs) contains the list from: AC_CONFIG_SUBDIRS +-SUBDIRS = $(subdirs) lib plugin cmd tclpkg doc contrib share graphs tests ++SUBDIRS = $(subdirs) lib plugin cmd doc contrib share graphs tests + + .PHONY: doxygen + doxygen: diff --git a/meta-oe/recipes-graphics/graphviz/graphviz/graphviz-setup.sh b/meta-oe/recipes-graphics/graphviz/graphviz/graphviz-setup.sh new file mode 100644 index 0000000000..df0be9e3ed --- /dev/null +++ b/meta-oe/recipes-graphics/graphviz/graphviz/graphviz-setup.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +echo "Setting up graphviz..." + +# Create /usr/lib/graphviz/config6 +$OECORE_NATIVE_SYSROOT/usr/bin/dot -c diff --git a/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb b/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb new file mode 100644 index 0000000000..38d738310e --- /dev/null +++ b/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb @@ -0,0 +1,121 @@ +SUMMARY = "Graph Visualization Tools" +HOMEPAGE = "http://www.graphviz.org" +LICENSE = "EPL-1.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=9109f5fc16cf963fb3cdd32781b3ce04" + +DEPENDS = " \ + bison-native \ + groff-native \ + libtool \ + gdk-pixbuf \ + cairo \ + pango \ + expat \ + freetype \ +" +DEPENDS:append:class-target = " ${BPN}-native" +DEPENDS:append:class-nativesdk = " ${BPN}-native" + +inherit autotools-brokensep pkgconfig gettext qemu + +SRC_URI = "https://gitlab.com/api/v4/projects/4207231/packages/generic/${BPN}-releases/${PV}/${BP}.tar.xz \ + file://0001-Autotools-fix-do-not-put-prefix-based-paths-in-compi.patch \ + " +# Use native mkdefs +SRC_URI:append:class-target = "\ + file://0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch \ +" +SRC_URI:append:class-nativesdk = "\ + file://graphviz-setup.sh \ +" +SRC_URI[sha256sum] = "d593695fdaa8a19297523b679ad13d3ef2027b0b7f14cc2bc23e77969ed81565" + +PACKAGECONFIG ??= "librsvg" +PACKAGECONFIG[librsvg] = "--with-librsvg,--without-librsvg,librsvg" + +EXTRA_OECONF:append = " PS2PDF=/bin/echo --disable-man-pdfs" + +EXTRA_OECONF:class-target = "\ + --with-expatincludedir=${STAGING_INCDIR} \ + --with-expatlibdir=${STAGING_LIBDIR} \ + --without-included-ltdl \ + --disable-java \ + --disable-tcl \ + --disable-r \ + --disable-sharp \ + " +EXTRA_OECONF:class-nativesdk = "\ + --with-expatincludedir=${STAGING_INCDIR} \ + --with-expatlibdir=${STAGING_LIBDIR} \ + --without-included-ltdl \ + --disable-java \ + --disable-tcl \ + --disable-r \ + --disable-sharp \ + " +EXTRA_OECONF:class-native = "\ + --disable-tcl \ + " +CFLAGS:append:class-target = " -D_typ_ssize_t=1 -D_long_double=1" +CFLAGS:append:class-nativesdk = " -D_typ_ssize_t=1 -D_long_double=1" +do_configure:prepend() { + cd ${S} + # create version.m4 and ignore libtoolize errors + ./autogen.sh NOCONFIG || true +} + +do_install:append:class-nativesdk() { + # graphviz-setup.sh must be executed at SDK installation + install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d + install -m 0755 ${UNPACKDIR}/graphviz-setup.sh ${D}${SDKPATHNATIVE}/post-relocate-setup.d +} +FILES:${PN}:class-nativesdk += "${SDKPATHNATIVE}" + +# create /usr/lib/graphviz/config6 +graphviz_sstate_postinst() { + mkdir -p ${SYSROOT_DESTDIR}${bindir} + dest=${SYSROOT_DESTDIR}${bindir}/postinst-${PN} + echo '#!/bin/sh' > $dest + echo '' >> $dest + echo 'dot -c' >> $dest + chmod 0755 $dest +} +SYSROOT_PREPROCESS_FUNCS:append:class-native = " graphviz_sstate_postinst" + +pkg_postinst:${PN} () { + if [ -n "$D" ]; then + if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then + ${@qemu_run_binary(d, '$D', '${bindir}/dot')} -c + fi + else + dot -c + fi +} + +pkg_postrm:${PN} () { + rm -f $D${libdir}/graphviz/config* + rmdir --ignore-fail-on-non-empty $D${libdir}/graphviz +} + +PACKAGE_WRITE_DEPS += "qemu-native" + +PACKAGES =+ "${PN}-python ${PN}-perl ${PN}-demo" + +FILES:${PN}-python += "${PYTHON_SITEPACKAGES_DIR}/ ${libdir}/graphviz/python/" +FILES:${PN}-perl += "${libdir}/perl5/*/vendor_perl/ ${libdir}/graphviz/perl/" +FILES:${PN}-demo += "${datadir}/graphviz/demo/" + +RDEPENDS:${PN}-perl += "perl" +RDEPENDS:${PN}-python += "python3" +RDEPENDS:${PN}-demo += "python3 perl" + +RRECOMMENDS:${PN} = "liberation-fonts" + +INSANE_SKIP:${PN}-perl = "dev-so" +INSANE_SKIP:${PN}-python = "dev-so" + +FILES_SOLIBSDEV:append = " ${libdir}/graphviz/lib*${SOLIBSDEV}" + +RRECOMMENDS:${PN} = "liberation-fonts" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-Include-stdlib.h-for-exit-API.patch b/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-Include-stdlib.h-for-exit-API.patch index d529ddd234..949151a827 100644 --- a/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-Include-stdlib.h-for-exit-API.patch +++ b/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-Include-stdlib.h-for-exit-API.patch @@ -14,6 +14,8 @@ http://sources.debian.net/src/gtkperf/0.40%2Bds-2/debian/patches/01-include_stdl Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + src/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-main.c-Define-prototype-for-setup_appdata.patch b/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-main.c-Define-prototype-for-setup_appdata.patch new file mode 100644 index 0000000000..08e899b9a6 --- /dev/null +++ b/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-main.c-Define-prototype-for-setup_appdata.patch @@ -0,0 +1,27 @@ +From 6b5f695cb206cd8b3cbcbcd7713e52772e89306b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 2 Sep 2022 20:47:32 -0700 +Subject: [PATCH] main.c: Define prototype for setup_appdata + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/main.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/main.c b/src/main.c +index c226799..b4ce6d1 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -18,6 +18,8 @@ + #include "callbacks.h" + #include "appdata.h" + ++void setup_appdata(AppData * appdata_in); ++ + int + main (int argc, char **argv) + { +-- +2.37.3 + diff --git a/meta-oe/recipes-graphics/gtkperf/gtkperf/0002-timing.c-Fix-format-security-errors.patch b/meta-oe/recipes-graphics/gtkperf/gtkperf/0002-timing.c-Fix-format-security-errors.patch index 0548040af7..f975acabad 100644 --- a/meta-oe/recipes-graphics/gtkperf/gtkperf/0002-timing.c-Fix-format-security-errors.patch +++ b/meta-oe/recipes-graphics/gtkperf/gtkperf/0002-timing.c-Fix-format-security-errors.patch @@ -5,6 +5,8 @@ Subject: [PATCH 2/2] timing.c: Fix format-security errors Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + src/timing.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta-oe/recipes-graphics/gtkperf/gtkperf/gettext.patch b/meta-oe/recipes-graphics/gtkperf/gtkperf/gettext.patch new file mode 100644 index 0000000000..4a727d3c06 --- /dev/null +++ b/meta-oe/recipes-graphics/gtkperf/gtkperf/gettext.patch @@ -0,0 +1,36 @@ +Fix build with gettext 0.20.x + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- a/Makefile.am ++++ b/Makefile.am +@@ -3,7 +3,7 @@ + ## If you don't want it to overwrite it, + ## Please disable it in the Anjuta project configuration + +-SUBDIRS = intl po src pixmaps ++SUBDIRS = po src pixmaps + + gtkperfdocdir = ${prefix}/doc/gtkperf + gtkperfdoc_DATA = \ +--- a/configure.in ++++ b/configure.in +@@ -31,8 +31,7 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GE + + dnl Languages which your application supports + ALL_LINGUAS="" +-AM_GNU_GETTEXT +-AM_GNU_GETTEXT_VERSION(0.10.40) ++AM_GNU_GETTEXT([external]) + + dnl Set PACKAGE_LOCALE_DIR in config.h. + if test "x${prefix}" = "xNONE"; then +@@ -100,7 +99,6 @@ AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, " + + AC_OUTPUT([ + Makefile +-intl/Makefile + po/Makefile.in + src/Makefile + pixmaps/Makefile diff --git a/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb b/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb index 4094513b29..30964a1b9a 100644 --- a/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb +++ b/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb @@ -1,12 +1,14 @@ SUMMARY = "GTK Performance tool" SECTION = "libs" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" SRC_URI = "http://prdownloads.sourceforge.net/${BPN}/${BPN}_${PV}.tar.gz \ file://Makevars \ file://0001-Include-stdlib.h-for-exit-API.patch \ file://0002-timing.c-Fix-format-security-errors.patch \ + file://gettext.patch \ + file://0001-main.c-Define-prototype-for-setup_appdata.patch \ " SRC_URI[md5sum] = "4331dde4bb83865e15482885fcb0cc53" @@ -16,17 +18,17 @@ DEPENDS = "gtk+" S = "${WORKDIR}/${BPN}" -inherit distro_features_check autotools binconfig pkgconfig gettext +inherit features_check autotools binconfig pkgconfig gettext REQUIRED_DISTRO_FEATURES = "x11" -do_configure_prepend () { +do_configure:prepend () { rm -f ${S}/m4/init.m4 - cp -f ${WORKDIR}/Makevars ${S}/po/ + cp -f ${UNPACKDIR}/Makevars ${S}/po/ } -do_install_append () { +do_install:append () { rm -rf ${D}/${exec_prefix}/doc } -FILES_${PN} += "${exec_prefix}/share/duck.png" +FILES:${PN} += "${exec_prefix}/share/duck.png" diff --git a/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.119.bb b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.119.bb new file mode 100644 index 0000000000..0b1b054041 --- /dev/null +++ b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.119.bb @@ -0,0 +1,44 @@ +SUMMARY = "VCD (Value Change Dump) file waveform viewer" +DESCRIPTION = "gtkwave is a viewer for VCD (Value Change Dump) files which are usually created by digital circuit simulators. (These files have no connection to video CDs!) " +HOMEPAGE = "http://gtkwave.sourceforge.net/" + +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" + +SRC_URI = "http://gtkwave.sourceforge.net/gtkwave-gtk3-${PV}.tar.gz" +SRC_URI[sha256sum] = "eab3e09e7641115c07848bfb30f7dd0c3bbe2b8cbe45017e95e077dbba6ac038" +S = "${WORKDIR}/${BPN}-gtk3-${PV}" + +DEPENDS = " \ + gperf-native \ + gtk+3 \ + gdk-pixbuf \ + tcl \ + tk \ + bzip2 \ + xz \ + pango \ + zlib \ +" + +inherit pkgconfig autotools gettext texinfo mime mime-xdg + +inherit features_check +# depends on gtk+3 which has this restriction +# ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" +# but https://github.com/gtkwave/gtkwave/blob/f9d82a82aa3ddc30ca47984278371f62c9a3bd81/gtkwave3-gtk3/src/gtk23compat.h#L10 +# explicitly includes gdk/gdkwayland.h for gtk-3.22.26 and newer (oe-core currently has 3.24.29) +# and it needs x11 as well for tk dependency (so it happends to be both GTK3DISTROFEATURES instead of either of them) +REQUIRED_DISTRO_FEATURES = "wayland x11" + +EXTRA_OECONF = " \ + --enable-gtk3 \ + --with-tcl=${STAGING_BINDIR_CROSS} \ + --with-tk=${STAGING_BINDIR_CROSS} \ + --with-tirpc \ + --disable-mime-update \ +" + +FILES:${PN} = "${bindir} ${datadir}" + +RDEPENDS:${PN} += "tk-lib" diff --git a/meta-oe/recipes-graphics/imlib2/imlib2_git.bb b/meta-oe/recipes-graphics/imlib2/imlib2_git.bb new file mode 100644 index 0000000000..87e7ed4a6b --- /dev/null +++ b/meta-oe/recipes-graphics/imlib2/imlib2_git.bb @@ -0,0 +1,38 @@ +SUMMARY = "A graphic library for file loading, saving, rendering, and manipulation" + +HOMEPAGE = "https://sourceforge.net/projects/enlightenment/" +SECTION = "libs" +LICENSE = "Imlib2" +LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" + +DEPENDS = "freetype " +PROVIDES = "virtual/imlib2" +PV = "1.12.2" +SRCREV = "a860e34b19af6b0a73d86ddc0e4829145e18fa6e" + +inherit autotools pkgconfig lib_package + +AUTO_LIBNAME_PKGS = "" + +SRC_URI = "git://git.enlightenment.org/old/legacy-${BPN}.git;protocol=https;branch=master" +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "jpeg png zlib ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +X11_DEPS = "virtual/libx11 libxext libice" +PACKAGECONFIG[x11] = "--with-x,--without-x,${X11_DEPS}" + +PACKAGECONFIG[gif] = "--with-gif,--without-gif,giflib" +PACKAGECONFIG[jpeg] = "--with-jpeg,--without-jpeg,jpeg" +PACKAGECONFIG[png] = "--with-png,--without-png,libpng" +PACKAGECONFIG[tiff] = "--with-tiff,--without-tiff,tiff" +PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp" + +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" + +PACKAGECONFIG[id3] = "--with-id3,--without-id3,libid3tag" + +PACKAGES =+ "${BPN}-loaders ${BPN}-filters ${BPN}-data" +FILES:${PN}-data = "${datadir}" +FILES:imlib2-loaders = "${libdir}/imlib2/loaders/*.so" +FILES:imlib2-filters = "${libdir}/imlib2/filters/*.so" diff --git a/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb b/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb deleted file mode 100644 index cc6a694ce1..0000000000 --- a/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Jpeg 2000 implementation" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=baa697d7510288a9cdcce9bd7edaf9bc" - -PR = "r1" - -SRC_URI = "http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-${PV}.zip" - -inherit autotools lib_package - -PACKAGECONFIG ??= "" -PACKAGECONFIG[jpeg] = "--enable-libjpeg,--disable-libjpeg,jpeg" -PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,freeglut" - -EXTRA_OECONF = "--enable-shared" - -SRC_URI[md5sum] = "a342b2b4495b3e1394e161eb5d85d754" -SRC_URI[sha256sum] = "6b905a9c2aca2e275544212666eefc4eb44d95d0a57e4305457b407fe63f9494" diff --git a/meta-oe/recipes-graphics/jasper/jasper_4.1.1.bb b/meta-oe/recipes-graphics/jasper/jasper_4.1.1.bb new file mode 100644 index 0000000000..5281980ecb --- /dev/null +++ b/meta-oe/recipes-graphics/jasper/jasper_4.1.1.bb @@ -0,0 +1,34 @@ +SUMMARY = "Jpeg 2000 implementation" +HOMEPAGE = "https://jasper-software.github.io/jasper/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a80440d1d8f17d041c71c7271d6e06eb" + +SRC_URI = "git://github.com/jasper-software/jasper.git;protocol=https;branch=master" +SRCREV = "917f7708b755d8434f70618108c1a76f1b6a0a82" + +CVE_STATUS[CVE-2015-8751] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions." + +S = "${WORKDIR}/git" + +inherit cmake multilib_header + +do_configure:prepend() { + JAS_STDC_VERSION="$(echo __STDC_VERSION__ | ${CPP} -E -P -)" +} + +EXTRA_OECMAKE:append = " -DJAS_STDC_VERSION=${JAS_STDC_VERSION}" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl', '', d)} \ + jpeg" + +PACKAGECONFIG[jpeg] = "-DJAS_ENABLE_LIBJPEG=ON,-DJAS_ENABLE_LIBJPEG=OFF,jpeg," +PACKAGECONFIG[opengl] = "-DJAS_ENABLE_OPENGL=ON,-DJAS_ENABLE_OPENGL=OFF,freeglut," + +do_install:append() { + chrpath -d ${D}${bindir}/jasper + chrpath -d ${D}${bindir}/imginfo + chrpath -d ${D}${bindir}/imgcmp + chrpath -d ${D}${libdir}/libjasper.so.* + oe_multilib_header jasper/jas_config.h +} + diff --git a/meta-oe/recipes-graphics/leptonica/leptonica_1.74.4.bb b/meta-oe/recipes-graphics/leptonica/leptonica_1.82.0.bb index 91fa00cc96..c0a2b45a48 100644 --- a/meta-oe/recipes-graphics/leptonica/leptonica_1.74.4.bb +++ b/meta-oe/recipes-graphics/leptonica/leptonica_1.82.0.bb @@ -1,11 +1,12 @@ DESCRIPTION = "A pedagogically-oriented open source site containing software that is broadly useful for image processing and image analysis applications" DEPENDS = "jpeg tiff libpng zlib" LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://leptonica-license.txt;md5=34aa579294e8284b7b848c8d5d361e8f" +LIC_FILES_CHKSUM = "file://leptonica-license.txt;md5=809b282cea2df68975fbe0ffe02b560f" -SRC_URI = "http://leptonica.com/source/leptonica-${PV}.tar.gz" -SRC_URI[md5sum] = "4f32be9bd2e2c142ba018037ab5d746f" -SRC_URI[sha256sum] = "29c35426a416bf454413c6fec24c24a0b633e26144a17e98351b6dffaa4a833b" +UPSTREAM_CHECK_URI = "https://github.com/DanBloomberg/leptonica/releases" + +SRC_URI = "http://www.leptonica.org/source/leptonica-${PV}.tar.gz" +SRC_URI[sha256sum] = "155302ee914668c27b6fe3ca9ff2da63b245f6d62f3061c8f27563774b8ae2d6" EXTRA_OECONF += " \ --without-libwebp \ diff --git a/meta-oe/recipes-graphics/libdecor/libdecor_0.2.2.bb b/meta-oe/recipes-graphics/libdecor/libdecor_0.2.2.bb new file mode 100644 index 0000000000..6621389b5a --- /dev/null +++ b/meta-oe/recipes-graphics/libdecor/libdecor_0.2.2.bb @@ -0,0 +1,31 @@ +SUMMARY = "libdecor - A client-side decorations library for Wayland clients" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7ae2be7fb1637141840314b51970a9f7" + +SRC_URI = " \ + git://gitlab.freedesktop.org/libdecor/libdecor.git;protocol=https;branch=master \ +" + +DEPENDS = " \ + cairo \ + pango \ + wayland \ + wayland-native \ + wayland-protocols \ +" + +S = "${WORKDIR}/git" +SRCREV = "7807ae3480f5c6a37c5e8505d94af1e764aaf704" + +PACKAGECONFIG ?= "dbus ${@bb.utils.filter('DISTRO_FEATURES', 'gtk+3', d)}" + +PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus" +PACKAGECONFIG[demo] = "-Ddemo=true,-Ddemo=false,virtual/libegl libxkbcommon" +PACKAGECONFIG[install_demo] = "-Dinstall_demo=true,-Dinstall_demo=false" +PACKAGECONFIG[gtk+3] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3" + +inherit meson pkgconfig + +EXTRA_OEMESON += "--buildtype release" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-graphics/libforms/files/0001-Make-extern-declarations-in-header-file.patch b/meta-oe/recipes-graphics/libforms/files/0001-Make-extern-declarations-in-header-file.patch new file mode 100644 index 0000000000..16689f64b9 --- /dev/null +++ b/meta-oe/recipes-graphics/libforms/files/0001-Make-extern-declarations-in-header-file.patch @@ -0,0 +1,31 @@ +From a57c498f6c25aa297e49533c242525f2b9da7048 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 13 Aug 2020 18:20:42 -0700 +Subject: [PATCH] Make extern declarations in header file + +curobj is a static object in other places as well. +Fixes build with gcc10/-fno-common + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + fdesign/sp_spinner.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/fdesign/sp_spinner.c b/fdesign/sp_spinner.c +index 04f2c19..6206daa 100644 +--- a/fdesign/sp_spinner.c ++++ b/fdesign/sp_spinner.c +@@ -29,7 +29,7 @@ + #include "spec/spinner_spec.h" + + static FD_spinnerattrib * spn_attrib; +-FL_OBJECT *curobj; ++static FL_OBJECT *curobj; + + + /*************************************** + +-- +2.28.0 + diff --git a/meta-oe/recipes-graphics/libforms/files/0001-Modify-include-dir.patch b/meta-oe/recipes-graphics/libforms/files/0001-Modify-include-dir.patch new file mode 100644 index 0000000000..0b7c063804 --- /dev/null +++ b/meta-oe/recipes-graphics/libforms/files/0001-Modify-include-dir.patch @@ -0,0 +1,33 @@ +From d2d05928342f7f9f687ffea5e0b77f97f0ae5aad Mon Sep 17 00:00:00 2001 +From: Wang Mingyu <wangmy@fujitsu.com> +Date: Wed, 7 Sep 2022 14:29:13 +0900 +Subject: [PATCH] Modify include dir + +error messagge: +../../xforms-1.2.4/lib/fd/cmdbr.h:28:10: fatal error: ../include/forms.h: No such file or directory + +../include/forms.h specified in the header file cmdbr.h is not exist. + +Upstream-Status: Pending + +Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> +--- + lib/fd/cmdbr.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/fd/cmdbr.h b/lib/fd/cmdbr.h +index 8495e05..2ddeced 100644 +--- a/lib/fd/cmdbr.h ++++ b/lib/fd/cmdbr.h +@@ -25,7 +25,7 @@ + #ifndef FD_cmd_h_ + #define FD_cmd_h_ + +-#include "../include/forms.h" ++#include "include/forms.h" + + /* Callbacks, globals and object handlers */ + +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch b/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch new file mode 100644 index 0000000000..4836b46b11 --- /dev/null +++ b/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch @@ -0,0 +1,14 @@ +Upstream-Status: Pending + +diff -Naur xforms-1.2.3.orig/fdesign/Makefile.am xforms-1.2.3/fdesign/Makefile.am +--- xforms-1.2.3.orig/fdesign/Makefile.am 2019-02-24 12:58:51.968645873 +0000 ++++ xforms-1.2.3/fdesign/Makefile.am 2019-02-24 13:00:48.500635163 +0000 +@@ -11,7 +11,7 @@ + fdesign.1: + cp -p $(srcdir)/fdesign.man fdesign.1 + +-INCLUDES = -I./xpm $(X_CFLAGS) ++INCLUDES = -I./xpm -I$(srcdir)/xpm $(X_CFLAGS) + + bin_PROGRAMS = fdesign + diff --git a/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch b/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch new file mode 100644 index 0000000000..9ab67b35ac --- /dev/null +++ b/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch @@ -0,0 +1,14 @@ +Upstream-Status: Pending + +diff -Naur xforms-1.2.3.orig/lib/Makefile.am xforms-1.2.3/lib/Makefile.am +--- xforms-1.2.3.orig/lib/Makefile.am 2019-02-24 12:53:58.340678373 +0000 ++++ xforms-1.2.3/lib/Makefile.am 2019-02-24 12:54:33.096674102 +0000 +@@ -25,7 +25,7 @@ + man_MANS = xforms.5 + + xforms.5: +- cp -p ./xforms.man xforms.5 ++ cp -p $(srcdir)/xforms.man xforms.5 + + libforms_la_SOURCES = \ + align.c \ diff --git a/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch b/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch new file mode 100644 index 0000000000..dc494281b2 --- /dev/null +++ b/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch @@ -0,0 +1,14 @@ +Upstream-Status: Pending + +diff -Naur xforms-1.2.3.orig/fdesign/Makefile.am xforms-1.2.3/fdesign/Makefile.am +--- xforms-1.2.3.orig/fdesign/Makefile.am 2019-02-24 13:08:48.412603250 +0000 ++++ xforms-1.2.3/fdesign/Makefile.am 2019-02-24 13:09:18.412601874 +0000 +@@ -15,7 +15,7 @@ + + bin_PROGRAMS = fdesign + +-fdesign_LDADD = $(top_srcdir)/lib/libforms.la $(X_LIBS) $(X_PRE_LIBS) $(XPM_LIB) -lX11 $(LIBS) $(X_EXTRA_LIBS) ++fdesign_LDADD = $(top_builddir)/lib/libforms.la $(X_LIBS) $(X_PRE_LIBS) $(XPM_LIB) -lX11 $(LIBS) $(X_EXTRA_LIBS) + + fdesign_SOURCES = \ + fd_attribs.c \ diff --git a/meta-oe/recipes-graphics/libforms/libforms_1.2.5pre1.bb b/meta-oe/recipes-graphics/libforms/libforms_1.2.5pre1.bb new file mode 100644 index 0000000000..251c07adf0 --- /dev/null +++ b/meta-oe/recipes-graphics/libforms/libforms_1.2.5pre1.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "The XForms graphical interface widget library " +HOMEPAGE = "http://savannah.nongnu.org/projects/xforms/" + +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=ade9a053df81f5b9408d2f4f5546df86" + +SRC_URI = "http://download.savannah.nongnu.org/releases/xforms/xforms-${PV}.tar.gz \ + file://fix-link-to-xforms-man.patch \ + file://add-absolute-path-for-include-dir.patch \ + file://fix-path-fdesign_LDADD.patch \ + file://0001-Make-extern-declarations-in-header-file.patch \ + file://0001-Modify-include-dir.patch \ + " + +SRC_URI[sha256sum] = "92b5e6466ea2dffca7332aec12734e65b3e961825eb3100b7d889c0d1abb4697" + +inherit autotools features_check + +REQUIRED_DISTRO_FEATURES = "opengl x11" + +S = "${WORKDIR}/xforms-${PV}" + +DEPENDS = "libxpm jpeg libx11 virtual/libgl" +RDEPENDS:${PN} = "bash" + +EXTRA_OECONF = "--with-extra-inc=${S}/lib" diff --git a/meta-oe/recipes-graphics/libglvnd/libglvnd_1.7.0.bb b/meta-oe/recipes-graphics/libglvnd/libglvnd_1.7.0.bb new file mode 100644 index 0000000000..4094aa4fc6 --- /dev/null +++ b/meta-oe/recipes-graphics/libglvnd/libglvnd_1.7.0.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "libglvnd is a vendor-neutral dispatch layer for arbitrating \ +OpenGL API calls between multiple vendors." +HOMEPAGE = "https://gitlab.freedesktop.org/glvnd/libglvnd" +LICENSE = "MIT & BSD-1-Clause & BSD-3-Clause & GPL-3.0-with-autoconf-exception" +LIC_FILES_CHKSUM = "file://README.md;beginline=323;md5=7ac5f0111f648b92fe5427efeb08e8c4" + +SRC_URI = "git://git@gitlab.freedesktop.org/glvnd/libglvnd.git;protocol=https;branch=master" + +# v1.5.0 tag +SRCREV = "faa23f21fc677af5792825dc30cb1ccef4bf33a6" + +REQUIRED_DISTRO_FEATURES = "opengl" + +inherit meson pkgconfig features_check + +S = "${WORKDIR}/git" + +PACKAGECONFIG ?= "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'egl gles1 gles2', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'glx', '', d)} \ + " + +PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,libx11 libxext xorgproto" +PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,libx11 libxext xorgproto" +PACKAGECONFIG[egl] = "-Degl=true,-Degl=false," +PACKAGECONFIG[gles1] = "-Dgles1=true,-Dgles1=false," +PACKAGECONFIG[gles2] = "-Dgles2=true,-Dgles2=false," + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch new file mode 100644 index 0000000000..ec8c0fd4fb --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch @@ -0,0 +1,73 @@ +From 44e4bb4cfb81024c8f5fd2e179e8a32c42756a2f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 23 Jul 2017 16:52:43 -0700 +Subject: [PATCH] build: Pass --tag=CC explictly when using libtool + +Do not depend solely on libtool heuristics which fail +in OE case when building with external compiler and +hardening flags + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile.in | 4 ++-- + build-scripts/makedep.sh | 8 ++++---- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index ab51035..743ce30 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -72,10 +72,10 @@ depend: + include $(depend) + + $(objects)/$(TARGET): $(OBJECTS) +- $(LIBTOOL) --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) ++ $(LIBTOOL) --tag=CC --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) + + $(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS) +- $(LIBTOOL) --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) $(SDLMAIN_LDFLAGS) ++ $(LIBTOOL) --tag=CC --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) $(SDLMAIN_LDFLAGS) + + + install: all install-bin install-hdrs install-lib install-data install-man +diff --git a/build-scripts/makedep.sh b/build-scripts/makedep.sh +index 3b3863b..dba28f2 100755 +--- a/build-scripts/makedep.sh ++++ b/build-scripts/makedep.sh +@@ -51,19 +51,19 @@ do echo "Generating dependencies for $src" + case $ext in + c) cat >>${output}.new <<__EOF__ + +- \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ ++ \$(LIBTOOL) --tag=CC --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ + + __EOF__ + ;; + cc) cat >>${output}.new <<__EOF__ + +- \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ ++ \$(LIBTOOL) --tag=CC --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ + + __EOF__ + ;; + m) cat >>${output}.new <<__EOF__ + +- \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ ++ \$(LIBTOOL) --tag=CC --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ + + __EOF__ + ;; +@@ -75,7 +75,7 @@ __EOF__ + ;; + S) cat >>${output}.new <<__EOF__ + +- \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ ++ \$(LIBTOOL) --tag=CC --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ + + __EOF__ + ;; +-- +2.13.3 + diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-stdlib-Make-iconv-use-portable-across-glibc-musl.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-stdlib-Make-iconv-use-portable-across-glibc-musl.patch new file mode 100644 index 0000000000..2007766f74 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-stdlib-Make-iconv-use-portable-across-glibc-musl.patch @@ -0,0 +1,52 @@ +From 6c35fc94ca30a4d0662479f7ef8a704d97aa7352 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 18 May 2024 18:13:30 -0700 +Subject: [PATCH] stdlib: Make iconv use portable across glibc/musl + +This is a backport from libsdl2 + +Upstream-Status: Backport [https://github.com/libsdl-org/SDL/blob/main/src/stdlib/SDL_iconv.c#L49C1-L51C1] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/stdlib/SDL_iconv.c | 19 ++++--------------- + 1 file changed, 4 insertions(+), 15 deletions(-) + +diff --git a/src/stdlib/SDL_iconv.c b/src/stdlib/SDL_iconv.c +index fa56a99..087b6ec 100644 +--- a/src/stdlib/SDL_iconv.c ++++ b/src/stdlib/SDL_iconv.c +@@ -28,27 +28,16 @@ + + #ifdef HAVE_ICONV + +-/* Depending on which standard the iconv() was implemented with, +- iconv() may or may not use const char ** for the inbuf param. +- If we get this wrong, it's just a warning, so no big deal. +-*/ +-#if defined(_XGP6) || \ +- defined(__GLIBC__) && ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) +-#define ICONV_INBUF_NONCONST +-#endif +- + #include <errno.h> + + size_t SDL_iconv(SDL_iconv_t cd, + const char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft) + { +- size_t retCode; +-#ifdef ICONV_INBUF_NONCONST +- retCode = iconv(cd, (char **)inbuf, inbytesleft, outbuf, outbytesleft); +-#else +- retCode = iconv(cd, inbuf, inbytesleft, outbuf, outbytesleft); +-#endif ++ /* iconv's second parameter may or may not be `const char const *` depending on the ++ C runtime's whims. Casting to void * seems to make everyone happy, though. */ ++ ++ const size_t retCode = iconv((iconv_t)((uintptr_t)cd), (void *)inbuf, inbytesleft, outbuf, outbytesleft); + if ( retCode == (size_t)-1 ) { + switch(errno) { + case E2BIG: +-- +2.45.1 + diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-13616.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-13616.patch new file mode 100644 index 0000000000..d4166a16ab --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-13616.patch @@ -0,0 +1,29 @@ +From 97fefd050976bbbfca9608499f6a7d9fb86e70db Mon Sep 17 00:00:00 2001 +From: Sam Lantinga <slouken@libsdl.org> +Date: Tue, 30 Jul 2019 11:00:00 -0700 +Subject: [PATCH] Fixed bug 4538 - validate image size when loading BMP files +--- +Upstream-Status: Pending + + src/video/SDL_bmp.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c +index 8eadc5f..5b5e12c 100644 +--- a/src/video/SDL_bmp.c ++++ b/src/video/SDL_bmp.c +@@ -143,6 +143,11 @@ SDL_Surface * SDL_LoadBMP_RW (SDL_RWops *src, int freesrc) + (void) biYPelsPerMeter; + (void) biClrImportant; + ++ if (biWidth <= 0 || biHeight == 0) { ++ SDL_SetError("BMP file with bad dimensions (%dx%d)", biWidth, biHeight); ++ was_error = SDL_TRUE; ++ goto done; ++ } + if (biHeight < 0) { + topDown = SDL_TRUE; + biHeight = -biHeight; +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch new file mode 100644 index 0000000000..c41c2de0f3 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch @@ -0,0 +1,114 @@ +# HG changeset patch +# User Petr Písař <ppisar@redhat.com> +# Date 1560182231 25200 +# Mon Jun 10 08:57:11 2019 -0700 +# Branch SDL-1.2 +# Node ID a8afedbcaea0e84921dc770195c4699bda3ccdc5 +# Parent faf9abbcfb5fe0d0ca23c4bf0394aa226ceccf02 +CVE-2019-7572: Fix a buffer overwrite in IMA_ADPCM_decode +If data chunk was longer than expected based on a WAV format +definition, IMA_ADPCM_decode() tried to write past the output +buffer. This patch fixes it. + +Based on patch from +<https://bugzilla.libsdl.org/show_bug.cgi?id=4496>. + +CVE-2019-7572 +https://bugzilla.libsdl.org/show_bug.cgi?id=4495 + +Signed-off-by: Petr Písař <ppisar@redhat.com> + +# HG changeset patch +# User Petr Písař <ppisar@redhat.com> +# Date 1560041863 25200 +# Sat Jun 08 17:57:43 2019 -0700 +# Branch SDL-1.2 +# Node ID e52413f5258600878f9a10d2f92605a729aa8976 +# Parent 4e73be7b47877ae11d2279bd916910d469d18f8e +CVE-2019-7572: Fix a buffer overread in IMA_ADPCM_nibble +If an IMA ADPCM block contained an initial index out of step table +range (loaded in IMA_ADPCM_decode()), IMA_ADPCM_nibble() blindly used +this bogus value and that lead to a buffer overread. + +This patch fixes it by moving clamping the index value at the +beginning of IMA_ADPCM_nibble() function instead of the end after +an update. + +CVE-2019-7572 +https://bugzilla.libsdl.org/show_bug.cgi?id=4495 + +Signed-off-by: Petr Písař <ppisar@redhat.com> + +CVE: CVE-2019-7572 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +diff -r faf9abbcfb5f -r a8afedbcaea0 src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Mon Jun 10 08:54:29 2019 -0700 ++++ b/src/audio/SDL_wave.c Mon Jun 10 08:57:11 2019 -0700 +@@ -346,7 +346,7 @@ + static int IMA_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + { + struct IMA_ADPCM_decodestate *state; +- Uint8 *freeable, *encoded, *encoded_end, *decoded; ++ Uint8 *freeable, *encoded, *encoded_end, *decoded, *decoded_end; + Sint32 encoded_len, samplesleft; + unsigned int c, channels; + +@@ -373,6 +373,7 @@ + return(-1); + } + decoded = *audio_buf; ++ decoded_end = decoded + *audio_len; + + /* Get ready... Go! */ + while ( encoded_len >= IMA_ADPCM_state.wavefmt.blockalign ) { +@@ -392,6 +393,7 @@ + } + + /* Store the initial sample we start with */ ++ if (decoded + 2 > decoded_end) goto invalid_size; + decoded[0] = (Uint8)(state[c].sample&0xFF); + decoded[1] = (Uint8)(state[c].sample>>8); + decoded += 2; +@@ -402,6 +404,8 @@ + while ( samplesleft > 0 ) { + for ( c=0; c<channels; ++c ) { + if (encoded + 4 > encoded_end) goto invalid_size; ++ if (decoded + 4 * 4 * channels > decoded_end) ++ goto invalid_size; + Fill_IMA_ADPCM_block(decoded, encoded, + c, channels, &state[c]); + encoded += 4; + +diff -r 4e73be7b4787 -r e52413f52586 src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Sat Jun 01 18:27:46 2019 +0100 ++++ b/src/audio/SDL_wave.c Sat Jun 08 17:57:43 2019 -0700 +@@ -264,6 +264,14 @@ + }; + Sint32 delta, step; + ++ /* Clamp index value. The inital value can be invalid. */ ++ if ( state->index > 88 ) { ++ state->index = 88; ++ } else ++ if ( state->index < 0 ) { ++ state->index = 0; ++ } ++ + /* Compute difference and new sample value */ + step = step_table[state->index]; + delta = step >> 3; +@@ -275,12 +283,6 @@ + + /* Update index value */ + state->index += index_table[nybble]; +- if ( state->index > 88 ) { +- state->index = 88; +- } else +- if ( state->index < 0 ) { +- state->index = 0; +- } + + /* Clamp output sample */ + if ( state->sample > max_audioval ) { diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch new file mode 100644 index 0000000000..9fd53da29b --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch @@ -0,0 +1,68 @@ +# HG changeset patch +# User Petr Písař <ppisar@redhat.com> +# Date 1560181859 25200 +# Mon Jun 10 08:50:59 2019 -0700 +# Branch SDL-1.2 +# Node ID a6e3d2f5183e1cc300ad993e10e9ce077e13bd9c +# Parent 388987dff7bf8f1e214e69c2e4f1aa31e06396b5 +CVE-2019-7574: Fix a buffer overread in IMA_ADPCM_decode +If data chunk was shorter than expected based on a WAV format +definition, IMA_ADPCM_decode() tried to read past the data chunk +buffer. This patch fixes it. + +CVE-2019-7574 +https://bugzilla.libsdl.org/show_bug.cgi?id=4496 + +Signed-off-by: Petr Písař <ppisar@redhat.com> + +CVE: CVE-2019-7574 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +diff -r 388987dff7bf -r a6e3d2f5183e src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Sat Jun 08 18:02:09 2019 -0700 ++++ b/src/audio/SDL_wave.c Mon Jun 10 08:50:59 2019 -0700 +@@ -331,7 +331,7 @@ + static int IMA_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + { + struct IMA_ADPCM_decodestate *state; +- Uint8 *freeable, *encoded, *decoded; ++ Uint8 *freeable, *encoded, *encoded_end, *decoded; + Sint32 encoded_len, samplesleft; + unsigned int c, channels; + +@@ -347,6 +347,7 @@ + /* Allocate the proper sized output buffer */ + encoded_len = *audio_len; + encoded = *audio_buf; ++ encoded_end = encoded + encoded_len; + freeable = *audio_buf; + *audio_len = (encoded_len/IMA_ADPCM_state.wavefmt.blockalign) * + IMA_ADPCM_state.wSamplesPerBlock* +@@ -362,6 +363,7 @@ + while ( encoded_len >= IMA_ADPCM_state.wavefmt.blockalign ) { + /* Grab the initial information for this block */ + for ( c=0; c<channels; ++c ) { ++ if (encoded + 4 > encoded_end) goto invalid_size; + /* Fill the state information for this block */ + state[c].sample = ((encoded[1]<<8)|encoded[0]); + encoded += 2; +@@ -384,6 +386,7 @@ + samplesleft = (IMA_ADPCM_state.wSamplesPerBlock-1)*channels; + while ( samplesleft > 0 ) { + for ( c=0; c<channels; ++c ) { ++ if (encoded + 4 > encoded_end) goto invalid_size; + Fill_IMA_ADPCM_block(decoded, encoded, + c, channels, &state[c]); + encoded += 4; +@@ -395,6 +398,10 @@ + } + SDL_free(freeable); + return(0); ++invalid_size: ++ SDL_SetError("Unexpected chunk length for an IMA ADPCM decoder"); ++ SDL_free(freeable); ++ return(-1); + } + + SDL_AudioSpec * SDL_LoadWAV_RW (SDL_RWops *src, int freesrc, diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch new file mode 100644 index 0000000000..a3e8416d0e --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch @@ -0,0 +1,81 @@ +# HG changeset patch +# User Petr Písař <ppisar@redhat.com> +# Date 1560183905 25200 +# Mon Jun 10 09:25:05 2019 -0700 +# Branch SDL-1.2 +# Node ID a936f9bd3e381d67d8ddee8b9243f85799ea4798 +# Parent fcbecae427951bac1684baaba2ade68221315140 +CVE-2019-7575: Fix a buffer overwrite in MS_ADPCM_decode +If a WAV format defines shorter audio stream and decoded MS ADPCM data chunk +is longer, decoding continued past the output audio buffer. + +This fix is based on a patch from +<https://bugzilla.libsdl.org/show_bug.cgi?id=4492>. + +https://bugzilla.libsdl.org/show_bug.cgi?id=4493 +CVE-2019-7575 + +Signed-off-by: Petr Písař <ppisar@redhat.com> + +CVE: CVE-2019-7575 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +diff -r fcbecae42795 -r a936f9bd3e38 src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Mon Jun 10 09:06:23 2019 -0700 ++++ b/src/audio/SDL_wave.c Mon Jun 10 09:25:05 2019 -0700 +@@ -122,7 +122,7 @@ + static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + { + struct MS_ADPCM_decodestate *state[2]; +- Uint8 *freeable, *encoded, *encoded_end, *decoded; ++ Uint8 *freeable, *encoded, *encoded_end, *decoded, *decoded_end; + Sint32 encoded_len, samplesleft; + Sint8 nybble, stereo; + Sint16 *coeff[2]; +@@ -142,6 +142,7 @@ + return(-1); + } + decoded = *audio_buf; ++ decoded_end = decoded + *audio_len; + + /* Get ready... Go! */ + stereo = (MS_ADPCM_state.wavefmt.channels == 2); +@@ -149,7 +150,7 @@ + state[1] = &MS_ADPCM_state.state[stereo]; + while ( encoded_len >= MS_ADPCM_state.wavefmt.blockalign ) { + /* Grab the initial information for this block */ +- if (encoded + 7 + (stereo ? 7 : 0) > encoded_end) goto too_short; ++ if (encoded + 7 + (stereo ? 7 : 0) > encoded_end) goto invalid_size; + state[0]->hPredictor = *encoded++; + if ( stereo ) { + state[1]->hPredictor = *encoded++; +@@ -179,6 +180,7 @@ + coeff[1] = MS_ADPCM_state.aCoeff[state[1]->hPredictor]; + + /* Store the two initial samples we start with */ ++ if (decoded + 4 + (stereo ? 4 : 0) > decoded_end) goto invalid_size; + decoded[0] = state[0]->iSamp2&0xFF; + decoded[1] = state[0]->iSamp2>>8; + decoded += 2; +@@ -200,7 +202,8 @@ + samplesleft = (MS_ADPCM_state.wSamplesPerBlock-2)* + MS_ADPCM_state.wavefmt.channels; + while ( samplesleft > 0 ) { +- if (encoded + 1 > encoded_end) goto too_short; ++ if (encoded + 1 > encoded_end) goto invalid_size; ++ if (decoded + 4 > decoded_end) goto invalid_size; + + nybble = (*encoded)>>4; + new_sample = MS_ADPCM_nibble(state[0],nybble,coeff[0]); +@@ -223,8 +226,8 @@ + } + SDL_free(freeable); + return(0); +-too_short: +- SDL_SetError("Too short chunk for a MS ADPCM decoder"); ++invalid_size: ++ SDL_SetError("Unexpected chunk length for a MS ADPCM decoder"); + SDL_free(freeable); + return(-1); + invalid_predictor: diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch new file mode 100644 index 0000000000..d9a505217b --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch @@ -0,0 +1,80 @@ +# HG changeset patch +# User Petr Písař <ppisar@redhat.com> +# Date 1560182783 25200 +# Mon Jun 10 09:06:23 2019 -0700 +# Branch SDL-1.2 +# Node ID fcbecae427951bac1684baaba2ade68221315140 +# Parent a8afedbcaea0e84921dc770195c4699bda3ccdc5 +CVE-2019-7573, CVE-2019-7576: Fix buffer overreads in InitMS_ADPCM +If MS ADPCM format chunk was too short, InitMS_ADPCM() parsing it +could read past the end of chunk data. This patch fixes it. + +CVE-2019-7573 +https://bugzilla.libsdl.org/show_bug.cgi?id=4491 +CVE-2019-7576 +https://bugzilla.libsdl.org/show_bug.cgi?id=4490 + +Signed-off-by: Petr Písař <ppisar@redhat.com> + +CVE: CVE-2019-7573 +CVE: CVE-2019-7576 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +diff -r a8afedbcaea0 -r fcbecae42795 src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Mon Jun 10 08:57:11 2019 -0700 ++++ b/src/audio/SDL_wave.c Mon Jun 10 09:06:23 2019 -0700 +@@ -44,12 +44,13 @@ + struct MS_ADPCM_decodestate state[2]; + } MS_ADPCM_state; + +-static int InitMS_ADPCM(WaveFMT *format) ++static int InitMS_ADPCM(WaveFMT *format, int length) + { +- Uint8 *rogue_feel; ++ Uint8 *rogue_feel, *rogue_feel_end; + int i; + + /* Set the rogue pointer to the MS_ADPCM specific data */ ++ if (length < sizeof(*format)) goto too_short; + MS_ADPCM_state.wavefmt.encoding = SDL_SwapLE16(format->encoding); + MS_ADPCM_state.wavefmt.channels = SDL_SwapLE16(format->channels); + MS_ADPCM_state.wavefmt.frequency = SDL_SwapLE32(format->frequency); +@@ -58,9 +59,11 @@ + MS_ADPCM_state.wavefmt.bitspersample = + SDL_SwapLE16(format->bitspersample); + rogue_feel = (Uint8 *)format+sizeof(*format); ++ rogue_feel_end = (Uint8 *)format + length; + if ( sizeof(*format) == 16 ) { + rogue_feel += sizeof(Uint16); + } ++ if (rogue_feel + 4 > rogue_feel_end) goto too_short; + MS_ADPCM_state.wSamplesPerBlock = ((rogue_feel[1]<<8)|rogue_feel[0]); + rogue_feel += sizeof(Uint16); + MS_ADPCM_state.wNumCoef = ((rogue_feel[1]<<8)|rogue_feel[0]); +@@ -70,12 +73,16 @@ + return(-1); + } + for ( i=0; i<MS_ADPCM_state.wNumCoef; ++i ) { ++ if (rogue_feel + 4 > rogue_feel_end) goto too_short; + MS_ADPCM_state.aCoeff[i][0] = ((rogue_feel[1]<<8)|rogue_feel[0]); + rogue_feel += sizeof(Uint16); + MS_ADPCM_state.aCoeff[i][1] = ((rogue_feel[1]<<8)|rogue_feel[0]); + rogue_feel += sizeof(Uint16); + } + return(0); ++too_short: ++ SDL_SetError("Unexpected length of a chunk with a MS ADPCM format"); ++ return(-1); + } + + static Sint32 MS_ADPCM_nibble(struct MS_ADPCM_decodestate *state, +@@ -495,7 +502,7 @@ + break; + case MS_ADPCM_CODE: + /* Try to understand this */ +- if ( InitMS_ADPCM(format) < 0 ) { ++ if ( InitMS_ADPCM(format, lenread) < 0 ) { + was_error = 1; + goto done; + } diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch new file mode 100644 index 0000000000..63680b8b7f --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch @@ -0,0 +1,118 @@ +# HG changeset patch +# User Petr Písař <ppisar@redhat.com> +# Date 1560182051 25200 +# Mon Jun 10 08:54:11 2019 -0700 +# Branch SDL-1.2 +# Node ID 416136310b88cbeeff8773e573e90ac1e22b3526 +# Parent a6e3d2f5183e1cc300ad993e10e9ce077e13bd9c +CVE-2019-7577: Fix a buffer overread in MS_ADPCM_decode +If RIFF/WAV data chunk length is shorter then expected for an audio +format defined in preceeding RIFF/WAV format headers, a buffer +overread can happen. + +This patch fixes it by checking a MS ADPCM data to be decoded are not +past the initialized buffer. + +CVE-2019-7577 +Reproducer: https://bugzilla.libsdl.org/show_bug.cgi?id=4492 + +Signed-off-by: Petr Písař <ppisar@redhat.com> + +# HG changeset patch +# User Petr Písař <ppisar@redhat.com> +# Date 1560182069 25200 +# Mon Jun 10 08:54:29 2019 -0700 +# Branch SDL-1.2 +# Node ID faf9abbcfb5fe0d0ca23c4bf0394aa226ceccf02 +# Parent 416136310b88cbeeff8773e573e90ac1e22b3526 +CVE-2019-7577: Fix a buffer overread in MS_ADPCM_nibble and MS_ADPCM_decode +If a chunk of RIFF/WAV file with MS ADPCM encoding contains an invalid +predictor (a valid predictor's value is between 0 and 6 inclusive), +a buffer overread can happen when the predictor is used as an index +into an array of MS ADPCM coefficients. + +The overead happens when indexing MS_ADPCM_state.aCoeff[] array in +MS_ADPCM_decode() and later when dereferencing a coef pointer in +MS_ADPCM_nibble(). + +This patch fixes it by checking the MS ADPCM predictor values fit +into the valid range. + +CVE-2019-7577 +Reproducer: https://bugzilla.libsdl.org/show_bug.cgi?id=4492 + +Signed-off-by: Petr Písař <ppisar@redhat.com> + +CVE: CVE-2019-7577 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +Refresh CVE-2019-7577.patch as it can't be applyed when using PATCHTOOL = "patch". +Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> +--- + src/audio/SDL_wave.c | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c +index b4ad6c7..0bcf7e2 100644 +--- a/src/audio/SDL_wave.c ++++ b/src/audio/SDL_wave.c +@@ -115,7 +115,7 @@ static Sint32 MS_ADPCM_nibble(struct MS_ADPCM_decodestate *state, + static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + { + struct MS_ADPCM_decodestate *state[2]; +- Uint8 *freeable, *encoded, *decoded; ++ Uint8 *freeable, *encoded, *encoded_end, *decoded; + Sint32 encoded_len, samplesleft; + Sint8 nybble, stereo; + Sint16 *coeff[2]; +@@ -124,6 +124,7 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + /* Allocate the proper sized output buffer */ + encoded_len = *audio_len; + encoded = *audio_buf; ++ encoded_end = encoded + encoded_len; + freeable = *audio_buf; + *audio_len = (encoded_len/MS_ADPCM_state.wavefmt.blockalign) * + MS_ADPCM_state.wSamplesPerBlock* +@@ -141,10 +142,14 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + state[1] = &MS_ADPCM_state.state[stereo]; + while ( encoded_len >= MS_ADPCM_state.wavefmt.blockalign ) { + /* Grab the initial information for this block */ ++ if (encoded + 7 + (stereo ? 7 : 0) > encoded_end) goto too_short; + state[0]->hPredictor = *encoded++; + if ( stereo ) { + state[1]->hPredictor = *encoded++; + } ++ if (state[0]->hPredictor >= 7 || state[1]->hPredictor >= 7) { ++ goto invalid_predictor; ++ } + state[0]->iDelta = ((encoded[1]<<8)|encoded[0]); + encoded += sizeof(Sint16); + if ( stereo ) { +@@ -188,6 +193,8 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + samplesleft = (MS_ADPCM_state.wSamplesPerBlock-2)* + MS_ADPCM_state.wavefmt.channels; + while ( samplesleft > 0 ) { ++ if (encoded + 1 > encoded_end) goto too_short; ++ + nybble = (*encoded)>>4; + new_sample = MS_ADPCM_nibble(state[0],nybble,coeff[0]); + decoded[0] = new_sample&0xFF; +@@ -209,6 +216,14 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len) + } + SDL_free(freeable); + return(0); ++too_short: ++ SDL_SetError("Too short chunk for a MS ADPCM decoder"); ++ SDL_free(freeable); ++ return(-1); ++invalid_predictor: ++ SDL_SetError("Invalid predictor value for a MS ADPCM decoder"); ++ SDL_free(freeable); ++ return(-1); + } + + struct IMA_ADPCM_decodestate { +-- +2.7.4 + diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch new file mode 100644 index 0000000000..7028890333 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch @@ -0,0 +1,64 @@ +# HG changeset patch +# User Petr Písař <ppisar@redhat.com> +# Date 1560042129 25200 +# Sat Jun 08 18:02:09 2019 -0700 +# Branch SDL-1.2 +# Node ID 388987dff7bf8f1e214e69c2e4f1aa31e06396b5 +# Parent e52413f5258600878f9a10d2f92605a729aa8976 +CVE-2019-7578: Fix a buffer overread in InitIMA_ADPCM +If IMA ADPCM format chunk was too short, InitIMA_ADPCM() parsing it +could read past the end of chunk data. This patch fixes it. + +CVE-2019-7578 +https://bugzilla.libsdl.org/show_bug.cgi?id=4494 + +Signed-off-by: Petr Písař <ppisar@redhat.com> + +CVE: CVE-2019-7578 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +diff -r e52413f52586 -r 388987dff7bf src/audio/SDL_wave.c +--- a/src/audio/SDL_wave.c Sat Jun 08 17:57:43 2019 -0700 ++++ b/src/audio/SDL_wave.c Sat Jun 08 18:02:09 2019 -0700 +@@ -222,11 +222,12 @@ + struct IMA_ADPCM_decodestate state[2]; + } IMA_ADPCM_state; + +-static int InitIMA_ADPCM(WaveFMT *format) ++static int InitIMA_ADPCM(WaveFMT *format, int length) + { +- Uint8 *rogue_feel; ++ Uint8 *rogue_feel, *rogue_feel_end; + + /* Set the rogue pointer to the IMA_ADPCM specific data */ ++ if (length < sizeof(*format)) goto too_short; + IMA_ADPCM_state.wavefmt.encoding = SDL_SwapLE16(format->encoding); + IMA_ADPCM_state.wavefmt.channels = SDL_SwapLE16(format->channels); + IMA_ADPCM_state.wavefmt.frequency = SDL_SwapLE32(format->frequency); +@@ -235,11 +236,16 @@ + IMA_ADPCM_state.wavefmt.bitspersample = + SDL_SwapLE16(format->bitspersample); + rogue_feel = (Uint8 *)format+sizeof(*format); ++ rogue_feel_end = (Uint8 *)format + length; + if ( sizeof(*format) == 16 ) { + rogue_feel += sizeof(Uint16); + } ++ if (rogue_feel + 2 > rogue_feel_end) goto too_short; + IMA_ADPCM_state.wSamplesPerBlock = ((rogue_feel[1]<<8)|rogue_feel[0]); + return(0); ++too_short: ++ SDL_SetError("Unexpected length of a chunk with an IMA ADPCM format"); ++ return(-1); + } + + static Sint32 IMA_ADPCM_nibble(struct IMA_ADPCM_decodestate *state,Uint8 nybble) +@@ -471,7 +477,7 @@ + break; + case IMA_ADPCM_CODE: + /* Try to understand this */ +- if ( InitIMA_ADPCM(format) < 0 ) { ++ if ( InitIMA_ADPCM(format, lenread) < 0 ) { + was_error = 1; + goto done; + } diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch new file mode 100644 index 0000000000..78af1b061d --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch @@ -0,0 +1,63 @@ +# HG changeset patch +# User Petr Písař <ppisar@redhat.com> +# Date 1560259692 25200 +# Tue Jun 11 06:28:12 2019 -0700 +# Branch SDL-1.2 +# Node ID f1f5878be5dbf63c1161a8ee52b8a86ece30e552 +# Parent a936f9bd3e381d67d8ddee8b9243f85799ea4798 +CVE-2019-7635: Reject BMP images with pixel colors out the palette +If a 1-, 4-, or 8-bit per pixel BMP image declares less used colors +than the palette offers an SDL_Surface with a palette of the indicated +number of used colors is created. If some of the image's pixel +refer to a color number higher then the maximal used colors, a subsequent +bliting operation on the surface will look up a color past a blit map +(that is based on the palette) memory. I.e. passing such SDL_Surface +to e.g. an SDL_DisplayFormat() function will result in a buffer overread in +a blit function. + +This patch fixes it by validing each pixel's color to be less than the +maximal color number in the palette. A validation failure raises an +error from a SDL_LoadBMP_RW() function. + +CVE-2019-7635 +https://bugzilla.libsdl.org/show_bug.cgi?id=4498 + +Signed-off-by: Petr Písař <ppisar@redhat.com> + +CVE: CVE-2019-7635 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +diff -r a936f9bd3e38 -r f1f5878be5db src/video/SDL_bmp.c +--- a/src/video/SDL_bmp.c Mon Jun 10 09:25:05 2019 -0700 ++++ b/src/video/SDL_bmp.c Tue Jun 11 06:28:12 2019 -0700 +@@ -308,6 +308,12 @@ + } + *(bits+i) = (pixel>>shift); + pixel <<= ExpandBMP; ++ if ( bits[i] >= biClrUsed ) { ++ SDL_SetError( ++ "A BMP image contains a pixel with a color out of the palette"); ++ was_error = SDL_TRUE; ++ goto done; ++ } + } } + break; + +@@ -318,6 +324,16 @@ + was_error = SDL_TRUE; + goto done; + } ++ if ( 8 == biBitCount && palette && biClrUsed < (1 << biBitCount ) ) { ++ for ( i=0; i<surface->w; ++i ) { ++ if ( bits[i] >= biClrUsed ) { ++ SDL_SetError( ++ "A BMP image contains a pixel with a color out of the palette"); ++ was_error = SDL_TRUE; ++ goto done; ++ } ++ } ++ } + #if SDL_BYTEORDER == SDL_BIG_ENDIAN + /* Byte-swap the pixels if needed. Note that the 24bpp + case has already been taken care of above. */ diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch new file mode 100644 index 0000000000..c95338e61a --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch @@ -0,0 +1,192 @@ +# HG changeset patch +# User Petr Písař <ppisar@redhat.com> +# Date 1552788984 25200 +# Sat Mar 16 19:16:24 2019 -0700 +# Branch SDL-1.2 +# Node ID 9b0e5c555c0f5ce6d2c3c19da6cc2c7fb5048bf2 +# Parent 4646533663ae1d80c2cc6b2d6dbfb37c62491c1e +CVE-2019-7637: Fix in integer overflow in SDL_CalculatePitch +If a too large width is passed to SDL_SetVideoMode() the width travels +to SDL_CalculatePitch() where the width (e.g. 65535) is multiplied by +BytesPerPixel (e.g. 4) and the result is stored into Uint16 pitch +variable. During this arithmetics an integer overflow can happen (e.g. +the value is clamped as 65532). As a result SDL_Surface with a pitch +smaller than width * BytesPerPixel is created, too small pixel buffer +is allocated and when the SDL_Surface is processed in SDL_FillRect() +a buffer overflow occurs. + +This can be reproduced with "./graywin -width 21312312313123213213213" +command. + +This patch fixes is by using a very careful arithmetics in +SDL_CalculatePitch(). If an overflow is detected, an error is reported +back as a special 0 value. We assume that 0-width surfaces do not +occur in the wild. Since SDL_CalculatePitch() is a private function, +we can change the semantics. + +CVE-2019-7637 +https://bugzilla.libsdl.org/show_bug.cgi?id=4497 + +Signed-off-by: Petr Písař <ppisar@redhat.com> + +CVE: CVE-2019-7637 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +diff -r 4646533663ae -r 9b0e5c555c0f src/video/SDL_pixels.c +--- a/src/video/SDL_pixels.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/SDL_pixels.c Sat Mar 16 19:16:24 2019 -0700 +@@ -286,26 +286,53 @@ + } + } + /* +- * Calculate the pad-aligned scanline width of a surface ++ * Calculate the pad-aligned scanline width of a surface. Return 0 in case of ++ * an error. + */ + Uint16 SDL_CalculatePitch(SDL_Surface *surface) + { +- Uint16 pitch; ++ unsigned int pitch = 0; + + /* Surface should be 4-byte aligned for speed */ +- pitch = surface->w*surface->format->BytesPerPixel; ++ /* The code tries to prevent from an Uint16 overflow. */; ++ for (Uint8 byte = surface->format->BytesPerPixel; byte; byte--) { ++ pitch += (unsigned int)surface->w; ++ if (pitch < surface->w) { ++ SDL_SetError("A scanline is too wide"); ++ return(0); ++ } ++ } + switch (surface->format->BitsPerPixel) { + case 1: +- pitch = (pitch+7)/8; ++ if (pitch % 8) { ++ pitch = pitch / 8 + 1; ++ } else { ++ pitch = pitch / 8; ++ } + break; + case 4: +- pitch = (pitch+1)/2; ++ if (pitch % 2) { ++ pitch = pitch / 2 + 1; ++ } else { ++ pitch = pitch / 2; ++ } + break; + default: + break; + } +- pitch = (pitch + 3) & ~3; /* 4-byte aligning */ +- return(pitch); ++ /* 4-byte aligning */ ++ if (pitch & 3) { ++ if (pitch + 3 < pitch) { ++ SDL_SetError("A scanline is too wide"); ++ return(0); ++ } ++ pitch = (pitch + 3) & ~3; ++ } ++ if (pitch > 0xFFFF) { ++ SDL_SetError("A scanline is too wide"); ++ return(0); ++ } ++ return((Uint16)pitch); + } + /* + * Match an RGB value to a particular palette index +diff -r 4646533663ae -r 9b0e5c555c0f src/video/gapi/SDL_gapivideo.c +--- a/src/video/gapi/SDL_gapivideo.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/gapi/SDL_gapivideo.c Sat Mar 16 19:16:24 2019 -0700 +@@ -733,6 +733,9 @@ + video->w = gapi->w = width; + video->h = gapi->h = height; + video->pitch = SDL_CalculatePitch(video); ++ if (!current->pitch) { ++ return(NULL); ++ } + + /* Small fix for WinCE/Win32 - when activating window + SDL_VideoSurface is equal to zero, so activating code +diff -r 4646533663ae -r 9b0e5c555c0f src/video/nanox/SDL_nxvideo.c +--- a/src/video/nanox/SDL_nxvideo.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/nanox/SDL_nxvideo.c Sat Mar 16 19:16:24 2019 -0700 +@@ -378,6 +378,10 @@ + current -> w = width ; + current -> h = height ; + current -> pitch = SDL_CalculatePitch (current) ; ++ if (!current->pitch) { ++ current = NULL; ++ goto done; ++ } + NX_ResizeImage (this, current, flags) ; + } + +diff -r 4646533663ae -r 9b0e5c555c0f src/video/ps2gs/SDL_gsvideo.c +--- a/src/video/ps2gs/SDL_gsvideo.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/ps2gs/SDL_gsvideo.c Sat Mar 16 19:16:24 2019 -0700 +@@ -479,6 +479,9 @@ + current->w = width; + current->h = height; + current->pitch = SDL_CalculatePitch(current); ++ if (!current->pitch) { ++ return(NULL); ++ } + + /* Memory map the DMA area for block memory transfer */ + if ( ! mapped_mem ) { +diff -r 4646533663ae -r 9b0e5c555c0f src/video/ps3/SDL_ps3video.c +--- a/src/video/ps3/SDL_ps3video.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/ps3/SDL_ps3video.c Sat Mar 16 19:16:24 2019 -0700 +@@ -339,6 +339,9 @@ + current->w = width; + current->h = height; + current->pitch = SDL_CalculatePitch(current); ++ if (!current->pitch) { ++ return(NULL); ++ } + + /* Alloc aligned mem for current->pixels */ + s_pixels = memalign(16, current->h * current->pitch); +diff -r 4646533663ae -r 9b0e5c555c0f src/video/windib/SDL_dibvideo.c +--- a/src/video/windib/SDL_dibvideo.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/windib/SDL_dibvideo.c Sat Mar 16 19:16:24 2019 -0700 +@@ -675,6 +675,9 @@ + video->w = width; + video->h = height; + video->pitch = SDL_CalculatePitch(video); ++ if (!current->pitch) { ++ return(NULL); ++ } + + /* Small fix for WinCE/Win32 - when activating window + SDL_VideoSurface is equal to zero, so activating code +diff -r 4646533663ae -r 9b0e5c555c0f src/video/windx5/SDL_dx5video.c +--- a/src/video/windx5/SDL_dx5video.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/windx5/SDL_dx5video.c Sat Mar 16 19:16:24 2019 -0700 +@@ -1127,6 +1127,9 @@ + video->w = width; + video->h = height; + video->pitch = SDL_CalculatePitch(video); ++ if (!current->pitch) { ++ return(NULL); ++ } + + #ifndef NO_CHANGEDISPLAYSETTINGS + /* Set fullscreen mode if appropriate. +diff -r 4646533663ae -r 9b0e5c555c0f src/video/x11/SDL_x11video.c +--- a/src/video/x11/SDL_x11video.c Sat Mar 16 18:35:33 2019 -0700 ++++ b/src/video/x11/SDL_x11video.c Sat Mar 16 19:16:24 2019 -0700 +@@ -1225,6 +1225,10 @@ + current->w = width; + current->h = height; + current->pitch = SDL_CalculatePitch(current); ++ if (!current->pitch) { ++ current = NULL; ++ goto done; ++ } + if (X11_ResizeImage(this, current, flags) < 0) { + current = NULL; + goto done; diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch new file mode 100644 index 0000000000..dab9aaeb2b --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch @@ -0,0 +1,38 @@ +# HG changeset patch +# User Sam Lantinga <slouken@libsdl.org> +# Date 1550504903 28800 +# Mon Feb 18 07:48:23 2019 -0800 +# Branch SDL-1.2 +# Node ID 19d8c3b9c25143f71a34ff40ce1df91b4b3e3b78 +# Parent 8586f153eedec4c4e07066d6248ebdf67f10a229 +Fixed bug 4500 - Heap-Buffer Overflow in Map1toN pertaining to SDL_pixels.c + +Petr Pisar + +The reproducer has these data in BITMAPINFOHEADER: + +biSize = 40 +biBitCount = 8 +biClrUsed = 131075 + +SDL_LoadBMP_RW() function passes biBitCount as a color depth to SDL_CreateRGBSurface(), thus 256-color pallete is allocated. But then biClrUsed colors are read from a file and stored into the palette. SDL_LoadBMP_RW should report an error if biClrUsed is greater than 2^biBitCount. + +CVE: CVE-2019-7638 +CVE: CVE-2019-7636 +Upstream-Status: Backport +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +diff -r 8586f153eede -r 19d8c3b9c251 src/video/SDL_bmp.c +--- a/src/video/SDL_bmp.c Sun Jan 13 15:27:50 2019 +0100 ++++ b/src/video/SDL_bmp.c Mon Feb 18 07:48:23 2019 -0800 +@@ -233,6 +233,10 @@ + if ( palette ) { + if ( biClrUsed == 0 ) { + biClrUsed = 1 << biBitCount; ++ } else if ( biClrUsed > (1 << biBitCount) ) { ++ SDL_SetError("BMP file has an invalid number of colors"); ++ was_error = SDL_TRUE; ++ goto done; + } + if ( biSize == 12 ) { + for ( i = 0; i < (int)biClrUsed; ++i ) { diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch new file mode 100644 index 0000000000..7561300cb3 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch @@ -0,0 +1,28 @@ +CVE: CVE-2022-34568 +Upstream-Status: Backport [https://github.com/libsdl-org/SDL-1.2/commit/d7e00208738a0bc6af302723fe64908ac35b777b ] +Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> + +From d7e00208738a0bc6af302723fe64908ac35b777b Mon Sep 17 00:00:00 2001 +From: Ozkan Sezer <sezeroz@gmail.com> +Date: Sat, 18 Jun 2022 14:55:00 +0300 +Subject: [PATCH] SDL_x11yuv.c: fix possible use-after-free + +Fixes: https://github.com/libsdl-org/SDL-1.2/issues/863 +--- + src/video/x11/SDL_x11yuv.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/video/x11/SDL_x11yuv.c b/src/video/x11/SDL_x11yuv.c +index 62698dfd9..0d5754e3e 100644 +--- a/src/video/x11/SDL_x11yuv.c ++++ b/src/video/x11/SDL_x11yuv.c +@@ -374,8 +374,8 @@ SDL_Overlay *X11_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, S + #ifdef PITCH_WORKAROUND + if ( hwdata->image != NULL && hwdata->image->pitches[0] != (width*bpp) ) { + /* Ajust overlay width according to pitch */ +- XFree(hwdata->image); + width = hwdata->image->pitches[0] / bpp; ++ XFree(hwdata->image); + hwdata->image = SDL_NAME(XvCreateImage)(GFX_Display, xv_port, format, + 0, width, height); + } diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch new file mode 100644 index 0000000000..f98b927522 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch @@ -0,0 +1,19 @@ +libX11-1.5.99.901 has changed prototype of _XData32 + +Upstream-Status: Backport +<http://bugzilla.libsdl.org/show_bug.cgi?id=1769> + +Signed-off-by: Saul Wold <sgw@linux.intel.com> + +diff -r b6b2829cd7ef src/video/x11/SDL_x11sym.h +--- a/src/video/x11/SDL_x11sym.h Wed Feb 27 15:20:31 2013 -0800 ++++ b/src/video/x11/SDL_x11sym.h Wed Mar 27 16:07:23 2013 +0100 +@@ -165,7 +165,7 @@ + */ + #ifdef LONG64 + SDL_X11_MODULE(IO_32BIT) +-SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return) ++SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return) + SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),) + #endif + diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch new file mode 100644 index 0000000000..913baa92a0 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch @@ -0,0 +1,187 @@ +Rather than code which doesn't even work properly when cross compiling, +lets just use pkg-config instead. Its a little simpler. + +RP 2014/6/20 + +Upstream-Status: Pending + +Index: SDL-1.2.15/sdl.m4 +=================================================================== +--- SDL-1.2.15.orig/sdl.m4 ++++ SDL-1.2.15/sdl.m4 +@@ -12,174 +12,8 @@ dnl Test for SDL, and define SDL_CFLAGS + dnl + AC_DEFUN([AM_PATH_SDL], + [dnl +-dnl Get the cflags and libraries from the sdl-config script +-dnl +-AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)], +- sdl_prefix="$withval", sdl_prefix="") +-AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)], +- sdl_exec_prefix="$withval", sdl_exec_prefix="") +-AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program], +- , enable_sdltest=yes) +- +- if test x$sdl_exec_prefix != x ; then +- sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix" +- if test x${SDL_CONFIG+set} != xset ; then +- SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config +- fi +- fi +- if test x$sdl_prefix != x ; then +- sdl_config_args="$sdl_config_args --prefix=$sdl_prefix" +- if test x${SDL_CONFIG+set} != xset ; then +- SDL_CONFIG=$sdl_prefix/bin/sdl-config +- fi +- fi +- +- as_save_PATH="$PATH" +- if test "x$prefix" != xNONE; then +- PATH="$prefix/bin:$prefix/usr/bin:$PATH" +- fi +- AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH]) +- PATH="$as_save_PATH" + min_sdl_version=ifelse([$1], ,0.11.0,$1) +- AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) +- no_sdl="" +- if test "$SDL_CONFIG" = "no" ; then +- no_sdl=yes +- else +- SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags` +- SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs` +- +- sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \ +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` +- sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \ +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` +- sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` +- if test "x$enable_sdltest" = "xyes" ; then +- ac_save_CFLAGS="$CFLAGS" +- ac_save_CXXFLAGS="$CXXFLAGS" +- ac_save_LIBS="$LIBS" +- CFLAGS="$CFLAGS $SDL_CFLAGS" +- CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" +- LIBS="$LIBS $SDL_LIBS" +-dnl +-dnl Now check if the installed SDL is sufficiently new. (Also sanity +-dnl checks the results of sdl-config to some extent +-dnl +- rm -f conf.sdltest +- AC_TRY_RUN([ +-#include <stdio.h> +-#include <stdlib.h> +-#include <string.h> +-#include "SDL.h" +- +-char* +-my_strdup (char *str) +-{ +- char *new_str; +- +- if (str) +- { +- new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); +- strcpy (new_str, str); +- } +- else +- new_str = NULL; +- +- return new_str; +-} +- +-int main (int argc, char *argv[]) +-{ +- int major, minor, micro; +- char *tmp_version; +- +- /* This hangs on some systems (?) +- system ("touch conf.sdltest"); +- */ +- { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } +- +- /* HP/UX 9 (%@#!) writes to sscanf strings */ +- tmp_version = my_strdup("$min_sdl_version"); +- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { +- printf("%s, bad version string\n", "$min_sdl_version"); +- exit(1); +- } +- +- if (($sdl_major_version > major) || +- (($sdl_major_version == major) && ($sdl_minor_version > minor)) || +- (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) +- { +- return 0; +- } +- else +- { +- printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); +- printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); +- printf("*** best to upgrade to the required version.\n"); +- printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); +- printf("*** to point to the correct copy of sdl-config, and remove the file\n"); +- printf("*** config.cache before re-running configure\n"); +- return 1; +- } +-} +- +-],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) +- CFLAGS="$ac_save_CFLAGS" +- CXXFLAGS="$ac_save_CXXFLAGS" +- LIBS="$ac_save_LIBS" +- fi +- fi +- if test "x$no_sdl" = x ; then +- AC_MSG_RESULT(yes) +- ifelse([$2], , :, [$2]) +- else +- AC_MSG_RESULT(no) +- if test "$SDL_CONFIG" = "no" ; then +- echo "*** The sdl-config script installed by SDL could not be found" +- echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" +- echo "*** your path, or set the SDL_CONFIG environment variable to the" +- echo "*** full path to sdl-config." +- else +- if test -f conf.sdltest ; then +- : +- else +- echo "*** Could not run SDL test program, checking why..." +- CFLAGS="$CFLAGS $SDL_CFLAGS" +- CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" +- LIBS="$LIBS $SDL_LIBS" +- AC_TRY_LINK([ +-#include <stdio.h> +-#include "SDL.h" +- +-int main(int argc, char *argv[]) +-{ return 0; } +-#undef main +-#define main K_and_R_C_main +-], [ return 0; ], +- [ echo "*** The test program compiled, but did not run. This usually means" +- echo "*** that the run-time linker is not finding SDL or finding the wrong" +- echo "*** version of SDL. If it is not finding SDL, you'll need to set your" +- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" +- echo "*** to the installed location Also, make sure you have run ldconfig if that" +- echo "*** is required on your system" +- echo "***" +- echo "*** If you have an old version installed, it is best to remove it, although" +- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], +- [ echo "*** The test program failed to compile or link. See the file config.log for the" +- echo "*** exact error that occured. This usually means SDL was incorrectly installed" +- echo "*** or that you have moved SDL since it was installed. In the latter case, you" +- echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ]) +- CFLAGS="$ac_save_CFLAGS" +- CXXFLAGS="$ac_save_CXXFLAGS" +- LIBS="$ac_save_LIBS" +- fi +- fi +- SDL_CFLAGS="" +- SDL_LIBS="" +- ifelse([$3], , :, [$3]) +- fi ++ PKG_CHECK_MODULES([SDL], [sdl >= $min_sdl_version]) + AC_SUBST(SDL_CFLAGS) + AC_SUBST(SDL_LIBS) +- rm -f conf.sdltest + ]) diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb b/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb new file mode 100644 index 0000000000..666442fba2 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb @@ -0,0 +1,19 @@ +SUMMARY = "SDL graphics drawing primitives and other support functions" +SECTION = "libs" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5d1de21f0b70830e299905eac3419084" + +DEPENDS = "libsdl" + +SRC_URI = "http://www.ferzkopp.net/Software/SDL_gfx-2.0/SDL_gfx-${PV}.tar.gz" +SRC_URI[md5sum] = "ea24ed4b82ff1304809c363494fa8e16" +SRC_URI[sha256sum] = "556eedc06b6cf29eb495b6d27f2dcc51bf909ad82389ba2fa7bdc4dec89059c0" + +S = "${WORKDIR}/SDL_gfx-${PV}" + +inherit autotools pkgconfig + +EXTRA_OECONF += " \ + --disable-mmx \ +" + diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-image/0001-png-img-Fix-prototypes-of-callbacks.patch b/meta-oe/recipes-graphics/libsdl/libsdl-image/0001-png-img-Fix-prototypes-of-callbacks.patch new file mode 100644 index 0000000000..1bbfa99210 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-image/0001-png-img-Fix-prototypes-of-callbacks.patch @@ -0,0 +1,52 @@ +From 41791738221fdb7574fc8e23f84214910cdce098 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 1 Mar 2023 21:51:40 -0800 +Subject: [PATCH] png-img: Fix prototypes of callbacks + +Clang-16 is flagging function pointer mismatches + +Upstream-Status: Inappropriate [No upstream] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + IMG_png.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/IMG_png.c b/IMG_png.c +index 5f91f15..4d5bdb6 100644 +--- a/IMG_png.c ++++ b/IMG_png.c +@@ -78,15 +78,15 @@ + static struct { + int loaded; + void *handle; +- png_infop (*png_create_info_struct) (png_structp png_ptr); ++ png_infop (*png_create_info_struct) (png_const_structp png_ptr); + png_structp (*png_create_read_struct) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn); + void (*png_destroy_read_struct) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr); +- png_uint_32 (*png_get_IHDR) (png_structp png_ptr, png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_method, int *compression_method, int *filter_method); +- png_voidp (*png_get_io_ptr) (png_structp png_ptr); +- png_byte (*png_get_channels) (png_structp png_ptr, png_infop info_ptr); +- png_uint_32 (*png_get_PLTE) (png_structp png_ptr, png_infop info_ptr, png_colorp *palette, int *num_palette); +- png_uint_32 (*png_get_tRNS) (png_structp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values); +- png_uint_32 (*png_get_valid) (png_structp png_ptr, png_infop info_ptr, png_uint_32 flag); ++ png_uint_32 (*png_get_IHDR) (png_const_structp png_ptr, png_const_infop info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_method, int *compression_method, int *filter_method); ++ png_voidp (*png_get_io_ptr) (png_const_structp png_ptr); ++ png_byte (*png_get_channels) (png_const_structp png_ptr, png_const_infop info_ptr); ++ png_uint_32 (*png_get_PLTE) (png_const_structp png_ptr, png_infop info_ptr, png_colorp *palette, int *num_palette); ++ png_uint_32 (*png_get_tRNS) (png_const_structp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values); ++ png_uint_32 (*png_get_valid) (png_const_structp png_ptr, png_const_infop info_ptr, png_uint_32 flag); + void (*png_read_image) (png_structp png_ptr, png_bytepp image); + void (*png_read_info) (png_structp png_ptr, png_infop info_ptr); + void (*png_read_update_info) (png_structp png_ptr, png_infop info_ptr); +@@ -95,7 +95,7 @@ static struct { + void (*png_set_packing) (png_structp png_ptr); + void (*png_set_read_fn) (png_structp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn); + void (*png_set_strip_16) (png_structp png_ptr); +- int (*png_sig_cmp) (png_bytep sig, png_size_t start, png_size_t num_to_check); ++ int (*png_sig_cmp) (png_const_bytep sig, png_size_t start, png_size_t num_to_check); + #ifndef LIBPNG_VERSION_12 + jmp_buf* (*png_set_longjmp_fn) (png_structp, png_longjmp_ptr, size_t); + #endif +-- +2.39.2 + diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch b/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch new file mode 100644 index 0000000000..102cec7288 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch @@ -0,0 +1,45 @@ +Upstream-Status: Pending + +Index: SDL_image-1.2.12/configure.in +=================================================================== +--- SDL_image-1.2.12.orig/configure.in 2012-01-21 01:51:33.000000000 +0000 ++++ SDL_image-1.2.12/configure.in 2014-07-18 06:56:56.853466678 +0000 +@@ -1,5 +1,4 @@ + dnl Process this file with autoconf to produce a configure script. +-AC_INIT(README) + + dnl Set various version strings - taken gratefully from the GTk sources + +@@ -11,12 +10,19 @@ + # if backwards compatibility has been broken, + # set BINARY_AGE and INTERFACE_AGE to 0. + +-MAJOR_VERSION=1 +-MINOR_VERSION=2 +-MICRO_VERSION=12 ++m4_define([sdlimage_major_version],[1]) ++m4_define([sdlimage_minor_version],[2]) ++m4_define([sdlimage_micro_version],[12]) ++m4_define([sdlimage_version], [sdlimage_major_version.sdlimage_minor_version.sdlimage_micro_version]) ++ ++AC_INIT([SDL_image], [sdlimage_version]) ++ ++MAJOR_VERSION=sdlimage_major_version ++MINOR_VERSION=sdlimage_minor_version ++MICRO_VERSION=sdlimage_micro_version + INTERFACE_AGE=4 + BINARY_AGE=12 +-VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION ++VERSION=sdlimage_version + + AC_SUBST(MAJOR_VERSION) + AC_SUBST(MINOR_VERSION) +@@ -42,7 +48,7 @@ + AC_CANONICAL_HOST + + dnl Setup for automake +-AM_INIT_AUTOMAKE(SDL_image, $VERSION) ++AM_INIT_AUTOMAKE([foreign]) + + dnl Check for tools + AC_PROG_LIBTOOL diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb b/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb new file mode 100644 index 0000000000..01137bb0ca --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb @@ -0,0 +1,32 @@ +SUMMARY = "Simple DirectMedia Layer image library" +SECTION = "libs" + +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING;md5=613734b7586e1580ef944961c6d62227" + +DEPENDS = "tiff zlib libpng jpeg libsdl" + +SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL_image-${PV}.tar.gz \ + file://0001-png-img-Fix-prototypes-of-callbacks.patch \ + file://configure.patch" +SRC_URI[sha256sum] = "0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699" + +S = "${WORKDIR}/SDL_image-${PV}" + +inherit autotools pkgconfig + +export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config" + +# Disable the run-time loading of the libs and bring back the soname dependencies. +EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared" + +do_configure:prepend() { + # Removing these files fixes a libtool version mismatch. + rm -f ${S}/acinclude/libtool.m4 + rm -f ${S}/acinclude/sdl.m4 + rm -f ${S}/acinclude/pkg.m4 + rm -f ${S}/acinclude/lt~obsolete.m4 + rm -f ${S}/acinclude/ltoptions.m4 + rm -f ${S}/acinclude/ltsugar.m4 + rm -f ${S}/acinclude/ltversion.m4 +} diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch b/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch new file mode 100644 index 0000000000..7330ef61aa --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch @@ -0,0 +1,23 @@ +Upstream-Status: Pending + +diff -Nurd SDL_mixer-1.2.12/configure.in SDL_mixer-1.2.12/configure.in +--- SDL_mixer-1.2.12/configure.in 2012-01-16 00:01:05.000000000 +0200 ++++ SDL_mixer-1.2.12/configure.in 2012-12-15 04:08:04.627871456 +0200 +@@ -1,6 +1,5 @@ + dnl Process this file with autoconf to produce a configure script. + AC_INIT(README) +-AC_CONFIG_AUX_DIR(build-scripts) + + dnl Set various version strings - taken gratefully from the GTk sources + +@@ -40,10 +39,6 @@ + AC_SUBST(LT_REVISION) + AC_SUBST(LT_AGE) + +-dnl Detect the canonical build and host environments +-AC_CONFIG_AUX_DIRS($srcdir/build-scripts) +-dnl AC_CANONICAL_HOST +- + dnl Check for tools + AC_PROG_LIBTOOL + AC_PROG_CC diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-mixer_1.2.12.bb b/meta-oe/recipes-graphics/libsdl/libsdl-mixer_1.2.12.bb new file mode 100644 index 0000000000..a470ee81d0 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-mixer_1.2.12.bb @@ -0,0 +1,39 @@ +SUMMARY = "Simple DirectMedia Layer mixer library" +SECTION = "libs" +DEPENDS = "libsdl flac libmikmod libvorbis" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING;md5=a37a47a0e579e461474cd03b9e05199d" + +SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${PV}.tar.gz \ + file://configure.patch \ +" + +SRC_URI[md5sum] = "e03ff73d77a55e3572ad0217131dc4a1" +SRC_URI[sha256sum] = "1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a" + +S = "${WORKDIR}/SDL_mixer-${PV}" + +inherit autotools-brokensep pkgconfig + +EXTRA_AUTORECONF += "--include=acinclude" +EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}" + +PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad" + +do_configure () { + # Remove old libtool macros. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + for i in ${MACROS}; do + rm -f acinclude/$i + done + cp build-scripts/* . || true + rm -rf build-scripts/ + export SYSROOT=$PKG_CONFIG_SYSROOT_DIR + + autotools_do_configure + + rm config.log + for i in $(find -name "Makefile") ; do + sed -i -e 's:-L/usr/lib:-L${STAGING_LIBDIR}:g' $i + done +} diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch b/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch new file mode 100644 index 0000000000..7911a2aa75 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch @@ -0,0 +1,13 @@ +Upstream-Status: Pending + +diff -Nurd SDL_net-1.2.8/Makefile.am SDL_net-1.2.8/Makefile.am +--- SDL_net-1.2.8/Makefile.am 2012-01-15 18:20:10.000000000 +0200 ++++ SDL_net-1.2.8/Makefile.am 2014-08-01 21:18:52.720815807 +0300 +@@ -1,5 +1,7 @@ + # Makefile.am for the SDL sample image loading library and viewer + ++AUTOMAKE_OPTIONS = foreign ++ + lib_LTLIBRARIES = libSDL_net.la + + libSDL_netincludedir = $(includedir)/SDL diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch b/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch new file mode 100644 index 0000000000..e491c1abce --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch @@ -0,0 +1,23 @@ +From f9417c864183a0f6d0e90f66f5254a63b04a041a Mon Sep 17 00:00:00 2001 +From: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> +Date: Wed, 17 Oct 2012 20:51:51 +0200 + +--- +Upstream-Status: Pending + + configure.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configure.in b/configure.in +index c42bd0c..71a4825 100644 +--- a/configure.in ++++ b/configure.in +@@ -44,6 +44,8 @@ AC_CANONICAL_HOST + dnl Setup for automake + AM_INIT_AUTOMAKE(SDL_net, $VERSION) + ++dnl got macros ++AC_CONFIG_MACRO_DIR([acinclude]) + dnl Check for tools + AC_PROG_LIBTOOL + AC_PROG_CC diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb b/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb new file mode 100644 index 0000000000..49b1ef2879 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Simple DirectMedia Layer networking library." +SECTION = "libs/network" + +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING;md5=9cf3de2d872bf510f88eb20d06d700b5" + +inherit autotools pkgconfig + +DEPENDS = "libsdl" + +SRC_URI = " \ + https://www.libsdl.org/projects/SDL_net/release/SDL_net-${PV}.tar.gz \ + file://libtool2.patch \ + file://am_foreign.patch \ +" + +S = "${WORKDIR}/SDL_net-${PV}" + +SRC_URI[md5sum] = "20e64e61d65662db66c379034f11f718" +SRC_URI[sha256sum] = "5f4a7a8bb884f793c278ac3f3713be41980c5eedccecff0260411347714facb4" diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch b/meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch new file mode 100644 index 0000000000..d174d7ab5c --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch @@ -0,0 +1,64 @@ +From 8cf318197eea91bec6057308befbb29426d69014 Mon Sep 17 00:00:00 2001 +From: Richard Purdie <richard.purdie@linuxfoundation.org> +Date: Thu, 22 May 2014 10:59:33 +0100 +Subject: [PATCH] freetype-config was removed from oe-core in + +commit 5870bd272b0b077d0826fb900b251884c1c05061 + + binconfig-disabled: Add class and use + +--- +Upstream-Status: Pending + + configure.in | 38 +++++--------------------------------- + 1 file changed, 5 insertions(+), 33 deletions(-) + +diff --git a/configure.in b/configure.in +index 865075e..d7a5a81 100644 +--- a/configure.in ++++ b/configure.in +@@ -90,39 +90,11 @@ case "$host" in + esac + AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue) + +-dnl Check for the FreeType 2 library +-dnl +-dnl Get the cflags and libraries from the freetype-config script +-dnl +-AC_ARG_WITH(freetype-prefix,[ --with-freetype-prefix=PFX Prefix where FREETYPE is +-installed (optional)], +- freetype_prefix="$withval", freetype_prefix="") +-AC_ARG_WITH(freetype-exec-prefix,[ --with-freetype-exec-prefix=PFX Exec prefix +-where FREETYPE is installed (optional)], +- freetype_exec_prefix="$withval", freetype_exec_prefix="") +- +-if test x$freetype_exec_prefix != x ; then +- freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix" +- if test x${FREETYPE_CONFIG+set} != xset ; then +- FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config +- fi +-fi +-if test x$freetype_prefix != x ; then +- freetype_args="$freetype_args --prefix=$freetype_prefix" +- if test x${FREETYPE_CONFIG+set} != xset ; then +- FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config +- fi +-fi +-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) +-no_freetype="" +-if test "$FREETYPE_CONFIG" = "no" ; then +- AC_MSG_ERROR([ +-*** Unable to find FreeType2 library (http://www.freetype.org/) +-]) +-else +- CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`" +- LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`" +-fi ++PKG_CHECK_MODULES(FREETYPE2, freetype2, ++ CFLAGS="$CFLAGS $FREETYPE2_CFLAGS" ++ LIBS="$LIBS $FREETYPE2_LIBS", ++ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)]) ++) + + dnl Check for SDL + SDL_VERSION=1.2.4 diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-ttf_2.0.11.bb b/meta-oe/recipes-graphics/libsdl/libsdl-ttf_2.0.11.bb new file mode 100644 index 0000000000..797c38d8e1 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl-ttf_2.0.11.bb @@ -0,0 +1,29 @@ +SUMMARY = "Simple DirectMedia Layer truetype font library" +SECTION = "libs" +DEPENDS = "libsdl freetype" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING;md5=22800d1b3701377aae0b61ee36f5c303" + +SRC_URI = "http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${PV}.tar.gz \ + file://use.pkg-config.for.freetype2.patch \ +" +SRC_URI[md5sum] = "61e29bd9da8d245bc2471d1b2ce591aa" +SRC_URI[sha256sum] = "724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7" + +S = "${WORKDIR}/SDL_ttf-${PV}" + +inherit autotools pkgconfig + +LDFLAGS += "-lm" + +do_configure:prepend() { + # make autoreconf happy + touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog + + # Removing these files fixes a libtool version mismatch. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + + for i in ${MACROS}; do + rm -f ${S}/acinclude/$i + done +} diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.2.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.2.bb new file mode 100644 index 0000000000..267311853a --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.2.bb @@ -0,0 +1,30 @@ +SUMMARY = "Simple DirectMedia Layer image library v2" +SECTION = "libs" + +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2f6d9e01c97958aa851954ed5acf82ee" + +DEPENDS = "tiff zlib libpng jpeg libsdl2 libwebp" + +SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz" +SRC_URI[sha256sum] = "8f486bbfbcf8464dd58c9e5d93394ab0255ce68b51c5a966a918244820a76ddc" + +S = "${WORKDIR}/SDL2_image-${PV}" + +inherit autotools pkgconfig + +# Disable the run-time loading of the libs and bring back the soname dependencies. +EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared" + +do_configure:prepend() { + # make autoreconf happy + touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog + # Removing these files fixes a libtool version mismatch. + rm -f ${S}/acinclude/libtool.m4 + rm -f ${S}/acinclude/sdl2.m4 + rm -f ${S}/acinclude/pkg.m4 + rm -f ${S}/acinclude/lt~obsolete.m4 + rm -f ${S}/acinclude/ltoptions.m4 + rm -f ${S}/acinclude/ltsugar.m4 + rm -f ${S}/acinclude/ltversion.m4 +} diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-mixer/0001-configure.in-Undefine-AC_CONFIG_AUX_DIR.patch b/meta-oe/recipes-graphics/libsdl/libsdl2-mixer/0001-configure.in-Undefine-AC_CONFIG_AUX_DIR.patch new file mode 100644 index 0000000000..0605b32e30 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-mixer/0001-configure.in-Undefine-AC_CONFIG_AUX_DIR.patch @@ -0,0 +1,34 @@ +From 9363c98528ef850235852e44f678df6b5c011ee1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 7 Feb 2021 18:08:36 -0800 +Subject: [PATCH] configure.in: Undefine AC_CONFIG_AUX_DIR + +This helps reconfiguring with autotools 2.70+ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.in | 5 ----- + 1 file changed, 5 deletions(-) + +--- a/configure.in ++++ b/configure.in +@@ -1,7 +1,6 @@ + dnl Process this file with autoconf to produce a configure script. + AC_INIT(README.txt) + AC_CONFIG_AUX_DIR(build-scripts) +- + dnl Set various version strings - taken gratefully from the GTk sources + + # Making releases: +@@ -40,10 +39,6 @@ AC_SUBST(LT_CURRENT) + AC_SUBST(LT_REVISION) + AC_SUBST(LT_AGE) + +-dnl Detect the canonical build and host environments +-AC_CONFIG_AUX_DIRS($srcdir/build-scripts) +-dnl AC_CANONICAL_HOST +- + dnl Check for tools + AC_PROG_LIBTOOL + AC_PROG_CC diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb new file mode 100644 index 0000000000..dbcb2a193b --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb @@ -0,0 +1,27 @@ +SUMMARY = "Simple DirectMedia Layer mixer library V2" +SECTION = "libs" +DEPENDS = "libsdl2 flac libmikmod libvorbis" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=516daf7a177ad4c8874bb9efa1a69c1f" + +SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${PV}.tar.gz \ + file://0001-configure.in-Undefine-AC_CONFIG_AUX_DIR.patch \ + " +SRC_URI[sha256sum] = "b4cf5a382c061cd75081cf246c2aa2f9df8db04bdda8dcdc6b6cca55bede2419" + +S = "${WORKDIR}/SDL2_mixer-${PV}" + +inherit autotools-brokensep pkgconfig + +EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --disable-music-ogg-shared LIBS=-L${STAGING_LIBDIR}" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad" + +do_configure:prepend () { + # Remove old libtool macros. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + for i in ${MACROS}; do + rm -f acinclude/$i + done +} diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb new file mode 100644 index 0000000000..35369e8731 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Simple DirectMedia Layer networking library." +SECTION = "libs/network" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fe9d52a78585a65224776875510ed127" + +SRC_URI = " \ + https://www.libsdl.org/projects/SDL_net/release/SDL2_net-${PV}.tar.gz \ +" +S = "${WORKDIR}/SDL2_net-${PV}" + +inherit autotools pkgconfig + +DEPENDS = "libsdl2" + +SRC_URI[md5sum] = "5c1d9d1cfa63301b141cb5c0de2ea7c4" +SRC_URI[sha256sum] = "15ce8a7e5a23dafe8177c8df6e6c79b6749a03fff1e8196742d3571657609d21" + +do_configure:prepend() { + # create dummy files which autotools consider as mandatory + touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog + + # Remove old libtool macros. + for macro in libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4; do + echo ${S}/acinclude/macro + rm -f ${S}/acinclude/$macro + done +} diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/0001-freetype-Fix-function-signatures-to-match-without-ca.patch b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/0001-freetype-Fix-function-signatures-to-match-without-ca.patch new file mode 100644 index 0000000000..8cb76c35d6 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/0001-freetype-Fix-function-signatures-to-match-without-ca.patch @@ -0,0 +1,69 @@ +From 6c52693d264ca3dc8e15a92f56cf3a636639bb6c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st> +Date: Fri, 28 Oct 2022 22:17:15 +0300 +Subject: [PATCH] freetype: Fix function signatures to match without casts + +Clang 16 has got a new stricter warning for casts of function types +(see https://github.com/llvm/llvm-project/commit/1aad641c793090b4d036c03e737df2ebe2c32c57). + +This new warning gets included as part of the existing error +diagnostic setting of -Wcast-function-type. + +This fixes errors like these: + +../src/hb-ft.cc:1011:34: error: cast from 'void (*)(FT_Face)' (aka 'void (*)(FT_FaceRec_ *)') to 'FT_Generic_Finalizer' (aka 'void (*)(void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict] + ft_face->generic.finalizer = (FT_Generic_Finalizer) hb_ft_face_finalize; + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Upstream-Status: Backport [https://github.com/harfbuzz/harfbuzz/commit/d88269c827895b38f99f7cf741fa60210d4d5169] +--- + src/hb-ft.cc | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/src/hb-ft.cc b/src/hb-ft.cc +index a6beb9f0f..a35e75b18 100644 +--- a/src/hb-ft.cc ++++ b/src/hb-ft.cc +@@ -729,8 +729,9 @@ hb_ft_face_create_referenced (FT_Face ft_face) + } + + static void +-hb_ft_face_finalize (FT_Face ft_face) ++hb_ft_face_finalize (void *arg) + { ++ FT_Face ft_face = (FT_Face) arg; + hb_face_destroy ((hb_face_t *) ft_face->generic.data); + } + +@@ -762,7 +763,7 @@ hb_ft_face_create_cached (FT_Face ft_face) + ft_face->generic.finalizer (ft_face); + + ft_face->generic.data = hb_ft_face_create (ft_face, nullptr); +- ft_face->generic.finalizer = (FT_Generic_Finalizer) hb_ft_face_finalize; ++ ft_face->generic.finalizer = hb_ft_face_finalize; + } + + return hb_face_reference ((hb_face_t *) ft_face->generic.data); +@@ -949,8 +950,9 @@ get_ft_library () + } + + static void +-_release_blob (FT_Face ft_face) ++_release_blob (void *arg) + { ++ FT_Face ft_face = (FT_Face) arg; + hb_blob_destroy ((hb_blob_t *) ft_face->generic.data); + } + +@@ -1032,7 +1034,7 @@ hb_ft_font_set_funcs (hb_font_t *font) + #endif + + ft_face->generic.data = blob; +- ft_face->generic.finalizer = (FT_Generic_Finalizer) _release_blob; ++ ft_face->generic.finalizer = _release_blob; + + _hb_ft_font_set_funcs (font, ft_face, true); + hb_ft_font_set_load_flags (font, FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING); +-- +2.39.2 + diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch new file mode 100644 index 0000000000..bc9371553f --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch @@ -0,0 +1,23 @@ +From 6ec375eaafc43a2b3c30a0e0e49447d231d81a67 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 9 May 2017 00:57:10 -0700 + +--- +Upstream-Status: Pending + + Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Makefile.am b/Makefile.am +index 8568dd2..5efc91e 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -3,6 +3,8 @@ ACLOCAL_AMFLAGS = -I acinclude + + lib_LTLIBRARIES = libSDL2_ttf.la + ++AUTOMAKE_OPTIONS = foreign ++ + libSDL2_ttfincludedir = $(includedir)/SDL2 + libSDL2_ttfinclude_HEADERS = \ + SDL_ttf.h diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.2.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.2.bb new file mode 100644 index 0000000000..6cd4a48aa8 --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.2.bb @@ -0,0 +1,35 @@ +SUMMARY = "Simple DirectMedia Layer truetype font library" +SECTION = "libs" +DEPENDS = "libsdl2 freetype virtual/egl" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a41cbf59bdea749fe34c1af6d3615f68" + +SRC_URI = " \ + git://github.com/libsdl-org/SDL_ttf.git;branch=release-2.20.x;protocol=https \ + git://github.com/libsdl-org/freetype.git;branch=VER-2-12-1-SDL;destsuffix=git/external/freetype;name=freetype;protocol=https \ + git://github.com/libsdl-org/harfbuzz.git;branch=2.9.1-SDL;destsuffix=git/external/harfbuzz;name=harfbuzz;protocol=https \ + file://0001-freetype-Fix-function-signatures-to-match-without-ca.patch;patchdir=external/harfbuzz \ + file://automake_foreign.patch \ +" +SRCREV = "89d1692fd8fe91a679bb943d377bfbd709b52c23" +SRCREV_freetype = "6fc77cee03e078e97afcee0c0e06a2d3274b9a29" +SRCREV_harfbuzz = "43931e3e596c04044861770b831c8f9452e2d3b0" + +SRCREV_FORMAT .= "_freetype_harfbuzz" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig features_check + +# links to libGL.so +REQUIRED_DISTRO_FEATURES += "opengl" + +do_configure:prepend() { + # Removing these files fixes a libtool version mismatch. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + + for i in ${MACROS}; do + rm -f ${S}/acinclude/$i + done +} +ASNEEDED = "" diff --git a/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb b/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb new file mode 100644 index 0000000000..1f436c6d7f --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb @@ -0,0 +1,85 @@ +SUMMARY = "Simple DirectMedia Layer" +DESCRIPTION = "Simple DirectMedia Layer is a cross-platform multimedia \ +library designed to provide low level access to audio, keyboard, mouse, \ +joystick, 3D hardware via OpenGL, and 2D video framebuffer." +HOMEPAGE = "http://www.libsdl.org" +BUGTRACKER = "http://bugzilla.libsdl.org/" + +SECTION = "libs" + +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=27818cd7fd83877a8e3ef82b82798ef4" + + +SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \ + file://libsdl-1.2.15-xdata32.patch \ + file://pkgconfig.patch \ + file://0001-build-Pass-tag-CC-explictly-when-using-libtool.patch \ + file://0001-stdlib-Make-iconv-use-portable-across-glibc-musl.patch \ + file://CVE-2019-7577.patch \ + file://CVE-2019-7574.patch \ + file://CVE-2019-7572.patch \ + file://CVE-2019-7578.patch \ + file://CVE-2019-7575.patch \ + file://CVE-2019-7635.patch \ + file://CVE-2019-7637.patch \ + file://CVE-2019-7638.patch \ + file://CVE-2019-7576.patch \ + file://CVE-2019-13616.patch \ + file://CVE-2022-34568.patch \ + " + +UPSTREAM_CHECK_REGEX = "SDL-(?P<pver>\d+(\.\d+)+)\.tar" + +S = "${WORKDIR}/SDL-${PV}" + +SRC_URI[md5sum] = "9d96df8417572a2afb781a7c4c811a85" +SRC_URI[sha256sum] = "d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00" + +BINCONFIG = "${bindir}/sdl-config" + +inherit autotools lib_package binconfig-disabled pkgconfig + +CVE_PRODUCT = "simple_directmedia_layer sdl" + +EXTRA_OECONF = "--disable-static --enable-cdrom --enable-threads --enable-timers \ + --enable-file --disable-oss --disable-esd --disable-arts \ + --disable-diskaudio --disable-nas \ + --disable-mintaudio --disable-nasm --disable-video-dga \ + --disable-video-fbcon --disable-video-ps2gs --disable-video-ps3 \ + --disable-xbios --disable-gem --disable-video-dummy \ + --enable-input-events --enable-pthreads \ + --disable-video-svga \ + --disable-video-picogui --disable-video-qtopia --enable-sdl-dlopen \ + --disable-rpath" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}" +PACKAGECONFIG:class-native = "x11" +PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[alsa] = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib" +PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" +PACKAGECONFIG[tslib] = "--enable-input-tslib, --disable-input-tslib, tslib" +PACKAGECONFIG[directfb] = "--enable-video-directfb, --disable-video-directfb, directfb" +PACKAGECONFIG[opengl] = "--enable-video-opengl, --disable-video-opengl, virtual/libgl libglu" +PACKAGECONFIG[x11] = "--enable-video-x11 --disable-x11-shared, --disable-video-x11, virtual/libx11 libxext libxrandr libxrender" + +# The following two options should only enabled with mingw support +PACKAGECONFIG[stdio-redirect] = "--enable-stdio-redirect,--disable-stdio-redirect" +PACKAGECONFIG[directx] = "--enable-directx,--disable-directx" + +EXTRA_AUTORECONF += "--include=acinclude --exclude=autoheader" + +do_configure:prepend() { + # Remove old libtool macros. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + for i in ${MACROS}; do + rm -f ${S}/acinclude/$i + done + export SYSROOT=$PKG_CONFIG_SYSROOT_DIR +} + +BBCLASSEXTEND = "native nativesdk" + +CVE_STATUS[CVE-2019-14906] = "not-applicable-platform: Applies on RHEL only" diff --git a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb b/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb deleted file mode 100644 index 38dac06e64..0000000000 --- a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION = "library for easy implementation of a RDP/VNC server" -HOMEPAGE = "https://libvnc.github.io" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f" - -DEPENDS += "zlib libsdl jpeg libpng gtk+ libgcrypt nettle gnutls gmp" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}" -PACKAGECONFIG[systemd] = ",,systemd" - -RDEPENDS_${PN} += "libpng gtk+ libgcrypt" - -inherit distro_features_check autotools binconfig pkgconfig - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "https://github.com/LibVNC/libvncserver/archive/LibVNCServer-${PV}.tar.gz" -SRC_URI[md5sum] = "7f06104d5c009813e95142932c4ddb06" -SRC_URI[sha256sum] = "193d630372722a532136fd25c5326b2ca1a636cbb8bf9bb115ef869c804d2894" - -S = "${WORKDIR}/${BPN}-LibVNCServer-${PV}" - -TARGET_LDFLAGS += "-lgcrypt" diff --git a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.14.bb b/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.14.bb new file mode 100644 index 0000000000..ce01593b8b --- /dev/null +++ b/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.14.bb @@ -0,0 +1,56 @@ +DESCRIPTION = "library for easy implementation of a RDP/VNC server" +HOMEPAGE = "https://libvnc.github.io" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f" + +# ffmpeg support is not currently compatible with ffmpeg 5.0 +PACKAGECONFIG ??= " \ + 24bpp \ + filetransfer \ + gcrypt \ + gnutls \ + jpeg \ + lzo \ + png \ + pthread \ + ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '',d)} \ + sdl \ + websockets \ + zlib \ +" + +PACKAGECONFIG[24bpp] = "-DWITH_24BPP=ON,-DWITH_24BPP=OFF," +PACKAGECONFIG[filetransfer] = "-DWITH_TIGHTVNC_FILETRANSFER=ON,-DWITH_TIGHTVNC_FILETRANSFER=OFF," +PACKAGECONFIG[ffmpeg] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,ffmpeg,ffmpeg" +PACKAGECONFIG[gcrypt] = "-DWITH_GCRYPT=ON,-DWITH_GCRYPT=OFF,libgcrypt,libgcrypt" +PACKAGECONFIG[gnutls] = "-DWITH_GNUTLS=ON,-DWITH_GNUTLS=OFF,gnutls" +PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg" +PACKAGECONFIG[ipv6] = "-DWITH_IPv6=ON,-DWITH_IPv6=OFF," +PACKAGECONFIG[lzo] = "-DWITH_LZO=ON,-DWITH_LZO=OFF,lzo" +PACKAGECONFIG[openssl] = "-DWITH_OPENSSL=ON,-DWITH_OPENSSL=OFF,openssl" +PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,libpng" +PACKAGECONFIG[pthread] = "-DWITH_THREADS=ON,-DWITH_THREADS=OFF," +PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd" +PACKAGECONFIG[sasl] = "-DWITH_SASL=ON,-DWITH_SASL=OFF,cyrus-sasl" +PACKAGECONFIG[sdl] = "-DWITH_SDL=ON,-DWITH_SDL=OFF,libsdl2" +PACKAGECONFIG[websockets] = "-DWITH_WEBSOCKETS=ON,-DWITH_WEBSOCKETS=OFF," +PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib" + +PACKAGE_BEFORE_PN = "libvncclient" +FILES:libvncclient = "${libdir}/libvncclient.*" + +inherit cmake + +SRC_URI = "git://github.com/LibVNC/libvncserver;branch=master;protocol=https" +SRCREV = "10e9eb75f73e973725dc75c373de5d89807af028" + +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = "-DMAKE_INSTALL_LIBDIR=${libdir}" + +do_install:append() { + sed -i -e 's|${STAGING_DIR_HOST}||g' ${D}${libdir}/cmake/LibVNCServer/LibVNCServerTargets.cmake +} diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch index 045f3cafab..1affe84f6e 100644 --- a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch +++ b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch @@ -16,8 +16,6 @@ Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> src/ncursesw.h | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) -diff --git a/src/NCApplication.cc b/src/NCApplication.cc -index 5bcf969..510f034 100644 --- a/src/NCApplication.cc +++ b/src/NCApplication.cc @@ -23,7 +23,7 @@ @@ -29,8 +27,6 @@ index 5bcf969..510f034 100644 #define YUILogComponent "ncurses" #include <yui/YUILog.h> -diff --git a/src/NCstyle.h b/src/NCstyle.h -index a40d5a8..3657917 100644 --- a/src/NCstyle.h +++ b/src/NCstyle.h @@ -25,7 +25,7 @@ @@ -42,8 +38,6 @@ index a40d5a8..3657917 100644 #include <iosfwd> #include <string> -diff --git a/src/NCurses.h b/src/NCurses.h -index a07c6bf..d17d3c3 100644 --- a/src/NCurses.h +++ b/src/NCurses.h @@ -34,7 +34,7 @@ @@ -55,8 +49,6 @@ index a07c6bf..d17d3c3 100644 #include <wchar.h> #include "ncursesw.h" -diff --git a/src/ncursesp.h b/src/ncursesp.h -index d478347..2fcfea5 100644 --- a/src/ncursesp.h +++ b/src/ncursesp.h @@ -28,7 +28,7 @@ @@ -68,8 +60,6 @@ index d478347..2fcfea5 100644 class NCursesPanel : public NCursesWindow { -diff --git a/src/ncursesw.cc b/src/ncursesw.cc -index 3c771af..bb83210 100644 --- a/src/ncursesw.cc +++ b/src/ncursesw.cc @@ -47,7 +47,7 @@ @@ -81,21 +71,19 @@ index 3c771af..bb83210 100644 #undef line #undef columns -diff --git a/src/ncursesw.h b/src/ncursesw.h -index d25923a..c140d37 100644 --- a/src/ncursesw.h +++ b/src/ncursesw.h -@@ -27,8 +27,8 @@ +@@ -27,11 +27,11 @@ #include <iosfwd> -#include <ncursesw/curses.h> --#include <ncursesw/etip.h> +#include <curses.h> + #ifndef NCURSES_CXX_IMPEXP + #define NCURSES_CXX_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT + #endif +-#include <ncursesw/etip.h> +#include <etip.h> #include <cstdio> #include <cstdarg> #include <climits> --- -2.7.4 - diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-libyui-ncurses-Replace-off64_t-with-off_t-and-stat64.patch b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-libyui-ncurses-Replace-off64_t-with-off_t-and-stat64.patch new file mode 100644 index 0000000000..b29e5dc7b2 --- /dev/null +++ b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-libyui-ncurses-Replace-off64_t-with-off_t-and-stat64.patch @@ -0,0 +1,176 @@ +From b81fb7942ab77b0bf6791e5fd98411dd68f133d9 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 18 Dec 2022 15:13:00 -0800 +Subject: [PATCH] libyui-ncurses: Replace off64_t with off_t and stat64 with stat + +stat is same as stat64 when 64bit off_t is used. + +Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/88] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + CMakeLists.txt | 2 +- + src/NCAskForFile.cc | 6 +++--- + src/NCFileSelection.cc | 24 ++++++++++++------------ + src/NCFileSelection.h | 6 +++--- + 4 files changed, 19 insertions(+), 19 deletions(-) + +diff --git a/CMakeLists.txt b/libyui-ncurses/CMakeLists.txt +index b10eab8e..2000bb58 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -58,7 +58,7 @@ set( CMAKE_INSTALL_MESSAGE LAZY ) # Suppress "up-to-date" messages during "make + # Initialize compiler flags for all targets in all subdirectories + add_compile_options( "-Wall" ) + add_compile_options( "-Os" ) # Optimize for size (overrides CMake's -O3 in RELEASE builds) +- ++add_compile_options( "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" ) # Enable largefile support + if ( WERROR ) + add_compile_options( "-Werror" ) + endif() +diff --git a/src/NCAskForFile.cc b/libyui-ncurses/src/NCAskForFile.cc +index aba6e0a6..44bb81bc 100644 +--- a/src/NCAskForFile.cc ++++ b/src/NCAskForFile.cc +@@ -73,8 +73,8 @@ std::string NCAskForFile::checkIniDir( std::string iniDir ) + { + std::string dname = ""; + +- struct stat64 statInfo; +- stat64( iniDir.c_str(), &statInfo ); ++ struct stat statInfo; ++ stat( iniDir.c_str(), &statInfo ); + + if ( S_ISDIR( statInfo.st_mode ) ) + { +@@ -90,7 +90,7 @@ std::string NCAskForFile::checkIniDir( std::string iniDir ) + && pos != 0 ) + { + std::string dir = iniDir.substr( 0, pos ); +- stat64( dir.c_str(), &statInfo ); ++ stat( dir.c_str(), &statInfo ); + + if ( S_ISDIR( statInfo.st_mode ) ) + { +diff --git a/src/NCFileSelection.cc b/libyui-ncurses/src/NCFileSelection.cc +index 3eb9c908..8894dc72 100644 +--- a/src/NCFileSelection.cc ++++ b/src/NCFileSelection.cc +@@ -46,7 +46,7 @@ using std::list; + + + NCFileInfo::NCFileInfo( string fileName, +- struct stat64 * statInfo, ++ struct stat * statInfo, + bool link ) + { + _name = fileName; +@@ -146,7 +146,7 @@ NCFileInfo::NCFileInfo() + _mode = ( mode_t )0; + _device = ( dev_t )0; + _links = ( nlink_t )0; +- _size = ( off64_t )0; ++ _size = ( off_t )0; + _mtime = ( time_t )0; + } + +@@ -177,11 +177,11 @@ NCFileSelection::NCFileSelection( YWidget * parent, + { + SetSepChar( ' ' ); + +- struct stat64 statInfo; ++ struct stat statInfo; + + if ( !iniDir.empty() ) + { +- stat64( iniDir.c_str(), &statInfo ); ++ stat( iniDir.c_str(), &statInfo ); + } + + if ( iniDir.empty() +@@ -559,8 +559,8 @@ NCursesEvent NCFileTable::wHandleInput( wint_t key ) + bool NCFileTable::fillList() + { + +- struct stat64 statInfo; +- struct stat64 linkInfo; ++ struct stat statInfo; ++ struct stat linkInfo; + struct dirent * entry; + list<string> tmpList; + list<string>::iterator it; +@@ -592,7 +592,7 @@ bool NCFileTable::fillList() + { + string fullName = currentDir + "/" + ( *it ); + +- if ( lstat64( fullName.c_str(), &statInfo ) == 0 ) ++ if ( lstat( fullName.c_str(), &statInfo ) == 0 ) + { + if ( S_ISREG( statInfo.st_mode ) || S_ISBLK( statInfo.st_mode ) ) + { +@@ -604,7 +604,7 @@ bool NCFileTable::fillList() + } + else if ( S_ISLNK( statInfo.st_mode ) ) + { +- if ( stat64( fullName.c_str(), &linkInfo ) == 0 ) ++ if ( stat( fullName.c_str(), &linkInfo ) == 0 ) + { + if ( S_ISREG( linkInfo.st_mode ) || S_ISBLK( linkInfo.st_mode ) ) + { +@@ -701,8 +701,8 @@ void NCDirectoryTable::fillHeader() + + bool NCDirectoryTable::fillList() + { +- struct stat64 statInfo; +- struct stat64 linkInfo; ++ struct stat statInfo; ++ struct stat linkInfo; + struct dirent * entry; + list<string> tmpList; + list<string>::iterator it; +@@ -734,7 +734,7 @@ bool NCDirectoryTable::fillList() + { + string fullName = currentDir + "/" + ( *it ); + +- if ( lstat64( fullName.c_str(), &statInfo ) == 0 ) ++ if ( lstat( fullName.c_str(), &statInfo ) == 0 ) + { + if ( S_ISDIR( statInfo.st_mode ) ) + { +@@ -746,7 +746,7 @@ bool NCDirectoryTable::fillList() + } + else if ( S_ISLNK( statInfo.st_mode ) ) + { +- if ( stat64( fullName.c_str(), &linkInfo ) == 0 ) ++ if ( stat( fullName.c_str(), &linkInfo ) == 0 ) + { + if ( S_ISDIR( linkInfo.st_mode ) ) + { +diff --git a/src/NCFileSelection.h b/libyui-ncurses/src/NCFileSelection.h +index 0569215d..5c459d62 100644 +--- a/src/NCFileSelection.h ++++ b/src/NCFileSelection.h +@@ -44,10 +44,10 @@ + struct NCFileInfo + { + /** +- * Constructor from a stat buffer (i.e. based on an lstat64() call). ++ * Constructor from a stat buffer (i.e. based on an lstat() call). + **/ + NCFileInfo( std::string fileName, +- struct stat64 * statInfo, ++ struct stat * statInfo, + bool link = false ); + + NCFileInfo(); +@@ -65,7 +65,7 @@ struct NCFileInfo + dev_t _device; // device this object resides on + mode_t _mode; // file permissions + object type + nlink_t _links; // number of links +- off64_t _size; // size in bytes ++ off_t _size; // size in bytes + time_t _mtime; // modification time + + bool isDir() { return (( S_ISDIR( _mode ) ) ? true : false ); } +-- +2.39.0 + diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch deleted file mode 100644 index 8e3774c1ae..0000000000 --- a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 4b84f243a70a8c07f6a38dad3c9411fa707f25c9 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 4 Mar 2018 17:08:43 -0800 -Subject: [PATCH] use _nl_msg_cat_cntr only with glibc - -The musl libc provides libintl (similar to glibc) -but does not use the same internals, -so even though we are using the GNU gettext -the libintl included with the libc does not define -_nl_msg_cat_cntr and it does not need to. - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - src/NCi18n.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/NCi18n.h b/src/NCi18n.h -index 165b0e7..bfc4ed7 100644 ---- a/src/NCi18n.h -+++ b/src/NCi18n.h -@@ -59,12 +59,13 @@ inline void setTextdomain( const char * domain ) - bindtextdomain( domain, YSettings::localeDir().c_str() ); - bind_textdomain_codeset( domain, "UTF-8" ); - textdomain( domain ); -- -+#if defined(__GLIBC__) - // Make change known - { - extern int _nl_msg_cat_cntr; - ++_nl_msg_cat_cntr; - } -+#endif - } - - --- -2.16.2 - diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.2.3.bb b/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.2.3.bb new file mode 100644 index 0000000000..bcc5ef33e2 --- /dev/null +++ b/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.2.3.bb @@ -0,0 +1,50 @@ +SUMMARY = "Character Based User Interface for libyui" +LICENSE = "LGPL-3.0-only" +LIC_FILES_CHKSUM = "file://../COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + file://../COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \ +" + +SRC_URI = "git://github.com/libyui/libyui.git;branch=master;protocol=https \ + file://0001-libyui-ncurses-Replace-off64_t-with-off_t-and-stat64.patch \ + " + +SRC_URI:append:class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch" + +SRCREV = "dabdcd9cc6a0058fd6966d7d2e19d508debcc0ac" + +S = "${WORKDIR}/git/libyui-ncurses" + +inherit cmake gettext pkgconfig + +DEPENDS += "boost libyui ncurses" + +BBCLASSEXTEND = "nativesdk" + +EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RELWITHDEBINFO -DWERROR=OFF" + +CXXFLAGS += "-DNCURSES_WIDECHAR" + +do_configure:prepend () { + cd ${S} + if [ -e ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so ]; then + mkdir -p ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/ + cp ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so* ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/ + fi + cd - + sed -i -e "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt +} + +do_install:append () { + if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then + mv ${D}/usr/lib64 ${D}/usr/lib + fi +} + +do_install:append:class-nativesdk () { + mkdir -p ${D}/${base_prefix} + mv ${D}/usr ${D}/${base_prefix} +} + +FILES:${PN} += "${datadir}/*" + +FILES:${PN}-dev += "${libdir}/*" diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb b/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb deleted file mode 100644 index 578c713012..0000000000 --- a/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Character Based User Interface for libyui" -LICENSE = "LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ - file://COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \ -" - -SRC_URI = "git://github.com/libyui/libyui-ncurses.git \ - file://0001-use-_nl_msg_cat_cntr-only-with-glibc.patch \ - " - -SRC_URI_append_class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch" - -PV = "2.48.3+git${SRCPV}" -SRCREV = "79b804b45ffc6a0d92e28e793ff389a20b63b54b" - -S = "${WORKDIR}/git" - -inherit cmake gettext pkgconfig - -DEPENDS += "boost libyui ncurses" - -BBCLASSEXTEND = "nativesdk" - -do_configure_prepend () { - cd ${S} - git checkout bootstrap.sh - sed -i "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" bootstrap.sh - ./bootstrap.sh - mkdir -p ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/ - cp ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so* ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/ - cd - - sed -i "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt - sed -i "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${PKG_CONFIG_SYSROOT_DIR}${libdir}/cmake/libyui/LibyuiLibraryDepends-release.cmake -} - -do_install_append () { - if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then - mv ${D}/usr/lib64 ${D}/usr/lib - fi -} - -do_install_append_class-nativesdk () { - mkdir -p ${D}/${base_prefix} - mv ${D}/usr ${D}/${base_prefix} -} - -FILES_${PN} += "${datadir}/*" - -FILES_${PN}-dev += "${libdir}/*" diff --git a/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch b/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch new file mode 100644 index 0000000000..d3463ca056 --- /dev/null +++ b/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch @@ -0,0 +1,593 @@ +From 18562671982ad97549bccb444fdbb5905b6e9335 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 24 Apr 2018 15:06:14 -0700 +Subject: [PATCH] Fix build with clang + +Fix warnings found with clang + +error: class 'YButtonBoxPrivate' was previously declared as a struct [-Werror,-Wmismatched-tags] +| friend class YButtonBoxPrivate; + +YTimezoneSelector.cc:35:9: error: private field 'dummy' is not used [-Werror,-Wunused-private-field] + bool dummy; + ^ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/123] + + src/YAlignment.h | 2 +- + src/YBarGraph.h | 2 +- + src/YBusyIndicator.h | 2 +- + src/YButtonBox.h | 4 ++-- + src/YCheckBox.h | 2 +- + src/YCheckBoxFrame.h | 2 +- + src/YComboBox.h | 2 +- + src/YCommandLine.h | 2 +- + src/YContextMenu.h | 2 +- + src/YDateField.h | 2 +- + src/YDialog.h | 2 +- + src/YDownloadProgress.h | 2 +- + src/YDumbTab.h | 2 +- + src/YEmpty.h | 2 +- + src/YEventFilter.h | 2 +- + src/YFrame.h | 2 +- + src/YGraph.h | 2 +- + src/YImage.h | 2 +- + src/YInputField.h | 2 +- + src/YIntField.h | 2 +- + src/YLabel.h | 2 +- + src/YLayoutBox.h | 2 +- + src/YLogView.h | 2 +- + src/YMenuButton.h | 2 +- + src/YMultiLineEdit.h | 2 +- + src/YMultiProgressMeter.h | 2 +- + src/YMultiSelectionBox.h | 2 +- + src/YPartitionSplitter.h | 2 +- + src/YProgressBar.h | 2 +- + src/YPushButton.h | 2 +- + src/YRadioButton.h | 2 +- + src/YRadioButtonGroup.h | 2 +- + src/YRichText.h | 2 +- + src/YSelectionBox.h | 2 +- + src/YSelectionWidget.h | 2 +- + src/YSimpleInputField.h | 2 +- + src/YSlider.h | 2 +- + src/YSpacing.h | 2 +- + src/YSquash.h | 2 +- + src/YTable.h | 2 +- + src/YTableHeader.h | 2 +- + src/YTimeField.h | 2 +- + src/YTimezoneSelector.cc | 2 +- + src/YTree.h | 2 +- + src/YUILog.h | 2 +- + src/YWidget.h | 2 +- + src/YWizard.h | 2 +- + 47 files changed, 48 insertions(+), 48 deletions(-) + +--- a/src/YAlignment.h ++++ b/src/YAlignment.h +@@ -28,7 +28,7 @@ + #include "YSingleChildContainerWidget.h" + + +-class YAlignmentPrivate; ++struct YAlignmentPrivate; + + /** + * Implementation of all the alignment widgets: +--- a/src/YBarGraph.h ++++ b/src/YBarGraph.h +@@ -29,7 +29,7 @@ + #include "YColor.h" + + +-class YBarGraphPrivate; ++struct YBarGraphPrivate; + class YBarGraphSegment; + + /** +--- a/src/YBusyIndicator.h ++++ b/src/YBusyIndicator.h +@@ -27,7 +27,7 @@ + + #include "YWidget.h" + +-class YBusyIndicatorPrivate; ++struct YBusyIndicatorPrivate; + + + /** +--- a/src/YButtonBox.h ++++ b/src/YButtonBox.h +@@ -30,7 +30,7 @@ + #include "YWidget.h" + #include "YPushButton.h" + +-class YButtonBoxPrivate; ++struct YButtonBoxPrivate; + class YPushButton; + + +@@ -147,7 +147,7 @@ struct YButtonBoxMargins + **/ + class YButtonBox : public YWidget + { +- friend class YButtonBoxPrivate; ++ friend struct YButtonBoxPrivate; + + protected: + /** +--- a/src/YCheckBox.h ++++ b/src/YCheckBox.h +@@ -30,7 +30,7 @@ + #include "YWidget.h" + #include "ImplPtr.h" + +-class YCheckBoxPrivate; ++struct YCheckBoxPrivate; + + enum YCheckBoxState + { +--- a/src/YCheckBoxFrame.h ++++ b/src/YCheckBoxFrame.h +@@ -29,7 +29,7 @@ + #include "YSingleChildContainerWidget.h" + #include "ImplPtr.h" + +-class YCheckBoxFramePrivate; ++struct YCheckBoxFramePrivate; + + + /** +--- a/src/YComboBox.h ++++ b/src/YComboBox.h +@@ -27,7 +27,7 @@ + + #include "YSelectionWidget.h" + +-class YComboBoxPrivate; ++struct YComboBoxPrivate; + + + /** +--- a/src/YCommandLine.h ++++ b/src/YCommandLine.h +@@ -28,7 +28,7 @@ + #include <string> + #include "ImplPtr.h" + +-class YCommandLinePrivate; ++struct YCommandLinePrivate; + + + /** +--- a/src/YContextMenu.h ++++ b/src/YContextMenu.h +@@ -29,7 +29,7 @@ + #include "YMenuItem.h" + + class YMenuItem; +-class YContextMenuPrivate; ++struct YContextMenuPrivate; + + + /** +--- a/src/YDateField.h ++++ b/src/YDateField.h +@@ -27,7 +27,7 @@ + + #include "YSimpleInputField.h" + +-class YDateFieldPrivate; ++struct YDateFieldPrivate; + + /** + * Input field for entering a date. +--- a/src/YDialog.h ++++ b/src/YDialog.h +@@ -32,7 +32,7 @@ + + class YShortcutManager; + class YPushButton; +-class YDialogPrivate; ++struct YDialogPrivate; + class YEvent; + class YEventFilter; + +--- a/src/YDownloadProgress.h ++++ b/src/YDownloadProgress.h +@@ -28,7 +28,7 @@ + #include "YWidget.h" + + +-class YDownloadProgressPrivate; ++struct YDownloadProgressPrivate; + + /** + * DownloadProgress: A progress bar that monitors downloading a file by +--- a/src/YDumbTab.h ++++ b/src/YDumbTab.h +@@ -27,7 +27,7 @@ + + #include "YSelectionWidget.h" + +-class YDumbTabPrivate; ++struct YDumbTabPrivate; + + /** + * DumbTab: A very simple tab widget that can display and switch between a +--- a/src/YEmpty.h ++++ b/src/YEmpty.h +@@ -29,7 +29,7 @@ + #include "ImplPtr.h" + + +-class YEmptyPrivate; ++struct YEmptyPrivate; + + /** + * A widget with zero size, useful as a placeholder. +--- a/src/YEventFilter.h ++++ b/src/YEventFilter.h +@@ -32,7 +32,7 @@ + class YEvent; + class YDialog; + +-class YEventFilterPrivate; ++struct YEventFilterPrivate; + + + /** +--- a/src/YFrame.h ++++ b/src/YFrame.h +@@ -29,7 +29,7 @@ + #include "YSingleChildContainerWidget.h" + #include "ImplPtr.h" + +-class YFramePrivate; ++struct YFramePrivate; + + + /** +--- a/src/YGraph.h ++++ b/src/YGraph.h +@@ -37,7 +37,7 @@ + * For that reason a lot of functions simply take a void* instead of graph_t*. + */ + +-class YGraphPrivate; ++struct YGraphPrivate; + + /** + * A graph with nodes and edges, rendered with Graphviz. +--- a/src/YImage.h ++++ b/src/YImage.h +@@ -29,7 +29,7 @@ + #include <string> + + +-class YImagePrivate; ++struct YImagePrivate; + + /** + * A picture, possibly animated, loaded from a file. +--- a/src/YInputField.h ++++ b/src/YInputField.h +@@ -28,7 +28,7 @@ + #include <string> + #include "YWidget.h" + +-class YInputFieldPrivate; ++struct YInputFieldPrivate; + + + +--- a/src/YIntField.h ++++ b/src/YIntField.h +@@ -27,7 +27,7 @@ + + #include "YWidget.h" + +-class YIntFieldPrivate; ++struct YIntFieldPrivate; + + + +--- a/src/YLabel.h ++++ b/src/YLabel.h +@@ -30,7 +30,7 @@ + #include "ImplPtr.h" + + +-class YLabelPrivate; ++struct YLabelPrivate; + + /** + * Implementation of the Label, Heading and OutputField widgets +--- a/src/YLayoutBox.h ++++ b/src/YLayoutBox.h +@@ -29,7 +29,7 @@ + #include "YWidget.h" + + +-class YLayoutBoxPrivate; ++struct YLayoutBoxPrivate; + + /** + * A vertical or horizontal stacking of widgets, implementing HBox and VBox. +--- a/src/YLogView.h ++++ b/src/YLogView.h +@@ -27,7 +27,7 @@ + + #include "YWidget.h" + +-class YLogViewPrivate; ++struct YLogViewPrivate; + + + /** +--- a/src/YMenuButton.h ++++ b/src/YMenuButton.h +@@ -28,7 +28,7 @@ + #include "YMenuWidget.h" + #include "YMenuItem.h" + +-class YMenuButtonPrivate; ++struct YMenuButtonPrivate; + + + /** +--- a/src/YMultiLineEdit.h ++++ b/src/YMultiLineEdit.h +@@ -27,7 +27,7 @@ + + #include "YWidget.h" + +-class YMultiLineEditPrivate; ++struct YMultiLineEditPrivate; + + /** + * A multi-line plain-text area +--- a/src/YMultiProgressMeter.h ++++ b/src/YMultiProgressMeter.h +@@ -28,7 +28,7 @@ + #include "YWidget.h" + #include <vector> + +-class YMultiProgressMeterPrivate; ++struct YMultiProgressMeterPrivate; + + + /** +--- a/src/YMultiSelectionBox.h ++++ b/src/YMultiSelectionBox.h +@@ -27,7 +27,7 @@ + + #include "YSelectionWidget.h" + +-class YMultiSelectionBoxPrivate; ++struct YMultiSelectionBoxPrivate; + + + /** +--- a/src/YPartitionSplitter.h ++++ b/src/YPartitionSplitter.h +@@ -28,7 +28,7 @@ + #include "YWidget.h" + + +-class YPartitionSplitterPrivate; ++struct YPartitionSplitterPrivate; + + + /** +--- a/src/YProgressBar.h ++++ b/src/YProgressBar.h +@@ -27,7 +27,7 @@ + + #include "YWidget.h" + +-class YProgressBarPrivate; ++struct YProgressBarPrivate; + + + /** +--- a/src/YPushButton.h ++++ b/src/YPushButton.h +@@ -27,7 +27,7 @@ + + #include "YWidget.h" + +-class YPushButtonPrivate; ++struct YPushButtonPrivate; + + + +--- a/src/YRadioButton.h ++++ b/src/YRadioButton.h +@@ -28,7 +28,7 @@ + #include "YWidget.h" + + class YRadioButtonGroup; +-class YRadioButtonPrivate; ++struct YRadioButtonPrivate; + + + /** +--- a/src/YRadioButtonGroup.h ++++ b/src/YRadioButtonGroup.h +@@ -28,7 +28,7 @@ + #include "YSingleChildContainerWidget.h" + + class YRadioButton; +-class YRadioButtonGroupPrivate; ++struct YRadioButtonGroupPrivate; + + typedef std::list<YRadioButton *> YRadioButtonList; + typedef YRadioButtonList::iterator YRadioButtonListIterator; +--- a/src/YRichText.h ++++ b/src/YRichText.h +@@ -31,7 +31,7 @@ + #include "ImplPtr.h" + + +-class YRichTextPrivate; ++struct YRichTextPrivate; + + + /** +--- a/src/YSelectionBox.h ++++ b/src/YSelectionBox.h +@@ -27,7 +27,7 @@ + + #include "YSelectionWidget.h" + +-class YSelectionBoxPrivate; ++struct YSelectionBoxPrivate; + + + /** +--- a/src/YSelectionWidget.h ++++ b/src/YSelectionWidget.h +@@ -29,7 +29,7 @@ + #include "YItem.h" + #include "ImplPtr.h" + +-class YSelectionWidgetPrivate; ++struct YSelectionWidgetPrivate; + + /** + * Base class for various kinds of multi-value widgets. +--- a/src/YSimpleInputField.h ++++ b/src/YSimpleInputField.h +@@ -27,7 +27,7 @@ + + #include "YWidget.h" + +-class YSimpleInputFieldPrivate; ++struct YSimpleInputFieldPrivate; + + + /** +--- a/src/YSlider.h ++++ b/src/YSlider.h +@@ -27,7 +27,7 @@ + + #include "YIntField.h" + +-class YSliderPrivate; ++struct YSliderPrivate; + + + /** +--- a/src/YSpacing.h ++++ b/src/YSpacing.h +@@ -28,7 +28,7 @@ + #include "YWidget.h" + #include "ImplPtr.h" + +-class YSpacingPrivate; ++struct YSpacingPrivate; + + + /** +--- a/src/YSquash.h ++++ b/src/YSquash.h +@@ -29,7 +29,7 @@ + #include "ImplPtr.h" + + +-class YSquashPrivate; ++struct YSquashPrivate; + + /** + * HSquash, VSquash HVSquash: reduce child to its preferred size. +--- a/src/YTable.h ++++ b/src/YTable.h +@@ -30,7 +30,7 @@ + #include "YTableItem.h" + #include "YTableHeader.h" + +-class YTablePrivate; ++struct YTablePrivate; + + + +--- a/src/YTableHeader.h ++++ b/src/YTableHeader.h +@@ -31,7 +31,7 @@ + + + +-class YTableHeaderPrivate; ++struct YTableHeaderPrivate; + + /** + * Helper class for YTable for table column properties: +--- a/src/YTimeField.h ++++ b/src/YTimeField.h +@@ -27,7 +27,7 @@ + + #include "YSimpleInputField.h" + +-class YTimeFieldPrivate; ++struct YTimeFieldPrivate; + + + /** +--- a/src/YTimezoneSelector.cc ++++ b/src/YTimezoneSelector.cc +@@ -34,7 +34,7 @@ using std::string; + + class YTimezoneSelectorPrivate + { +- bool dummy; ++// bool dummy; + }; + + +--- a/src/YTree.h ++++ b/src/YTree.h +@@ -28,7 +28,7 @@ + #include "YSelectionWidget.h" + + class YTreeItem; +-class YTreePrivate; ++struct YTreePrivate; + + + /** +--- a/src/YUILog.h ++++ b/src/YUILog.h +@@ -66,7 +66,7 @@ using std::endl; + + + +-class YUILogPrivate; ++struct YUILogPrivate; + + enum YUILogLevel_t + { +--- a/src/YWidget.h ++++ b/src/YWidget.h +@@ -45,7 +45,7 @@ typedef YChildrenManager<YWidget> YWidge + typedef YSingleChildManager<YWidget> YSingleWidgetChildManager; + typedef YChildrenRejector<YWidget> YWidgetChildrenRejector; + +-class YWidgetPrivate; ++struct YWidgetPrivate; + + + /** +--- a/src/YWizard.h ++++ b/src/YWizard.h +@@ -28,7 +28,7 @@ + #include "YWidget.h" + + class YMacroRecorder; +-class YWizardPrivate; ++struct YWizardPrivate; + class YPushButton; + class YReplacePoint; + diff --git a/meta-oe/recipes-graphics/libyui/libyui/0001-Use-relative-install-paths-for-CMake.patch b/meta-oe/recipes-graphics/libyui/libyui/0001-Use-relative-install-paths-for-CMake.patch new file mode 100644 index 0000000000..fc7f819d32 --- /dev/null +++ b/meta-oe/recipes-graphics/libyui/libyui/0001-Use-relative-install-paths-for-CMake.patch @@ -0,0 +1,130 @@ +From d24c2516ae25d0ee180c1020e52114ea32230585 Mon Sep 17 00:00:00 2001 +From: Pascal Bach <pascal.bach@siemens.com> +Date: Mon, 29 Oct 2018 18:03:43 +0100 +Subject: [PATCH] Use relative install paths for CMake + +Files are installed via a special _PREFIX variant of the INSTALL_???_DIR +variable which is an absolute path. + +This not only is redundant if CMAKE_INTALL_PREFIX is set but it even causes +the resulting Config.cmake to be non relocatable. This means it contains absolute +paths to the build host. This is a problem for cross compilation in Yocto. + +This change gets rid of the absolute path and removes the no longer needed +_PREFIX variants. + +Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/140] +Signed-off-by: Pascal Bach <pascal.bach@siemens.com> +--- + legacy-buildtools/LibyuiCommon.cmake | 35 ++++++++++++++--------------------- + 1 file changed, 14 insertions(+), 21 deletions(-) + +diff --git a/legacy-buildtools/LibyuiCommon.cmake b/legacy-buildtools/LibyuiCommon.cmake +index e6fbefd..5e2fc0d 100644 +--- a/legacy-buildtools/LibyuiCommon.cmake ++++ b/legacy-buildtools/LibyuiCommon.cmake +@@ -258,13 +258,6 @@ MACRO( SET_ENVIRONMENT ) # setup the environment vars + + SET( INSTALL_DOC_DIR "${DOC_DIR}" ) + +- FOREACH( p "DOC" LIB INCLUDE CMAKE PKGCONFIG BUILDTOOLS ) +- SET( var "INSTALL_${p}_DIR" ) +- IF( NOT IS_ABSOLUTE "${${var}}" ) +- SET( ${var}_PREFIX "${YPREFIX}/${${var}}" ) +- ENDIF( NOT IS_ABSOLUTE "${${var}}" ) +- ENDFOREACH() +- + ENDMACRO( SET_ENVIRONMENT ) + + MACRO( SET_SONAME ) +@@ -359,7 +352,7 @@ MACRO( SET_AUTODOCS ) # looks for doxygen, dot and latex and setup autodocs acc + IF( INSTALL_DOCS OR DOCS_ONLY ) + INSTALL( + FILES "${CMAKE_BINARY_DIR}/doc/latex/refman.pdf" +- DESTINATION "${INSTALL_DOC_DIR_PREFIX}" ++ DESTINATION "${INSTALL_DOC_DIR}" + ) + ENDIF( INSTALL_DOCS OR DOCS_ONLY ) + +@@ -379,7 +372,7 @@ MACRO( SET_AUTODOCS ) # looks for doxygen, dot and latex and setup autodocs acc + FOREACH( p css gif html jpg js png tag ) + INSTALL( + DIRECTORY "${CMAKE_BINARY_DIR}/doc/html" +- DESTINATION "${INSTALL_DOC_DIR_PREFIX}" ++ DESTINATION "${INSTALL_DOC_DIR}" + FILES_MATCHING PATTERN "*.${p}" + ) + ENDFOREACH() +@@ -638,32 +631,32 @@ MACRO( SET_INSTALL_TARGET ) + + INSTALL( + EXPORT ${PROJECTNAME_UC}LibraryDepends +- DESTINATION "${INSTALL_CMAKE_DIR_PREFIX}" ++ DESTINATION "${INSTALL_CMAKE_DIR}" + COMPONENT dev + ) + + FOREACH( p Config.cmake ConfigVersion.cmake ) + INSTALL( + FILES "${CMAKE_BINARY_DIR}/${PROJECTNAME_UC}${p}" +- DESTINATION "${INSTALL_CMAKE_DIR_PREFIX}" ++ DESTINATION "${INSTALL_CMAKE_DIR}" + ) + ENDFOREACH( p Config.cmake ConfigVersion.cmake ) + + INSTALL( + FILES "${CMAKE_BINARY_DIR}/${PROJECTNAME}.pc" +- DESTINATION "${INSTALL_PKGCONFIG_DIR_PREFIX}" ++ DESTINATION "${INSTALL_PKGCONFIG_DIR}" + ) + + IF( NOT PLUGINNAME AND NOT EXTENSIONNAME ) + INSTALL( + DIRECTORY "${BUILDTOOLS_DIR}" +- DESTINATION "${INSTALL_BUILDTOOLS_DIR_PREFIX}" ++ DESTINATION "${INSTALL_BUILDTOOLS_DIR}" + ) + ENDIF( NOT PLUGINNAME AND NOT EXTENSIONNAME ) + + INSTALL( + FILES ${BUILDTOOLS_LIST} +- DESTINATION "${INSTALL_BUILDTOOLS_DIR_PREFIX}" ++ DESTINATION "${INSTALL_BUILDTOOLS_DIR}" + ) + + ENDMACRO( SET_INSTALL_TARGET ) +@@ -724,9 +717,9 @@ MACRO( PROCESS_SOURCES ) + INSTALL( + TARGETS ${TARGETLIB} + EXPORT ${PROJECTNAME_UC}LibraryDepends +- LIBRARY DESTINATION "${INSTALL_LIB_DIR_PREFIX}" +- ARCHIVE DESTINATION "${INSTALL_LIB_DIR_PREFIX}" +- PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR_PREFIX}" ++ LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ++ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" ++ PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}" + COMPONENT dev + ) + +@@ -746,9 +739,9 @@ MACRO( PROCESS_SOURCES ) + INSTALL( + TARGETS ${TARGETLIB}_static + EXPORT ${PROJECTNAME_UC}LibraryDepends +- LIBRARY DESTINATION "${INSTALL_LIB_DIR_PREFIX}" +- ARCHIVE DESTINATION "${INSTALL_LIB_DIR_PREFIX}" +- PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR_PREFIX}" ++ LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ++ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" ++ PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}" + COMPONENT dev + ) + +@@ -776,7 +769,7 @@ MACRO( PROCESS_EXAMPLES ) + + INSTALL( + FILES ${EXAMPLES_LIST} +- DESTINATION "${INSTALL_DOC_DIR_PREFIX}/examples" ++ DESTINATION "${INSTALL_DOC_DIR}/examples" + ) + + ENDMACRO( PROCESS_EXAMPLES ) diff --git a/meta-oe/recipes-graphics/libyui/libyui_4.2.3.bb b/meta-oe/recipes-graphics/libyui/libyui_4.2.3.bb new file mode 100644 index 0000000000..939f3f36e5 --- /dev/null +++ b/meta-oe/recipes-graphics/libyui/libyui_4.2.3.bb @@ -0,0 +1,36 @@ +SUMMARY = "Libyui is a widget abstraction library providing Qt, GTK and ncurses frontends." +LICENSE = "LGPL-3.0-only" +LIC_FILES_CHKSUM = "file://../COPYING.gpl-3;md5=d32239bcb673463ab874e80d47fae504 \ + file://../COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \ + file://../COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + " + +SRC_URI = "git://github.com/libyui/libyui.git;branch=master;protocol=https \ + file://0001-Fix-build-with-clang.patch \ + file://0001-Use-relative-install-paths-for-CMake.patch \ + " + +SRCREV = "dabdcd9cc6a0058fd6966d7d2e19d508debcc0ac" + +S = "${WORKDIR}/git/libyui" + +inherit cmake gettext pkgconfig + +DEPENDS += "boost" + +EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RELWITHDEBINFO -DWERROR=OFF" + +BBCLASSEXTEND = "native nativesdk" + +do_install:append () { + if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then + mv ${D}/usr/lib64 ${D}/usr/lib + fi +} + +do_install:append:class-nativesdk () { + mkdir -p ${D}/${base_prefix} + mv ${D}/usr ${D}/${base_prefix} +} + +FILES:${PN}-dev = "${libdir}/* ${includedir}/yui*" diff --git a/meta-oe/recipes-graphics/libyui/libyui_git.bb b/meta-oe/recipes-graphics/libyui/libyui_git.bb deleted file mode 100644 index 92d96044ec..0000000000 --- a/meta-oe/recipes-graphics/libyui/libyui_git.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Libyui is a widget abstraction library providing Qt, GTK and ncurses frontends." -LICENSE = "LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING.gpl-3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \ - file://COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ - " - -SRC_URI = "git://github.com/libyui/libyui.git \ - " - -PV = "3.3.3+git" -SRCREV = "2b634cb7821e2e79dd4b7a73caf8e67c50189376" - -S = "${WORKDIR}/git" - -inherit cmake gettext pkgconfig - -DEPENDS += "boost" - -BBCLASSEXTEND = "native nativesdk" - -do_configure_prepend () { - cd ${S} - ./bootstrap.sh - cd - -} - -do_install_append () { - if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then - mv ${D}/usr/lib64 ${D}/usr/lib - fi -} - -do_install_append_class-nativesdk () { - mkdir -p ${D}/${base_prefix} - mv ${D}/usr ${D}/${base_prefix} -} - -FILES_${PN}-dev = "${libdir}/* ${includedir}/yui*" diff --git a/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch b/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch new file mode 100644 index 0000000000..bd619b1572 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch @@ -0,0 +1,63 @@ +From 5b7f657e8ad656e0854f2252b3bd482b966d650c Mon Sep 17 00:00:00 2001 +From: Marek Vasut <marex@denx.de> +Date: Wed, 13 Mar 2024 02:12:30 +0100 +Subject: [PATCH 2/2] fix(sdl): handle both LV_IMAGE_SRC_FILE and + LV_IMAGE_SRC_VARIABLE + +The SDL image draw code currently assumes that the image source is a +filename and attempts to open that filename. This is not necessarily +the case, e.g. the lv_demo_fb uses encoded images which are of type +LV_IMAGE_SRC_VARIABLE and instead of filename, come with a buffer of +pixels. Handle the later using SDL_CreateRGBSurfaceFrom(). + +Upstream-Status: Submitted [https://github.com/lvgl/lvgl/pull/5852] +Signed-off-by: Marek Vasut <marex@denx.de> +--- + src/draw/sdl/lv_draw_sdl.c | 30 +++++++++++++++++++++++++++--- + 1 file changed, 27 insertions(+), 3 deletions(-) + +diff --git a/src/draw/sdl/lv_draw_sdl.c b/src/draw/sdl/lv_draw_sdl.c +index cbb555d94..5eee5b725 100644 +--- a/src/draw/sdl/lv_draw_sdl.c ++++ b/src/draw/sdl/lv_draw_sdl.c +@@ -224,10 +224,34 @@ static bool draw_to_texture(lv_draw_sdl_unit_t * u, cache_data_t * data) + break; + case LV_DRAW_TASK_TYPE_IMAGE: { + lv_draw_image_dsc_t * image_dsc = task->draw_dsc; +- const char * path = image_dsc->src; +- SDL_Surface * surface = IMG_Load(&path[2]); ++ lv_image_src_t type = lv_image_src_get_type(image_dsc->src); ++ SDL_Surface * surface = NULL; ++ if(type == LV_IMAGE_SRC_FILE) { ++ const char * path = image_dsc->src; ++ surface = IMG_Load(&path[2]); ++ } ++ else if(type == LV_IMAGE_SRC_VARIABLE) { ++ lv_image_dsc_t * lvd = image_dsc->src; ++ surface = SDL_CreateRGBSurfaceFrom(lvd->data, ++ lvd->header.w, lvd->header.h, ++ LV_COLOR_FORMAT_GET_BPP(lvd->header.cf), ++ lvd->header.stride, ++#if SDL_BYTEORDER == SDL_LIL_ENDIAN ++ 0x00FF0000, ++ 0x0000FF00, ++ 0x000000FF, ++ 0xFF000000 ++#else ++ 0x0000FF00, ++ 0x00FF0000, ++ 0xFF000000, ++ 0x000000FF ++#endif ++ ); ++ } ++ + if(surface == NULL) { +- fprintf(stderr, "could not load image: %s\n", IMG_GetError()); ++ fprintf(stderr, "could not load image\n"); + return false; + } + +-- +2.43.0 + diff --git a/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch b/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch new file mode 100644 index 0000000000..73c01cb590 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch @@ -0,0 +1,45 @@ +From 85d90749a10b5f91741d37b75825935bf7cc4fb3 Mon Sep 17 00:00:00 2001 +From: Marek Vasut <marex@denx.de> +Date: Tue, 12 Mar 2024 03:00:37 +0100 +Subject: [PATCH 3/6] Make fbdev device node runtime configurable via + environment variable + +Test whether $LV_VIDEO_CARD environment variable is non-NULL and in +case it is, use it as the video card file in lv_linux_fbdev_set_file(). +Otherwise fall back to /dev/fb0, i.e. the current behavior. This way, +it is possible to test LVGL on systems with multiple fbdev devices. + +Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47] +Signed-off-by: Marek Vasut <marex@denx.de> +--- + main.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/main.c b/main.c +index 9775b9c..b64a098 100644 +--- a/main.c ++++ b/main.c +@@ -4,13 +4,19 @@ + #include <pthread.h> + #include <time.h> + ++static const char *lv_linux_get_video_card_node(const char *videocard_default) ++{ ++ return getenv("LV_VIDEO_CARD") ? : videocard_default; ++} ++ + int main(void) + { ++ const char *videocard = lv_linux_get_video_card_node("/dev/fb0"); + lv_init(); + + /*Linux frame buffer device init*/ + lv_display_t * disp = lv_linux_fbdev_create(); +- lv_linux_fbdev_set_file(disp, "/dev/fb0"); ++ lv_linux_fbdev_set_file(disp, videocard); + + /*Create a Demo*/ + lv_demo_widgets(); +-- +2.43.0 + diff --git a/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch b/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch new file mode 100644 index 0000000000..d24d150c06 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch @@ -0,0 +1,52 @@ +From 593da8e11cc5029773ad330b5d7633ee9f2fba95 Mon Sep 17 00:00:00 2001 +From: Marek Vasut <marex@denx.de> +Date: Tue, 12 Mar 2024 18:09:42 +0100 +Subject: [PATCH 4/6] Factor out fbdev initialization code + +Pull fbdev initialization code into separate function and add ifdef +around it, so it can be conditionally compiled in. This is done in +preparation for addition of other backend initialization example +code. + +Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47] +Signed-off-by: Marek Vasut <marex@denx.de> +--- + main.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/main.c b/main.c +index b64a098..288519c 100644 +--- a/main.c ++++ b/main.c +@@ -9,14 +9,24 @@ static const char *lv_linux_get_video_card_node(const char *videocard_default) + return getenv("LV_VIDEO_CARD") ? : videocard_default; + } + +-int main(void) ++#if LV_USE_LINUX_FBDEV ++static void lv_linux_disp_init(void) + { + const char *videocard = lv_linux_get_video_card_node("/dev/fb0"); +- lv_init(); +- +- /*Linux frame buffer device init*/ + lv_display_t * disp = lv_linux_fbdev_create(); ++ + lv_linux_fbdev_set_file(disp, videocard); ++} ++#else ++#error Unsupported configuration ++#endif ++ ++int main(void) ++{ ++ lv_init(); ++ ++ /*Linux display device init*/ ++ lv_linux_disp_init(); + + /*Create a Demo*/ + lv_demo_widgets(); +-- +2.43.0 + diff --git a/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch b/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch new file mode 100644 index 0000000000..9ee7a7f19d --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch @@ -0,0 +1,59 @@ +From dabf40559428733413432afa29598bc145aa6636 Mon Sep 17 00:00:00 2001 +From: Marek Vasut <marex@denx.de> +Date: Tue, 12 Mar 2024 03:08:13 +0100 +Subject: [PATCH 5/6] Add DRM/KMS example support + +Extend the main.c to support both legacy fbdev and DRM/KMS initialization. + +To use legacy fbdev support, adjust lv_conf.h as follows: +LV_USE_LINUX_FBDEV=1 +LV_USE_LINUX_DRM=0 + +To use DRM/KMS support, adjust lv_conf.h as follows: +LV_USE_LINUX_FBDEV=0 +LV_USE_LINUX_DRM=1 + +Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47] +Signed-off-by: Marek Vasut <marex@denx.de> +--- + CMakeLists.txt | 5 ++++- + main.c | 8 ++++++++ + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d91b196..c1cfb7f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -12,6 +12,9 @@ target_include_directories(lvgl PUBLIC ${PROJECT_SOURCE_DIR}) + + add_executable(main main.c mouse_cursor_icon.c) + +-target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} m pthread) ++include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake) ++include_directories(${Libdrm_INCLUDE_DIRS}) ++ ++target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${Libdrm_LIBRARIES} m pthread) + add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main) + +diff --git a/main.c b/main.c +index 288519c..ab4e936 100644 +--- a/main.c ++++ b/main.c +@@ -17,6 +17,14 @@ static void lv_linux_disp_init(void) + + lv_linux_fbdev_set_file(disp, videocard); + } ++#elif LV_USE_LINUX_DRM ++static void lv_linux_disp_init(void) ++{ ++ const char *videocard = lv_linux_get_video_card_node("/dev/dri/card0"); ++ lv_display_t * disp = lv_linux_drm_create(); ++ ++ lv_linux_drm_set_file(disp, videocard, -1); ++} + #else + #error Unsupported configuration + #endif +-- +2.43.0 + diff --git a/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch b/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch new file mode 100644 index 0000000000..691ee80b59 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch @@ -0,0 +1,69 @@ +From b202ce51f7b68c460fcd1b6d9c3ffa8aaf2baaf6 Mon Sep 17 00:00:00 2001 +From: Marek Vasut <marex@denx.de> +Date: Tue, 12 Mar 2024 19:05:38 +0100 +Subject: [PATCH 6/6] Add SDL2 example support + +Extend the main.c to support both legacy fbdev, DRM/KMS, SDL2 initialization. +The SDL2 window resolution can be configured using environment variables +LV_VIDEO_WIDTH and LV_VIDEO_HEIGHT and defaults to 800 x 480 . + +To use legacy fbdev support, adjust lv_conf.h as follows: +LV_USE_LINUX_FBDEV=1 +LV_USE_LINUX_DRM=0 +LV_USE_SDL=0 + +To use DRM/KMS support, adjust lv_conf.h as follows: +LV_USE_LINUX_FBDEV=0 +LV_USE_LINUX_DRM=1 +LV_USE_SDL=0 + +To use SDL2 support, adjust lv_conf.h as follows: +LV_USE_LINUX_FBDEV=0 +LV_USE_LINUX_DRM=0 +LV_USE_SDL=1 + +Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47] +Signed-off-by: Marek Vasut <marex@denx.de> +--- + CMakeLists.txt | 6 +++++- + main.c | 8 ++++++++ + 2 files changed, 13 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c1cfb7f..658193f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -15,6 +15,10 @@ add_executable(main main.c mouse_cursor_icon.c) + include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake) + include_directories(${Libdrm_INCLUDE_DIRS}) + +-target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${Libdrm_LIBRARIES} m pthread) ++find_package(SDL2) ++find_package(SDL2_image) ++include_directories(${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS}) ++ ++target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} ${Libdrm_LIBRARIES} m pthread) + add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main) + +diff --git a/main.c b/main.c +index ab4e936..4b66ebc 100644 +--- a/main.c ++++ b/main.c +@@ -25,6 +25,14 @@ static void lv_linux_disp_init(void) + + lv_linux_drm_set_file(disp, videocard, -1); + } ++#elif LV_USE_SDL ++static void lv_linux_disp_init(void) ++{ ++ const int width = atoi(getenv("LV_VIDEO_WIDTH") ? : "800"); ++ const int height = atoi(getenv("LV_VIDEO_HEIGHT") ? : "480"); ++ ++ lv_sdl_window_create(width, height); ++} + #else + #error Unsupported configuration + #endif +-- +2.43.0 + diff --git a/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch b/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch new file mode 100644 index 0000000000..6997d84153 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch @@ -0,0 +1,68 @@ +From 40657a770baadfff30abfecf7638e7b1c340db4d Mon Sep 17 00:00:00 2001 +From: Marek Vasut <marex@denx.de> +Date: Thu, 14 Mar 2024 03:23:10 +0100 +Subject: [PATCH] fix(cmake): generate versioned shared libraries + +Add missing version suffix to shared libraries. Currently the filename of +generated shared libraries is only liblvgl.so, which prevents coexistence +of different versions of LVGL on the same system. Set VERSION and SOVERSION +to make cmake add the version suffix to generated shared libraries. That +changes the filename to liblvgl.so.9.0.0 and includes symlink with major +ABI version, i.e. liblvgl.so.9 . + +Upstream-Status: Submitted [https://github.com/lvgl/lvgl/pull/5865] +Signed-off-by: Marek Vasut <marex@denx.de> +--- + env_support/cmake/custom.cmake | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/env_support/cmake/custom.cmake b/env_support/cmake/custom.cmake +index 9800468eb..6f33f1cc8 100644 +--- a/env_support/cmake/custom.cmake ++++ b/env_support/cmake/custom.cmake +@@ -1,3 +1,6 @@ ++set(LVGL_VERSION "9.0.0") ++set(LVGL_SOVERSION "9") ++ + # Option to define LV_LVGL_H_INCLUDE_SIMPLE, default: ON + option(LV_LVGL_H_INCLUDE_SIMPLE + "Use #include \"lvgl.h\" instead of #include \"../../lvgl.h\"" ON) +@@ -119,6 +122,8 @@ install( + set_target_properties( + lvgl + PROPERTIES OUTPUT_NAME lvgl ++ VERSION ${LVGL_VERSION} ++ SOVERSION ${LVGL_SOVERSION} + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" +@@ -137,6 +142,8 @@ if(NOT LV_CONF_BUILD_DISABLE_THORVG_INTERNAL) + set_target_properties( + lvgl_thorvg + PROPERTIES OUTPUT_NAME lvgl_thorvg ++ VERSION ${LVGL_VERSION} ++ SOVERSION ${LVGL_SOVERSION} + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" +@@ -155,6 +162,8 @@ if(NOT LV_CONF_BUILD_DISABLE_DEMOS) + set_target_properties( + lvgl_demos + PROPERTIES OUTPUT_NAME lvgl_demos ++ VERSION ${LVGL_VERSION} ++ SOVERSION ${LVGL_SOVERSION} + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" +@@ -173,6 +182,8 @@ if(NOT LV_CONF_BUILD_DISABLE_EXAMPLES) + set_target_properties( + lvgl_examples + PROPERTIES OUTPUT_NAME lvgl_examples ++ VERSION ${LVGL_VERSION} ++ SOVERSION ${LVGL_SOVERSION} + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" +-- +2.43.0 + diff --git a/meta-oe/recipes-graphics/lvgl/files/0008-fix-fbdev-set-resolution-prior-to-buffer.patch b/meta-oe/recipes-graphics/lvgl/files/0008-fix-fbdev-set-resolution-prior-to-buffer.patch new file mode 100644 index 0000000000..449db53dfb --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/files/0008-fix-fbdev-set-resolution-prior-to-buffer.patch @@ -0,0 +1,29 @@ +From a6f822f75b3ba01b00c028608c93160d09a6ffd1 Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung <jaeyoon.jung@lge.com> +Date: Mon, 1 Apr 2024 18:00:39 +0900 +Subject: [PATCH] fix(fbdev): set resolution prior to buffer + +Otherwise it ends up with using the default value 800x480 and may fail +at lv_display_set_buffers due to incorrect resolution. + +Upstream-Status: Submitted [https://github.com/lvgl/lvgl/pull/6004] +Signed-off-by: Jaeyoon Jung <jaeyoon.jung@lge.com> +--- + + src/drivers/display/fb/lv_linux_fbdev.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/drivers/display/fb/lv_linux_fbdev.c b/src/drivers/display/fb/lv_linux_fbdev.c +index b3cc89199..5fb4c5c9f 100644 +--- a/src/drivers/display/fb/lv_linux_fbdev.c ++++ b/src/drivers/display/fb/lv_linux_fbdev.c +@@ -233,8 +233,8 @@ void lv_linux_fbdev_set_file(lv_display_t * disp, const char * file) + draw_buf_2 = malloc(draw_buf_size); + } + +- lv_display_set_buffers(disp, draw_buf, draw_buf_2, draw_buf_size, LV_LINUX_FBDEV_RENDER_MODE); + lv_display_set_resolution(disp, hor_res, ver_res); ++ lv_display_set_buffers(disp, draw_buf, draw_buf_2, draw_buf_size, LV_LINUX_FBDEV_RENDER_MODE); + + if(width > 0) { + lv_display_set_dpi(disp, DIV_ROUND_UP(hor_res * 254, width * 10)); diff --git a/meta-oe/recipes-graphics/lvgl/lv-conf.inc b/meta-oe/recipes-graphics/lvgl/lv-conf.inc new file mode 100644 index 0000000000..8fd3412c04 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/lv-conf.inc @@ -0,0 +1,76 @@ +PACKAGECONFIG ??= "drm" + +PACKAGECONFIG[drm] = ",,libdrm" +PACKAGECONFIG[fbdev] = ",," +PACKAGECONFIG[sdl] = ",,virtual/libsdl2 libsdl2-image" + +# Add libdrm include if drm is selected in PACKAGECONFIG +TARGET_CFLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'drm', '-I${STAGING_INCDIR}/libdrm', '', d)}" + +LVGL_CONFIG_USE_DRM = "${@bb.utils.contains('PACKAGECONFIG', 'drm', '1', '0', d)}" + +LVGL_CONFIG_USE_EVDEV = "${@bb.utils.contains_any('PACKAGECONFIG', 'drm fbdev', '1', '0', d)}" + +LVGL_CONFIG_USE_FBDEV = "${@bb.utils.contains('PACKAGECONFIG', 'fbdev', '1', '0', d)}" + +LVGL_CONFIG_USE_SDL = "${@bb.utils.contains('PACKAGECONFIG', 'sdl', '1', '0', d)}" +LVGL_CONFIG_SDL_FULLSCREEN ?= "0" + +LVGL_CONFIG_LV_MEM_CUSTOM ?= "0" +LVGL_CONFIG_LV_MEM_SIZE ?= "(64 * 1024U)" +LVGL_CONFIG_LV_COLOR_DEPTH ?= "32" + +LVGL_CONFIG_LV_USE_LOG ?= "0" +LVGL_CONFIG_LV_LOG_LEVEL ?= "LV_LOG_LEVEL_WARN" +LVGL_CONFIG_LV_LOG_PRINTF ?= "0" + +LVGL_CONFIG_LV_USE_FONT_COMPRESSED ?= "0" + +LVGL_CONFIG_LV_THEME_DEFAULT_DARK ?= "0" + +DEBUG_BUILD ??= "0" + +ALLOW_EMPTY:${PN} = "1" + +EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${baselib}" + +do_configure:append() { + # If there is a configuration template, start from that + [ -r "${S}/lv_conf_template.h" ] && cp -Lv "${S}/lv_conf_template.h" "${S}/lv_conf.h" + + sed -r -e "s|#if 0 .*Set it to \"1\" to enable content.*|#if 1 // Enabled by ${PN}|" \ + \ + -e "s|^([[:space:]]*#define LV_USE_LINUX_DRM[[:space:]]).*|\1${LVGL_CONFIG_USE_DRM}|" \ + \ + -e "s|^([[:space:]]*#define LV_USE_LINUX_FBDEV[[:space:]]).*|\1${LVGL_CONFIG_USE_FBDEV}|" \ + \ + -e "s|^([[:space:]]*#define LV_USE_SDL[[:space:]]).*|\1${LVGL_CONFIG_USE_SDL}|" \ + -e "s|^([[:space:]]*#define LV_USE_DRAW_SDL[[:space:]]).*|\1${LVGL_CONFIG_USE_SDL}|" \ + -e "s|^([[:space:]]*#define LV_SDL_BUF_COUNT[[:space:]]).*|\1 2|" \ + -e "s|^([[:space:]]*#define LV_SDL_FULLSCREEN[[:space:]]).*|\1${LVGL_CONFIG_SDL_FULLSCREEN}|" \ + \ + -e "s|^([[:space:]]*#define LV_COLOR_DEPTH[[:space:]]).*|\1${LVGL_CONFIG_LV_COLOR_DEPTH}|" \ + -e "s|^([[:space:]]*#define LV_MEM_CUSTOM[[:space:]]).*|\1${LVGL_CONFIG_LV_MEM_CUSTOM}|" \ + -e "s|^([[:space:]]*#define LV_MEM_SIZE[[:space:]]).*|\1${LVGL_CONFIG_LV_MEM_SIZE}|" \ + \ + -e "s|^([[:space:]]*#define LV_TICK_CUSTOM[[:space:]]).*|\1 1|" \ + -e "s|^([[:space:]]*#define LV_TICK_CUSTOM_INCLUDE[[:space:]]).*|\1 <stdint.h>|" \ + -e "s|^([[:space:]]*#define LV_TICK_CUSTOM_SYS_TIME_EXPR[[:space:]]).*|extern uint32_t custom_tick_get(void);\n\1 (custom_tick_get())|" \ + \ + -e "s|^([[:space:]]*#define LV_USE_EVDEV[[:space:]]).*|\1${LVGL_CONFIG_USE_EVDEV}|" \ + \ + -e "s|^([[:space:]]*#define LV_USE_ASSERT_NULL[[:space:]]).*|\1${DEBUG_BUILD}|" \ + -e "s|^([[:space:]]*#define LV_USE_ASSERT_MALLOC[[:space:]]).*|\1${DEBUG_BUILD}|" \ + -e "s|^([[:space:]]*#define LV_USE_ASSERT_STYLE[[:space:]]).*|\1${DEBUG_BUILD}|" \ + -e "s|^([[:space:]]*#define LV_USE_ASSERT_MEM_INTEGRITY[[:space:]]).*|\1${DEBUG_BUILD}|" \ + -e "s|^([[:space:]]*#define LV_USE_ASSERT_OBJ[[:space:]]).*|\1${DEBUG_BUILD}|" \ + \ + -e "s|^([[:space:]]*#define LV_USE_LOG[[:space:]]).*|\1${LVGL_CONFIG_LV_USE_LOG}|" \ + -e "s|^([[:space:]]*#define LV_LOG_LEVEL[[:space:]]).*|\1${LVGL_CONFIG_LV_LOG_LEVEL}|" \ + -e "s|^([[:space:]]*#define LV_LOG_PRINTF[[:space:]]).*|\1${LVGL_CONFIG_LV_LOG_PRINTF}|" \ + \ + -e "s|^([[:space:]]*#define LV_USE_FONT_COMPRESSED[[:space:]]).*|\1${LVGL_CONFIG_LV_USE_FONT_COMPRESSED}|" \ + -e "s|^([[:space:]]*#define LV_THEME_DEFAULT_DARK[[:space:]]).*|\1${LVGL_CONFIG_LV_THEME_DEFAULT_DARK}|" \ + \ + -i "${S}/lv_conf.h" +} diff --git a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.1.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.1.0.bb new file mode 100644 index 0000000000..6e8371baad --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.1.0.bb @@ -0,0 +1,45 @@ +SUMMARY = "LVGL Demo Application for Framebuffer" +HOMEPAGE = "https://github.com/lvgl/lv_port_linux_frame_buffer" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=802d3d83ae80ef5f343050bf96cce3a4 \ + file://lvgl/LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a" + +SRC_URI = "\ + git://github.com/lvgl/lv_port_linux_frame_buffer.git;protocol=https;branch=master;name=demo \ + git://github.com/lvgl/lvgl;protocol=https;branch=master;name=lvgl;subdir=git/lvgl \ + file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch;patchdir=lvgl \ + file://0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch \ + file://0004-Factor-out-fbdev-initialization-code.patch \ + file://0005-Add-DRM-KMS-example-support.patch \ + file://0006-Add-SDL2-example-support.patch \ + file://0007-fix-cmake-generate-versioned-shared-libraries.patch;patchdir=lvgl \ + file://0008-fix-fbdev-set-resolution-prior-to-buffer.patch;patchdir=lvgl \ + " +SRCREV_demo = "dccc6a1ca48372aa993dbea7a8e17dec6f42df6a" +SRCREV_lvgl = "e1c0b21b2723d391b885de4b2ee5cc997eccca91" +SRCREV_FORMAT = "demo_lvgl" + +EXTRA_OEMAKE = "DESTDIR=${D}" + +LVGL_CONFIG_DRM_CARD ?= "/dev/dri/card0" +LVGL_CONFIG_LV_USE_LOG = "1" +LVGL_CONFIG_LV_LOG_PRINTF = "1" +LVGL_CONFIG_LV_MEM_SIZE = "(256 * 1024U)" +LVGL_CONFIG_LV_USE_FONT_COMPRESSED = "1" +require lv-conf.inc + +inherit cmake + +S = "${WORKDIR}/git" + +do_configure:prepend() { + if [ "${LVGL_CONFIG_USE_SDL}" -eq 1 ] ; then + # Add libsdl build dependency, SDL2_image has no cmake file + sed -i '/^target_link_libraries/ s@pthread@& SDL2_image@' "${S}/CMakeLists.txt" + fi +} + +do_install:append() { + install -d ${D}${bindir} + install -m 0755 ${S}/bin/main ${D}${bindir}/lvgl +} diff --git a/meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb new file mode 100644 index 0000000000..4435c40777 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb @@ -0,0 +1,33 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: MIT + +HOMEPAGE = "https://lvgl.io/" +DESCRIPTION = "LVGL is an OSS graphics library to create embedded GUI" +SUMMARY = "Light and Versatile Graphics Library" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a" + +SRC_URI = "\ + git://github.com/lvgl/lvgl;protocol=https;branch=master \ + file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch \ + file://0007-fix-cmake-generate-versioned-shared-libraries.patch \ + file://0008-fix-fbdev-set-resolution-prior-to-buffer.patch \ + " +SRCREV = "e1c0b21b2723d391b885de4b2ee5cc997eccca91" + +inherit cmake + +EXTRA_OECMAKE = "-DLIB_INSTALL_DIR=${baselib} -DBUILD_SHARED_LIBS=ON" +S = "${WORKDIR}/git" + +require lv-conf.inc + +do_install:append() { + install -d "${D}${includedir}/${PN}" + install -m 0644 "${S}/lv_conf.h" "${D}${includedir}/${PN}/lv_conf.h" +} + +FILES:${PN}-dev += "\ + ${includedir}/${PN}/ \ + " diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0001-Initialize-msghdr-struct-in-a-portable-way.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0001-Initialize-msghdr-struct-in-a-portable-way.patch new file mode 100644 index 0000000000..d4779505d8 --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0001-Initialize-msghdr-struct-in-a-portable-way.patch @@ -0,0 +1,40 @@ +From 7c370576b4fb7c7d3b6dbf33125136a4ae70a330 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 31 Aug 2022 21:52:16 -0700 +Subject: [PATCH] Initialize msghdr struct in a portable way + +Initializing the structure assuming glibc layout results in +compile errors on musl, therefore do partial intialization and then +assigning the members individually. + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/4/] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/lxcom.c | 9 +++++++-- + 2 files changed, 10 insertions(+), 5 deletions(-) + +diff --git a/src/lxcom.c b/src/lxcom.c +index 397d1b5..517c775 100644 +--- a/src/lxcom.c ++++ b/src/lxcom.c +@@ -117,10 +117,15 @@ static gboolean lxcom_dispatch (GSource *source,GSourceFunc callback,gpointer us + char ctrl[/*CMSG_SPACE(sizeof(LXDM_CRED))*/1024]; + struct sockaddr_un peer; + struct iovec v={buf,sizeof(buf)}; +- struct msghdr h={&peer,sizeof(peer),&v,1,ctrl,sizeof(ctrl),0}; ++ struct msghdr h={0}; + struct cmsghdr *cmptr; + int ret; +- ++ h.msg_name = &peer; ++ h.msg_namelen = sizeof(peer); ++ h.msg_iov = &v; ++ h.msg_iovlen = 1; ++ h.msg_control = ctrl; ++ h.msg_controllen = sizeof(ctrl); + while(1) + { + peer.sun_family=0; +-- +2.37.3 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0001-greeter-set-visible-when-switch-to-input-user.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0001-greeter-set-visible-when-switch-to-input-user.patch new file mode 100644 index 0000000000..e01dc7fa7c --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0001-greeter-set-visible-when-switch-to-input-user.patch @@ -0,0 +1,33 @@ +From f6b8e141e00c4837239f5b69af4e7bee1204abba Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Thu, 17 Dec 2020 10:18:58 +0800 +Subject: [PATCH 1/8] greeter: set visible when switch to input user + +It switches back to input user entry if press Esc key when input the +password. At this time, the user name input is shown as '*' rather than +plain text. Set the visibility to fix this issue. And clean the text as +well. + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + src/greeter.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/greeter.c b/src/greeter.c +index 2c6e5be..f100c72 100644 +--- a/src/greeter.c ++++ b/src/greeter.c +@@ -139,6 +139,8 @@ static void switch_to_input_user(void) + pass=NULL; + } + gtk_label_set_text( GTK_LABEL(prompt), _("User:")); ++ gtk_entry_set_text(GTK_ENTRY(login_entry), ""); ++ gtk_entry_set_visibility(GTK_ENTRY(login_entry), TRUE); + gtk_widget_show(prompt); + if(user_list) + { +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0001-systemd-lxdm.service-remove-plymouth-quit-conflicts.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0001-systemd-lxdm.service-remove-plymouth-quit-conflicts.patch new file mode 100644 index 0000000000..7ec073b08a --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0001-systemd-lxdm.service-remove-plymouth-quit-conflicts.patch @@ -0,0 +1,38 @@ +From f662906c52f264e4c139e402932103f47269aa1b Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Mon, 24 Jan 2022 17:16:15 +0800 +Subject: [PATCH] systemd/lxdm.service: remove plymouth-quit conflicts + +When use plymouth[1] with lxdm, the plymouth boot splash screen +will hang there as lxdm.service conflicts with plymouth-quit.service +and plymouth-quit will fail to start if plymouth-quit.service and +lxdm.service start at the same time and it will result in the boot +screen hang forever. + +Consider there is also After setting for these two services, so +remove the conflicts setting to make the service start as expected. + +[1] https://gitlab.freedesktop.org/plymouth/plymouth/-/tree/main + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/3] + +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> +--- + systemd/lxdm.service | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/systemd/lxdm.service b/systemd/lxdm.service +index bf4a0a8..90d8cdb 100644 +--- a/systemd/lxdm.service ++++ b/systemd/lxdm.service +@@ -1,6 +1,6 @@ + [Unit] + Description=LXDE Display Manager +-Conflicts=getty@tty1.service plymouth-quit.service ++Conflicts=getty@tty1.service + After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service + + [Service] +-- +2.17.1 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0002-greeter-gdk.c-fix-typo.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0002-greeter-gdk.c-fix-typo.patch new file mode 100644 index 0000000000..da02129756 --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0002-greeter-gdk.c-fix-typo.patch @@ -0,0 +1,28 @@ +From 3a3c5c644c9790cb3f88f3ce3757c2803cff90c5 Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Thu, 17 Dec 2020 14:32:40 +0800 +Subject: [PATCH 2/8] greeter-gdk.c: fix typo + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + src/greeter-gdk.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/greeter-gdk.c b/src/greeter-gdk.c +index 1b27d2e..5aa3e7f 100644 +--- a/src/greeter-gdk.c ++++ b/src/greeter-gdk.c +@@ -299,7 +299,7 @@ void ui_prepare(void) + attr.wclass = GDK_INPUT_OUTPUT; + win = gdk_window_new(root, &attr, mask); + gdk_window_set_decorations(win,0); +- gdk_window_set_title(win,"lxdm-greter-gdk"); ++ gdk_window_set_title(win,"lxdm-greeter-gdk"); + + scr=gdk_screen_get_default(); + g_signal_connect(scr, "size-changed", G_CALLBACK(on_screen_size_changed), win); +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch index 75dc10c979..5af4e5233c 100644 --- a/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch @@ -8,9 +8,7 @@ Content-Transfer-Encoding: 8bit in out of tree builds lxdm.conf is empty -Upstream-Status: submitted [1] - -[1] http://sourceforge.net/p/lxde/mailman/message/32901417/ +Upstream-Status: Submitted [http://sourceforge.net/p/lxde/mailman/message/32901417/] Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> --- diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0001-check-for-libexecinfo-providing-backtrace-APIs.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-for-libexecinfo-providing-backtrace-APIs.patch index f9fd4970fb..31b12f8078 100644 --- a/meta-oe/recipes-graphics/lxdm/lxdm/0001-check-for-libexecinfo-providing-backtrace-APIs.patch +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-for-libexecinfo-providing-backtrace-APIs.patch @@ -8,6 +8,8 @@ unlike glibc where it is bundled in Signed-off-by: Khem Raj <raj.khem@gmail.com> --- +Upstream-Status: Pending + configure.ac | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-whether-password-expired-with-pam.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-whether-password-expired-with-pam.patch new file mode 100644 index 0000000000..c64854373d --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-whether-password-expired-with-pam.patch @@ -0,0 +1,46 @@ +From 497e0fc7010969759c8247f7013a89589c44234a Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Thu, 17 Dec 2020 18:12:29 +0800 +Subject: [PATCH 3/8] check whether password expired with pam + +Introduce a new enum AuthResult type AUTH_PASSWD_EXPIRE. When user's +password is expired, return it. Only work with pam. + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + src/lxdm.h | 1 + + src/pam.c | 4 ++++ + 2 files changed, 5 insertions(+) + +diff --git a/src/lxdm.h b/src/lxdm.h +index 568573f..1c2f837 100644 +--- a/src/lxdm.h ++++ b/src/lxdm.h +@@ -41,6 +41,7 @@ enum AuthResult + AUTH_SUCCESS, + AUTH_BAD_USER, + AUTH_FAIL, ++ AUTH_PASSWD_EXPIRE, + AUTH_PRIV, + AUTH_ERROR + }; +diff --git a/src/pam.c b/src/pam.c +index 43bd687..16a36f0 100644 +--- a/src/pam.c ++++ b/src/pam.c +@@ -257,6 +257,10 @@ int lxdm_auth_user_authenticate(LXDM_AUTH *a,const char *user,const char *pass,i + return AUTH_FAIL; + } + ret=pam_acct_mgmt(a->handle,PAM_SILENT); ++ if (ret == PAM_NEW_AUTHTOK_REQD) { ++ g_debug("user %s account has expired\n", user); ++ return AUTH_PASSWD_EXPIRE; ++ } + if(ret!=PAM_SUCCESS) + { + g_debug("user %s acct mgmt fail with %d\n",user,ret); +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch new file mode 100644 index 0000000000..d232f6913e --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch @@ -0,0 +1,25 @@ +From 72812894cfd9454d70e4b0753531e46580416771 Mon Sep 17 00:00:00 2001 +From: dgod <dgod.osa@gmail.com> +Date: Mon, 21 Mar 2016 19:25:25 +0800 +Subject: [PATCH] fix css under gtk 3.20 + +Upstream-Status: Backport [https://git.lxde.org/gitweb/?p=lxde/lxdm.git;a=patch;h=72812894cfd9454d70e4b0753531e46580416771] +--- + data/themes/Industrial/gtk.css | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/data/themes/Industrial/gtk.css b/data/themes/Industrial/gtk.css +index 179f0d6..f8e6432 100644 +--- a/data/themes/Industrial/gtk.css ++++ b/data/themes/Industrial/gtk.css +@@ -17,6 +17,7 @@ + color: #000000; + } + ++#bottom_pane label, + #bottom_pane GtkLabel { + font: Sans 12; + color: #9E9D9B; +-- +2.14.4 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0004-lxdm.c-add-function-to-change-password-with-pam.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0004-lxdm.c-add-function-to-change-password-with-pam.patch new file mode 100644 index 0000000000..29c1000d18 --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0004-lxdm.c-add-function-to-change-password-with-pam.patch @@ -0,0 +1,124 @@ +From d4de5497bd89c408377194b9fa9026ba8e68b634 Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Mon, 11 Jan 2021 14:11:05 +0800 +Subject: [PATCH 4/8] lxdm.c: add function to change password with pam + +Add function to change user's password when pam is enabled. It is useful +to change user's password when the password is expired. + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + src/lxdm.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/lxdm.h | 1 + + 2 files changed, 69 insertions(+) + +diff --git a/src/lxdm.c b/src/lxdm.c +index 638c30f..fe17a71 100644 +--- a/src/lxdm.c ++++ b/src/lxdm.c +@@ -104,6 +104,10 @@ static int old_tty=1,def_tty = 7,nr_tty=0; + static int def_display=0; + static GSList *session_list; + ++#if HAVE_LIBPAM ++static const char *new_passwd = NULL; ++#endif ++ + static void lxdm_startx(LXSession *s); + + static int get_active_vt(void) +@@ -759,6 +763,69 @@ int lxdm_auth_user(int type,char *user, char *pass, struct passwd **ppw) + return ret; + } + ++ ++#if HAVE_LIBPAM ++ ++static int do_conv(int num, const struct pam_message **msg,struct pam_response **resp, void *arg) ++{ ++ int result = PAM_SUCCESS; ++ int i; ++ ++ *resp = (struct pam_response *) calloc(num, sizeof(struct pam_response)); ++ for(i = 0; i < num; i++) ++ { ++ switch (msg[i]->msg_style) { ++ case PAM_PROMPT_ECHO_ON: ++ break; ++ case PAM_PROMPT_ECHO_OFF: ++ resp[i]->resp = strdup(new_passwd); ++ break; ++ case PAM_ERROR_MSG: ++ case PAM_TEXT_INFO: ++ break; ++ default: ++ break; ++ } ++ } ++ return result; ++} ++ ++static int lxdm_change_passwd_pam(const char *service, const char *user, const char *pass) ++{ ++ pam_handle_t *pamh = NULL; ++ static struct pam_conv conv = { ++ do_conv, ++ NULL ++ }; ++ ++ int ret = pam_start("lxdm", user, &conv, &pamh); ++ if (PAM_SUCCESS != ret) { ++ g_warning("pam_start failed."); ++ return 1; ++ } ++ ++ new_passwd = pass; ++ ret = pam_chauthtok(pamh, 0); ++ if (PAM_SUCCESS != ret) { ++ g_warning("pam_chauthtok failed: %s", pam_strerror(pamh, ret)); ++ return 1; ++ } ++ ++ (void)pam_end(pamh, PAM_SUCCESS); ++ ++ return 0; ++} ++#endif ++ ++int lxdm_change_passwd(const char *user, const char *pass) ++{ ++#if HAVE_LIBPAM ++ return lxdm_change_passwd_pam("lxdm", user, pass); ++#else ++ return 0; ++#endif ++} ++ + static void close_left_fds(void) + { + struct dirent **list; +@@ -1446,6 +1513,7 @@ int lxdm_do_auto_login(void) + lxdm_do_login(pw,session,lang,option); + success=1; + } ++ + g_free(user);g_free(session);g_free(lang); + } + g_free(last_lang); +diff --git a/src/lxdm.h b/src/lxdm.h +index 1c2f837..be3c81f 100644 +--- a/src/lxdm.h ++++ b/src/lxdm.h +@@ -30,6 +30,7 @@ G_BEGIN_DECLS + extern GKeyFile *config; + + int lxdm_auth_user(int type,char *user,char *pass,struct passwd **ppw); ++int lxdm_change_passwd(const char *user, const char *pass); + void lxdm_do_login(struct passwd *pw,char *session,char *lang,char *option); + void lxdm_do_reboot(void); + void lxdm_do_shutdown(void); +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0005-ui.c-handle-password-expire-and-update-new-password.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0005-ui.c-handle-password-expire-and-update-new-password.patch new file mode 100644 index 0000000000..ecbe68d148 --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0005-ui.c-handle-password-expire-and-update-new-password.patch @@ -0,0 +1,53 @@ +From 54b2ed18ca52fa682ade2fe84e1b0d19d1b78cc4 Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Mon, 11 Jan 2021 16:48:26 +0800 +Subject: [PATCH 5/8] ui.c: handle password-expire and update-new-password + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + src/ui.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/src/ui.c b/src/ui.c +index f233589..3ddb484 100644 +--- a/src/ui.c ++++ b/src/ui.c +@@ -161,6 +161,9 @@ static gboolean on_greeter_input(GIOChannel *source, GIOCondition condition, gpo + ui_drop(); + lxdm_do_login(pw, session, lang,NULL); + } ++ else if (AUTH_PASSWD_EXPIRE == ret) { ++ xwrite(greeter_pipe[0], "password-expire\n", 16); ++ } + else + { + if(pass!=NULL) +@@ -205,6 +208,23 @@ static gboolean on_greeter_input(GIOChannel *source, GIOCondition condition, gpo + g_free(session); + g_free(lang); + } ++ else if (!strncmp(str, "update-new-password", 19)) { ++ xwrite(greeter_pipe[0], "update-new-password\n", 20); ++ char *user = greeter_param(str, "user"); ++ char *pass = greeter_param(str, "newpass"); ++ char *session = greeter_param(str, "session"); ++ char *lang = greeter_param(str, "lang"); ++ ++ int ret = lxdm_change_passwd(user, pass); ++ if (ret) { ++ xwrite(greeter_pipe[0], "invalid-new-password\n", 21); ++ } else { ++ struct passwd *pw; ++ ret = lxdm_auth_user(AUTH_TYPE_NORMAL, user, pass, &pw); ++ ui_drop(); ++ lxdm_do_login(pw, session, lang, NULL); ++ } ++ } + g_free(str); + return TRUE; + } +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0006-themes-Industrial-add-info-label-in-ui.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0006-themes-Industrial-add-info-label-in-ui.patch new file mode 100644 index 0000000000..4cadc3d9b2 --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0006-themes-Industrial-add-info-label-in-ui.patch @@ -0,0 +1,124 @@ +From 8414d63343cc7909bc7a972941c678509d5d5be6 Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Mon, 11 Jan 2021 10:15:45 +0800 +Subject: [PATCH 6/8] themes/Industrial: add info label in ui + +Adjust the layout and add a new label "info" under the labe "prompt" in +themes/Industrial to tell user some useful information such as +"Authentication failed" or "Invalid password". + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + data/themes/Industrial/greeter-gtk3.ui | 27 +++++++++++++++++++++++++- + data/themes/Industrial/greeter.ui | 27 +++++++++++++++++++++++++- + data/themes/Industrial/gtk.css | 5 +++++ + 3 files changed, 57 insertions(+), 2 deletions(-) + +diff --git a/data/themes/Industrial/greeter-gtk3.ui b/data/themes/Industrial/greeter-gtk3.ui +index 2f4e631..e59eee3 100644 +--- a/data/themes/Industrial/greeter-gtk3.ui ++++ b/data/themes/Industrial/greeter-gtk3.ui +@@ -45,7 +45,12 @@ + <property name="xscale">0</property> + <property name="yscale">0</property> + <child> +- <object class="GtkHBox" id="hbox3"> ++ <object class="GtkVBox" id="vbox3"> ++ <property name="visible">True</property> ++ <property name="orientation">vertical</property> ++ <property name="spacing">12</property> ++ <child> ++ <object class="GtkHBox" id="hbox3"> + <property name="visible">True</property> + <property name="spacing">12</property> + <child> +@@ -91,6 +96,26 @@ + </packing> + </child> + </object> ++ </child> ++ <child> ++ <object class="GtkHBox" id="hbox4"> ++ <property name="visible">True</property> ++ <property name="spacing">12</property> ++ <child> ++ <object class="GtkLabel" id="info"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes"></property> ++ <property name="yalign">0.2</property> ++ </object> ++ <packing> ++ <property name="expand">False</property> ++ <property name="fill">False</property> ++ <property name="position">0</property> ++ </packing> ++ </child> ++ </object> ++ </child> ++ </object> + </child> + </object> + <packing> +diff --git a/data/themes/Industrial/greeter.ui b/data/themes/Industrial/greeter.ui +index 3413922..6a02d8d 100644 +--- a/data/themes/Industrial/greeter.ui ++++ b/data/themes/Industrial/greeter.ui +@@ -47,7 +47,12 @@ + <property name="xscale">0</property> + <property name="yscale">0</property> + <child> +- <object class="GtkHBox" id="hbox3"> ++ <object class="GtkVBox" id="vbox3"> ++ <property name="visible">True</property> ++ <property name="orientation">vertical</property> ++ <property name="spacing">12</property> ++ <child> ++ <object class="GtkHBox" id="hbox3"> + <property name="visible">True</property> + <property name="spacing">12</property> + <child> +@@ -93,6 +98,26 @@ + </packing> + </child> + </object> ++ </child> ++ <child> ++ <object class="GtkHBox" id="hbox4"> ++ <property name="visible">True</property> ++ <property name="spacing">12</property> ++ <child> ++ <object class="GtkLabel" id="info"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes"></property> ++ <property name="yalign">0.2</property> ++ </object> ++ <packing> ++ <property name="expand">False</property> ++ <property name="fill">False</property> ++ <property name="position">0</property> ++ </packing> ++ </child> ++ </object> ++ </child> ++ </object> + </child> + </object> + <packing> +diff --git a/data/themes/Industrial/gtk.css b/data/themes/Industrial/gtk.css +index 7621345..be15f43 100644 +--- a/data/themes/Industrial/gtk.css ++++ b/data/themes/Industrial/gtk.css +@@ -22,3 +22,8 @@ + font: Sans 12; + color: #9E9D9B; + } ++ ++#info { ++ font: Sans 14; ++ font-style: italic; ++} +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0007-greeter.c-support-to-update-expired-password.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0007-greeter.c-support-to-update-expired-password.patch new file mode 100644 index 0000000000..84a9faebb8 --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0007-greeter.c-support-to-update-expired-password.patch @@ -0,0 +1,180 @@ +From bae6a2b3a2232abd16a8d8558dda542d4970f1bb Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Tue, 12 Jan 2021 09:23:05 +0800 +Subject: [PATCH 7/8] greeter.c: support to update expired password + +Update greeter to work with ui to handle expired password. It checks +whether password is expired after input user and password. If expired, +force user to update password immediately. It allows 3 times to try. If +exceeds, reset to input user. + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + src/greeter.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 81 insertions(+), 2 deletions(-) + +diff --git a/src/greeter.c b/src/greeter.c +index f100c72..804fca0 100644 +--- a/src/greeter.c ++++ b/src/greeter.c +@@ -77,6 +77,8 @@ static GtkWidget *lang_menu; + + static char* user = NULL; + static char* pass = NULL; ++static char* new_pass = NULL; ++static gboolean pass_expired = FALSE; + + static char* ui_file = NULL; + static char *ui_nobody = NULL; +@@ -167,10 +169,19 @@ static void switch_to_input_passwd(void) + else + gtk_widget_hide(user_list); + } +- gtk_label_set_text( GTK_LABEL(prompt), _("Password:") ); ++ if (pass_expired) { ++ if (!new_pass) { ++ gtk_label_set_text(GTK_LABEL(prompt), _("New password:")); ++ } else { ++ gtk_label_set_text(GTK_LABEL(prompt), _("Retype new password:")); ++ } ++ } else { ++ gtk_label_set_text( GTK_LABEL(prompt), _("Password:") ); ++ } + gtk_entry_set_text(GTK_ENTRY(login_entry), ""); + gtk_entry_set_visibility(GTK_ENTRY(login_entry), FALSE); + gtk_widget_show(login_entry); ++ gtk_widget_show(prompt); + gtk_widget_grab_focus(login_entry); + } + +@@ -189,6 +200,8 @@ static void try_login_user(const char *user) + + static void on_entry_activate(GtkEntry* entry) + { ++ static int count = 0; ++ + char* tmp; + if( !user ) + { +@@ -217,6 +230,46 @@ static void on_entry_activate(GtkEntry* entry) + } + else + { ++ if (pass_expired) { ++ if (!new_pass) { ++ new_pass = g_strdup(gtk_entry_get_text(entry)); ++ switch_to_input_passwd(); ++ } else { ++ tmp = g_strdup(gtk_entry_get_text(entry)); ++ if (strcmp(new_pass, tmp)) { ++ g_free(new_pass); ++ new_pass = NULL; ++ // if new passwords not match, retry for 3 times at most ++ if (++count < 3) { ++ switch_to_input_passwd(); ++ } else { ++ count = 0; ++ pass_expired = FALSE; ++ switch_to_input_user(); ++ } ++ } else if (!strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) { ++ // if new password is same as old one ++ g_free(new_pass); ++ new_pass = NULL; ++ if (++count < 3) { ++ switch_to_input_passwd(); ++ } else { ++ count = 0; ++ pass_expired = FALSE; ++ switch_to_input_user(); ++ } ++ } else { ++ char *session_exec=get_session_exec(); ++ char *session_lang=get_session_lang(); ++ ++ printf("update-new-password user=%s newpass=%s session=%s lang=%s\n", ++ user, new_pass, session_exec, session_lang); ++ } ++ } ++ ++ return ; ++ } ++ + char *session_exec=get_session_exec(); + char *session_lang=get_session_lang(); + +@@ -227,6 +280,7 @@ static void on_entry_activate(GtkEntry* entry) + printf("login user=%s pass=%s session=%s lang=%s\n", + user, pass, session_exec, session_lang); + ++#if 0 + /* password check failed */ + g_free(user); + user = NULL; +@@ -241,6 +295,7 @@ static void on_entry_activate(GtkEntry* entry) + gtk_label_set_text( GTK_LABEL(prompt), _("User:") ); + gtk_entry_set_text(GTK_ENTRY(entry), ""); + gtk_entry_set_visibility(GTK_ENTRY(entry), TRUE); ++#endif + } + } + +@@ -1091,8 +1146,12 @@ static void on_screen_size_changed(GdkScreen *screen,GtkWidget *win) + + static gint login_entry_on_key_press (GtkWidget *widget,GdkEventKey *event) + { +- if(event->keyval == GDK_Escape) ++ if(event->keyval == GDK_Escape) { ++ g_free(new_pass); ++ new_pass = NULL; ++ pass_expired = FALSE; + switch_to_input_user(); ++ } + return FALSE; + } + +@@ -1285,8 +1344,10 @@ static void create_win() + + static gboolean on_lxdm_command(GIOChannel *source, GIOCondition condition, gpointer data) + { ++ + GIOStatus ret; + char *str; ++ static int count = 0; + + if( !(G_IO_IN & condition) ) + return FALSE; +@@ -1300,10 +1361,28 @@ static gboolean on_lxdm_command(GIOChannel *source, GIOCondition condition, gpoi + { + switch_to_input_user(); + } ++ else if (!strncmp(str, "password-expire", 15)) ++ { ++ pass_expired = TRUE; ++ switch_to_input_passwd(); ++ } + else if( !strncmp(str, "password", 8)) + { + switch_to_input_passwd(); + } ++ else if (!strncmp(str, "invalid-new-password", 20)) ++ { ++ g_free(new_pass); ++ new_pass = NULL; ++ ++ if (count++ < 3) { ++ switch_to_input_passwd(); ++ } else { ++ count = 0; ++ pass_expired = FALSE; ++ switch_to_input_user(); ++ } ++ } + g_free(str); + return TRUE; + } +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0008-greeter.c-show-information-on-gtk-label-info.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0008-greeter.c-show-information-on-gtk-label-info.patch new file mode 100644 index 0000000000..eab9fd5e2e --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0008-greeter.c-show-information-on-gtk-label-info.patch @@ -0,0 +1,99 @@ +From bb4ff4b134383bfdadf7cb5353d3553a8a72d47e Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Wed, 13 Jan 2021 10:45:48 +0800 +Subject: [PATCH 8/8] greeter.c: show information on gtk label 'info' + +Show information on a gtk label 'info' which is added under label +'prompt' in the .glade or .ui files. + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + src/greeter.c | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +diff --git a/src/greeter.c b/src/greeter.c +index 804fca0..a4a2336 100644 +--- a/src/greeter.c ++++ b/src/greeter.c +@@ -64,6 +64,7 @@ static GtkWidget* win; + static GtkWidget* alignment2; + static GtkWidget* prompt; + static GtkWidget* login_entry; ++static GtkWidget* info; + static GtkWidget* user_list_scrolled; + static GtkWidget* user_list; + +@@ -241,10 +242,12 @@ static void on_entry_activate(GtkEntry* entry) + new_pass = NULL; + // if new passwords not match, retry for 3 times at most + if (++count < 3) { ++ gtk_label_set_text((GtkLabel *)info, _("Passwords do not match, please retry.")); + switch_to_input_passwd(); + } else { + count = 0; + pass_expired = FALSE; ++ gtk_label_set_text((GtkLabel *)info, _("Maximum number of failed update password attempts exceeded.")); + switch_to_input_user(); + } + } else if (!strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) { +@@ -252,6 +255,7 @@ static void on_entry_activate(GtkEntry* entry) + g_free(new_pass); + new_pass = NULL; + if (++count < 3) { ++ gtk_label_set_text((GtkLabel *)info, _("New password is same as old one, password unchanged.")); + switch_to_input_passwd(); + } else { + count = 0; +@@ -1146,6 +1150,9 @@ static void on_screen_size_changed(GdkScreen *screen,GtkWidget *win) + + static gint login_entry_on_key_press (GtkWidget *widget,GdkEventKey *event) + { ++ ++ gtk_label_set_text(GTK_LABEL(info), ""); ++ + if(event->keyval == GDK_Escape) { + g_free(new_pass); + new_pass = NULL; +@@ -1211,11 +1218,14 @@ static void create_win() + login_entry = (GtkWidget*)gtk_builder_get_object(builder, "login_entry"); + if(login_entry!=NULL) + { +- g_signal_connect_after(login_entry,"key-press-event",G_CALLBACK(login_entry_on_key_press),NULL); ++ g_signal_connect(login_entry,"key-press-event",G_CALLBACK(login_entry_on_key_press),NULL); + } + + g_signal_connect(login_entry, "activate", G_CALLBACK(on_entry_activate), NULL); + ++ info = (GtkWidget *)gtk_builder_get_object(builder, "info"); ++ gtk_label_set_text(GTK_LABEL(info), ""); ++ + if( g_key_file_get_integer(config, "display", "bottom_pane", 0)==1) + { + /* hacks to let GtkEventBox paintable with gtk pixmap engine. */ +@@ -1359,11 +1369,13 @@ static gboolean on_lxdm_command(GIOChannel *source, GIOCondition condition, gpoi + gtk_main_quit(); + else if( !strncmp(str, "reset", 5) ) + { ++ gtk_label_set_text(GTK_LABEL(info), _("Authentication failed.")); + switch_to_input_user(); + } + else if (!strncmp(str, "password-expire", 15)) + { + pass_expired = TRUE; ++ gtk_label_set_text(GTK_LABEL(info), _("You are required to change your password immediately.")); + switch_to_input_passwd(); + } + else if( !strncmp(str, "password", 8)) +@@ -1376,6 +1388,7 @@ static gboolean on_lxdm_command(GIOChannel *source, GIOCondition condition, gpoi + new_pass = NULL; + + if (count++ < 3) { ++ gtk_label_set_text(GTK_LABEL(info), _("Invalid new password. Please input new password again.")); + switch_to_input_passwd(); + } else { + count = 0; +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0009-greeter.c-disallow-empty-new-password.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0009-greeter.c-disallow-empty-new-password.patch new file mode 100644 index 0000000000..3b12defb03 --- /dev/null +++ b/meta-oe/recipes-graphics/lxdm/lxdm/0009-greeter.c-disallow-empty-new-password.patch @@ -0,0 +1,53 @@ +From af1c347a31ae243d29c6087da8ffb423b23c74f2 Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Mon, 1 Feb 2021 09:54:48 +0800 +Subject: [PATCH] greeter.c: disallow empty new password + +Do not clear text of label 'promt' when skip_password is set. When user +is required to update password, it only shows input box without label +for about 1 second. + +And disallow empty new password when user is required to update it. + +Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/2/] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + src/greeter.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/greeter.c b/src/greeter.c +index 7e4a168..c0e6b64 100644 +--- a/src/greeter.c ++++ b/src/greeter.c +@@ -220,7 +220,6 @@ static void on_entry_activate(GtkEntry* entry) + } + if(g_key_file_get_integer(config,"base","skip_password",NULL)!=0) + { +- gtk_label_set_text( GTK_LABEL(prompt), ""); + try_login_user(user); + } + else +@@ -235,6 +239,10 @@ static void on_entry_activate(GtkEntry* entry) + if (pass_expired) { + if (!new_pass) { + new_pass = g_strdup(gtk_entry_get_text(entry)); ++ if (strlen(new_pass) == 0) { ++ new_pass = NULL; ++ gtk_label_set_text((GtkLabel *)info, _("Empty password is not allowed.")); ++ } + switch_to_input_passwd(); + } else { + tmp = g_strdup(gtk_entry_get_text(entry)); +@@ -251,7 +259,7 @@ static void on_entry_activate(GtkEntry* entry) + gtk_label_set_text((GtkLabel *)info, _("Maximum number of failed update password attempts exceeded.")); + switch_to_input_user(); + } +- } else if (!strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) { ++ } else if (pass && !strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) { + // if new password is same as old one + g_free(new_pass); + new_pass = NULL; +-- +2.25.1 + diff --git a/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb b/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb index 8e7efcdada..ae45258297 100644 --- a/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb +++ b/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb @@ -1,43 +1,55 @@ SUMMARY = "LXDM is the lightweight display manager" HOMEPAGE = "http://blog.lxde.org/?p=531" -LICENSE = "GPLv3" +LICENSE = "GPL-3.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}%20${PV}/${BPN}-${PV}.tar.xz \ file://lxdm.conf \ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://lxdm-pam file://lxdm-pam-debug', '', d)} \ ${@bb.utils.contains("DISTRO_TYPE", "debug", "", "file://0001-lxdm.conf.in-blacklist-root-for-release-images.patch",d)} \ file://0002-let-autotools-create-lxdm.conf.patch \ - file://0001-check-for-libexecinfo-providing-backtrace-APIs.patch \ + file://0003-check-for-libexecinfo-providing-backtrace-APIs.patch \ + file://0004-fix-css-under-gtk-3.20.patch \ + file://0001-greeter-set-visible-when-switch-to-input-user.patch \ + file://0002-greeter-gdk.c-fix-typo.patch \ + file://0003-check-whether-password-expired-with-pam.patch \ + file://0004-lxdm.c-add-function-to-change-password-with-pam.patch \ + file://0005-ui.c-handle-password-expire-and-update-new-password.patch \ + file://0006-themes-Industrial-add-info-label-in-ui.patch \ + file://0007-greeter.c-support-to-update-expired-password.patch \ + file://0008-greeter.c-show-information-on-gtk-label-info.patch \ + file://0009-greeter.c-disallow-empty-new-password.patch \ + file://0001-systemd-lxdm.service-remove-plymouth-quit-conflicts.patch \ + file://0001-Initialize-msghdr-struct-in-a-portable-way.patch \ " SRC_URI[md5sum] = "061caae432634e6db38bbdc84bc6ffa0" SRC_URI[sha256sum] = "4891efee81c72a400cc6703e40aa76f3f3853833d048b72ec805da0f93567f2f" PE = "1" -DEPENDS = "virtual/libintl intltool-native cairo dbus gdk-pixbuf glib-2.0 gtk+ virtual/libx11 libxcb pango iso-codes" +DEPENDS = "virtual/libintl intltool-native cairo dbus gdk-pixbuf glib-2.0 gtk+3 virtual/libx11 libxcb pango iso-codes" DEPENDS += "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "consolekit", d)}" -DEPENDS_append_libc-musl = " libexecinfo" +DEPENDS:append:libc-musl = " libexecinfo" # combine oe-core way with angstrom DISTRO_TYPE DISTRO_TYPE ?= "${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "debug", "",d)}" -inherit autotools pkgconfig gettext systemd distro_features_check +inherit autotools pkgconfig gettext systemd features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" -CFLAGS_append = " -fno-builtin-fork -fno-builtin-memset -fno-builtin-strstr " -LDFLAGS_append_libc-musl = " -lexecinfo" +CFLAGS:append = " -fno-builtin-fork -fno-builtin-memset -fno-builtin-strstr " +LDFLAGS:append:libc-musl = " -lexecinfo" -EXTRA_OECONF += "--enable-gtk3=no --enable-password=yes --with-x -with-xconn=xcb \ +EXTRA_OECONF += "--enable-gtk3=yes --enable-password=yes --with-x -with-xconn=xcb \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/ --disable-consolekit', '--without-systemdsystemunitdir', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ " -do_configure_prepend() { +do_configure:prepend() { cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po/ } -do_compile_append() { +do_compile:append() { # default background configured not available / no password field available / no default screensaver sed -i -e 's,bg=,# bg=,g' \ -e 's,# skip_password=,skip_password=,g' \ @@ -47,19 +59,19 @@ do_compile_append() { oe_runmake -C ${B}/data lxdm.conf } -do_install_append() { +do_install:append() { install -d ${D}${localstatedir}/lib/lxdm - install -m 644 ${WORKDIR}/lxdm.conf ${D}${localstatedir}/lib/lxdm + install -m 644 ${UNPACKDIR}/lxdm.conf ${D}${localstatedir}/lib/lxdm if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then # ArchLinux version of pam config has the following advantages: # * simple setup of passwordless login # * in XFCE powerdown/restart enabled in logoff dialog - install -m 644 ${WORKDIR}/${@bb.utils.contains("DISTRO_TYPE", "debug", "lxdm-pam-debug", "lxdm-pam",d)} ${D}${sysconfdir}/pam.d/lxdm + install -m 644 ${UNPACKDIR}/${@bb.utils.contains("DISTRO_TYPE", "debug", "lxdm-pam-debug", "lxdm-pam",d)} ${D}${sysconfdir}/pam.d/lxdm fi } # make installed languages choosable -pkg_postinst_${PN} () { +pkg_postinst:${PN} () { langs="" for lang in `find $D${libdir}/locale -maxdepth 1 | grep _ | sort`; do lang=`basename $lang` @@ -72,9 +84,9 @@ done sed -i "s:last_langs=.*$:last_langs=$langs:g" $D${localstatedir}/lib/lxdm/lxdm.conf } -RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-loginuid', '', d)} setxkbmap bash librsvg-gtk" +RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-loginuid', '', d)} setxkbmap bash librsvg-gtk" -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "lxdm.service" +RPROVIDES:${PN} += "${PN}-systemd" +RREPLACES:${PN} += "${PN}-systemd" +RCONFLICTS:${PN} += "${PN}-systemd" +SYSTEMD_SERVICE:${PN} = "lxdm.service" diff --git a/meta-oe/recipes-graphics/neatvnc/neatvnc_0.8.0.bb b/meta-oe/recipes-graphics/neatvnc/neatvnc_0.8.0.bb new file mode 100644 index 0000000000..c9c4a6c27a --- /dev/null +++ b/meta-oe/recipes-graphics/neatvnc/neatvnc_0.8.0.bb @@ -0,0 +1,38 @@ +SUMMARY = "A liberally licensed VNC server library" +DESCRIPTION = "This is a liberally licensed VNC server library that's intended to be fast and neat." +HOMEPAGE = "https://github.com/any1/neatvnc" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://COPYING;md5=94fc374e7174f41e3afe0f027ee59ff7" + +SRC_URI = "git://github.com/any1/neatvnc;branch=master;protocol=https" + +SRCREV = "46432ce8cade0b54a38d4bb42eb07f96c8ff49fd" + +S = "${WORKDIR}/git" + +DEPENDS = "libdrm pixman aml zlib" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[tls] = "-Dtls=enabled,-Dtls=disabled,gnutls" +PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,libjpeg-turbo" +PACKAGECONFIG[examples] = "-Dexamples=true,-Dexamples=false,libpng" +PACKAGECONFIG[benchmarks] = "-Dbenchmarks=true,-Dbenchmarks=false,libpng" + +PACKAGE_BEFORE_PN += "${PN}-examples" +ALLOW_EMPTY:${PN}-examples = "1" +FILES:${PN}-examples = "${bindir}" + +NEATVNC_EXAMPLES = "draw png-server" + +inherit meson pkgconfig + +do_install:append () { + if ${@bb.utils.contains('PACKAGECONFIG', 'examples', 'true', 'false', d)}; then + install -d ${D}${bindir} + for bin in ${NEATVNC_EXAMPLES}; do + install -m 0755 ${B}/examples/$bin ${D}${bindir} + done + fi +} + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb b/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb index 08d7f5b52a..0d53c78f3e 100644 --- a/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb +++ b/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb @@ -1,7 +1,7 @@ SUMMARY = "Enable NumLock in X11 sessions" HOMEPAGE = "http://home.kde.org/~seli/numlockx/" SECTION = "x11/apps" -LICENSE = "MIT-X" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=dcb1cc75e21540a4a66b54e38d95b047" DEPENDS = "virtual/libx11 libxtst" @@ -10,14 +10,14 @@ SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/numlockx/numlockx-${PV}.tar.g SRC_URI[md5sum] = "be9109370447eae23f6f3f8527bb1a67" SRC_URI[sha256sum] = "e468eb9121c94c9089dc6a287eeb347e900ce04a14be37da29d7696cbce772e4" -inherit autotools distro_features_check +inherit autotools features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" EXTRA_OECONF = "--x-includes=${STAGING_INCDIR} \ --x-libraries=${STAGING_LIBDIR}" -do_configure_prepend() { +do_configure:prepend() { # remove this from acinclude.m4 or build fails sed -i '/_AC_PATH_X_XMKMF/d' ${S}/acinclude.m4 } diff --git a/meta-oe/recipes-graphics/nyancat/nyancat_1.5.2.bb b/meta-oe/recipes-graphics/nyancat/nyancat_1.5.2.bb new file mode 100644 index 0000000000..a44e79362d --- /dev/null +++ b/meta-oe/recipes-graphics/nyancat/nyancat_1.5.2.bb @@ -0,0 +1,17 @@ +SUMMARY = "Render a loop of the Nyan Cat / Poptart Cat animation" +HOMEPAGE = "https://nyancat.dakko.us/" +SECTION = "graphics" + +LICENSE = "NCSA" +LIC_FILES_CHKSUM = "file://src/nyancat.c;beginline=27;endline=49;md5=285f7ac87da4a631f348800687d845bd" + +S = "${WORKDIR}/git" + +SRCREV = "5ffb6c5c03d0e9156db8f360599d4f0449bb16b9" +SRC_URI = " \ + git://github.com/klange/nyancat;protocol=https;branch=master \ +" + +do_install:append() { + install -Dm 0755 ${S}/src/${BPN} ${D}${bindir}/${BPN} +} diff --git a/meta-oe/recipes-graphics/openbox/files/0001-Fix-function-protype-visibility.patch b/meta-oe/recipes-graphics/openbox/files/0001-Fix-function-protype-visibility.patch new file mode 100644 index 0000000000..344c5d149b --- /dev/null +++ b/meta-oe/recipes-graphics/openbox/files/0001-Fix-function-protype-visibility.patch @@ -0,0 +1,94 @@ +From 941d5ff3426e68cb9bcb4ae86066124cb2535b69 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 2 Sep 2022 12:32:20 -0700 +Subject: [PATCH] Fix function protype visibility + +Include ctye.h for toupper + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/appearance.c | 1 + + src/desktops.c | 2 +- + src/desktops.h | 2 +- + src/main.c | 1 + + src/moveresize.c | 2 +- + src/moveresize.h | 2 +- + 6 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/src/appearance.c b/src/appearance.c +index 4fb3f0c..ee55661 100644 +--- a/src/appearance.c ++++ b/src/appearance.c +@@ -20,6 +20,7 @@ + #include "main.h" + #include "tree.h" + #include "preview_update.h" ++#include <ctype.h> /* for toupper */ + + static gboolean mapping = FALSE; + +diff --git a/src/desktops.c b/src/desktops.c +index 8297f00..27ca514 100644 +--- a/src/desktops.c ++++ b/src/desktops.c +@@ -38,7 +38,7 @@ static void on_desktop_names_cell_edited(GtkCellRendererText *cell, + gpointer data); + static void enable_stuff(); + +-void desktops_setup_tab() ++void desktops_setup_tab(void) + { + GtkWidget *w; + GtkCellRenderer *render; +diff --git a/src/desktops.h b/src/desktops.h +index 1ba3e36..446bfbb 100644 +--- a/src/desktops.h ++++ b/src/desktops.h +@@ -24,5 +24,5 @@ + + void desktops_setup_num(GtkWidget *w); + void desktops_setup_names(GtkWidget *w); +- ++void desktops_setup_tab(void); + #endif +diff --git a/src/main.c b/src/main.c +index d7e3446..0176035 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -28,6 +28,7 @@ + #include "dock.h" + #include "preview_update.h" + #include "gettext.h" ++#include "moveresize.h" + + #include <gdk/gdkx.h> + #define SN_API_NOT_YET_FROZEN +diff --git a/src/moveresize.c b/src/moveresize.c +index c6fb3dd..bb52729 100644 +--- a/src/moveresize.c ++++ b/src/moveresize.c +@@ -37,7 +37,7 @@ static gboolean mapping = FALSE; + static void enable_stuff(); + static void write_fixed_position(const gchar *coord); + +-void moveresize_setup_tab() ++void moveresize_setup_tab(void) + { + GtkWidget *w, *w1, *w2, *w3; + GtkSizeGroup *group; +diff --git a/src/moveresize.h b/src/moveresize.h +index 82ecc96..8faf526 100644 +--- a/src/moveresize.h ++++ b/src/moveresize.h +@@ -20,6 +20,6 @@ + #ifndef obconf__moveresize_h + #define obconf__moveresize_h + +-void moveresize_setup_tab(); ++void moveresize_setup_tab(void); + + #endif +-- +2.37.3 + diff --git a/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch b/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch new file mode 100644 index 0000000000..5ebeb01692 --- /dev/null +++ b/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch @@ -0,0 +1,138 @@ +From b7de9cff2a9578dd92d191241c28437cd6bbb595 Mon Sep 17 00:00:00 2001 +From: Max Krummenacher <max.krummenacher@toradex.com> +Date: Sun, 2 Feb 2020 14:39:21 +0000 +Subject: [PATCH] openbox-xdg-autostart: convert to python3 + +Upstream-Status: Pending + +Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> +--- + data/autostart/openbox-xdg-autostart | 72 ++++++++++++++-------------- + 1 file changed, 36 insertions(+), 36 deletions(-) + +diff --git a/data/autostart/openbox-xdg-autostart b/data/autostart/openbox-xdg-autostart +index 04a17a1..52d763f 100755 +--- a/data/autostart/openbox-xdg-autostart ++++ b/data/autostart/openbox-xdg-autostart +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # openbox-xdg-autostart runs things based on the XDG autostart specification + # Copyright (C) 2008 Dana Jansens +@@ -28,9 +28,9 @@ try: + from xdg.DesktopEntry import DesktopEntry + from xdg.Exceptions import ParsingError + except ImportError: +- print +- print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed" +- print ++ print() ++ print("ERROR:", ME, "requires PyXDG to be installed", file=sys.stderr) ++ print() + sys.exit(1) + + def main(argv=sys.argv): +@@ -51,7 +51,7 @@ def main(argv=sys.argv): + try: + autofile = AutostartFile(path) + except ParsingError: +- print "Invalid .desktop file: " + path ++ print("Invalid .desktop file: " + path) + else: + if not autofile in files: + files.append(autofile) +@@ -99,9 +99,9 @@ class AutostartFile: + + def _alert(self, str, info=False): + if info: +- print "\t ", str ++ print("\t ", str) + else: +- print "\t*", str ++ print("\t*", str) + + def _showInEnvironment(self, envs, verbose=False): + default = not self.de.getOnlyShowIn() +@@ -146,14 +146,14 @@ class AutostartFile: + + def display(self, envs): + if self._shouldRun(envs): +- print "[*] " + self.de.getName() ++ print("[*] " + self.de.getName()) + else: +- print "[ ] " + self.de.getName() ++ print("[ ] " + self.de.getName()) + self._alert("File: " + self.path, info=True) + if self.de.getExec(): + self._alert("Executes: " + self.de.getExec(), info=True) + self._shouldRun(envs, True) +- print ++ print() + + def run(self, envs): + here = os.getcwd() +@@ -165,34 +165,34 @@ class AutostartFile: + os.chdir(here) + + def show_help(): +- print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..." +- print +- print "This tool will run xdg autostart .desktop files" +- print +- print "OPTIONS" +- print " --list Show a list of the files which would be run" +- print " Files which would be run are marked with an asterix" +- print " symbol [*]. For files which would not be run," +- print " information is given for why they are excluded" +- print " --help Show this help and exit" +- print " --version Show version and copyright information" +- print +- print "ENVIRONMENT specifies a list of environments for which to run autostart" +- print "applications. If none are specified, only applications which do not " +- print "limit themselves to certain environments will be run." +- print +- print "ENVIRONMENT can be one or more of:" +- print " GNOME Gnome Desktop" +- print " KDE KDE Desktop" +- print " ROX ROX Desktop" +- print " XFCE XFCE Desktop" +- print " Old Legacy systems" +- print ++ print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...") ++ print() ++ print("This tool will run xdg autostart .desktop files") ++ print() ++ print("OPTIONS") ++ print(" --list Show a list of the files which would be run") ++ print(" Files which would be run are marked with an asterix") ++ print(" symbol [*]. For files which would not be run,") ++ print(" information is given for why they are excluded") ++ print(" --help Show this help and exit") ++ print(" --version Show version and copyright information") ++ print() ++ print("ENVIRONMENT specifies a list of environments for which to run autostart") ++ print("applications. If none are specified, only applications which do not ") ++ print("limit themselves to certain environments will be run.") ++ print() ++ print("ENVIRONMENT can be one or more of:") ++ print(" GNOME Gnome Desktop") ++ print(" KDE KDE Desktop") ++ print(" ROX ROX Desktop") ++ print(" XFCE XFCE Desktop") ++ print(" Old Legacy systems") ++ print() + + def show_version(): +- print ME, VERSION +- print "Copyright (c) 2008 Dana Jansens" +- print ++ print(ME, VERSION) ++ print("Copyright (c) 2008 Dana Jansens") ++ print() + + if __name__ == "__main__": + sys.exit(main()) +-- +2.20.1 + diff --git a/meta-oe/recipes-graphics/openbox/obconf_git.bb b/meta-oe/recipes-graphics/openbox/obconf_git.bb new file mode 100644 index 0000000000..1210af70ea --- /dev/null +++ b/meta-oe/recipes-graphics/openbox/obconf_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "Openbox configuration tool" +HOMEPAGE = "http://openbox.org/wiki/ObConf:About" +SECTION = "x11/wm" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = " \ + openbox \ + startup-notification \ + gtk+3 \ +" +PV = "2.0.4+git" + +SRCREV = "63ec47c5e295ad4f09d1df6d92afb7e10c3fec39" +SRC_URI = " \ + git://git.openbox.org/dana/obconf;branch=master \ + file://0001-Fix-function-protype-visibility.patch \ +" + +S = "${WORKDIR}/git" + +inherit autotools gettext pkgconfig mime mime-xdg features_check +# depends on openbox, which is X11-only +REQUIRED_DISTRO_FEATURES = "x11" + +EXTRA_AUTORECONF = "" + +FILES:${PN} += "\ + ${datadir}/mime \ +" + +do_install:append () { + rm -rf ${D}${datadir}/mimelnk +} diff --git a/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb b/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb index c35a0c7238..9a15077316 100644 --- a/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb +++ b/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb @@ -1,22 +1,23 @@ SUMMARY = "openbox Window Manager" SECTION = "x11/wm" -DEPENDS = "glib-2.0 pango libxml2 virtual/libx11 libcroco librsvg gdk-pixbuf" -LICENSE = "GPLv2+" +DEPENDS = "glib-2.0 pango libxml2 virtual/libx11 librsvg gdk-pixbuf" +LICENSE = "GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" SRC_URI = " \ http://icculus.org/openbox/releases/openbox-${PV}.tar.gz \ file://0001-Makefile.am-avoid-race-when-creating-autostart-direc.patch \ + file://0001-openbox-xdg-autostart-convert-to-python3.patch \ " SRC_URI[md5sum] = "b72794996c6a3ad94634727b95f9d204" SRC_URI[sha256sum] = "8b4ac0760018c77c0044fab06a4f0c510ba87eae934d9983b10878483bde7ef7" -inherit autotools gettext update-alternatives pkgconfig distro_features_check +inherit autotools gettext update-alternatives pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" -ALTERNATIVE_${PN}-core = "x-window-manager x-session-manager" +ALTERNATIVE:${PN}-core = "x-window-manager x-session-manager" ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/openbox" ALTERNATIVE_PRIORITY[x-window-manager] = "10" ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/openbox-session" @@ -33,24 +34,25 @@ PACKAGES =+ "${PN}-core ${PN}-lxde ${PN}-gnome ${PN}-config" PACKAGES_DYNAMIC += "^${PN}-theme-.*" -python populate_packages_prepend() { +python populate_packages:prepend() { theme_dir = d.expand('${datadir}/themes/') theme_name = d.expand('${PN}-theme-%s') do_split_packages(d, theme_dir, '(.*)', theme_name, '${PN} theme for %s', extra_depends='', allow_dirs=True) } -RDEPENDS_${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks" -FILES_${PN}-core = "${bindir}/openbox ${bindir}/openbox-session ${libdir}/*${SOLIBS}" +FILES:${PN}-core = "${bindir}/openbox ${bindir}/openbox-session ${libdir}/*${SOLIBS}" -FILES_${PN}-lxde += "${datadir}/lxde/ \ +FILES:${PN}-lxde += "${datadir}/lxde/ \ ${datadir}/lxpanel \ ${datadir}/xsessions \ ${datadir}/icons" -FILES_${PN}-gnome += " \ +FILES:${PN}-gnome += " \ ${bindir}/openbox-gnome-session \ ${datadir}/gnome \ ${datadir}/gnome-session \ " -FILES_${PN}-config += "${sysconfdir}" +FILES:${PN}-config += "${sysconfdir}" + +RDEPENDS:${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks python3 python3-shell pyxdg" diff --git a/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch b/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch deleted file mode 100644 index 866d9aa41b..0000000000 --- a/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 226f07e4b49c2757b181c62e6841000c512054e3 Mon Sep 17 00:00:00 2001 -From: Even Rouault <even.rouault@spatialys.com> -Date: Mon, 14 Aug 2017 17:26:58 +0200 -Subject: [PATCH] bmp_read_info_header(): reject bmp files with biBitCount == 0 - (#983) - -Upstream-Status: Backport [https://github.com/uclouvain/openjpeg/commit/baf0c1ad4572daa89caa3b12985bdd93530f0dd7] -CVE: CVE-2017-12982 -Signed-off-by: Dengke Du <dengke.du@windriver.com> ---- - src/bin/jp2/convertbmp.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/bin/jp2/convertbmp.c b/src/bin/jp2/convertbmp.c -index b49e7a0..2715fdf 100644 ---- a/src/bin/jp2/convertbmp.c -+++ b/src/bin/jp2/convertbmp.c -@@ -392,6 +392,10 @@ static OPJ_BOOL bmp_read_info_header(FILE* IN, OPJ_BITMAPINFOHEADER* header) - - header->biBitCount = (OPJ_UINT16)getc(IN); - header->biBitCount |= (OPJ_UINT16)((OPJ_UINT32)getc(IN) << 8); -+ if (header->biBitCount == 0) { -+ fprintf(stderr, "Error, invalid biBitCount %d\n", 0); -+ return OPJ_FALSE; -+ } - - if (header->biSize >= 40U) { - header->biCompression = (OPJ_UINT32)getc(IN); --- -2.8.1 - diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg/0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch b/meta-oe/recipes-graphics/openjpeg/openjpeg/0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch new file mode 100644 index 0000000000..0ba13cf88f --- /dev/null +++ b/meta-oe/recipes-graphics/openjpeg/openjpeg/0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch @@ -0,0 +1,31 @@ +From 4681de07e21f17aa28710d3a51fabe7da60463f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> +Date: Fri, 28 Sep 2018 00:38:50 +0200 +Subject: [PATCH] Do not ask cmake to export binaries - they don't make it + dependants sysroots +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE-Specific] + +Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> +--- + src/bin/jp2/CMakeLists.txt | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/bin/jp2/CMakeLists.txt b/src/bin/jp2/CMakeLists.txt +index 4324c36d..2c11fe02 100644 +--- a/src/bin/jp2/CMakeLists.txt ++++ b/src/bin/jp2/CMakeLists.txt +@@ -66,7 +66,6 @@ foreach(exe opj_decompress opj_compress opj_dump) + endif() + # Install exe + install(TARGETS ${exe} +- EXPORT OpenJPEGTargets + DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications + ) + if(OPJ_USE_DSYMUTIL) +-- +2.14.4 + diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb deleted file mode 100644 index 4ef1c408fd..0000000000 --- a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "OpenJPEG library is an open-source JPEG 2000 codec" -HOMEPAGE = "http://www.openjpeg.org" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c648878b4840d7babaade1303e7f108c" - -SRC_URI = "https://github.com/uclouvain/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \ - file://0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch \ - " -SRC_URI[md5sum] = "269bb0b175476f3addcc0d03bd9a97b6" -SRC_URI[sha256sum] = "6fddbce5a618e910e03ad00d66e7fcd09cc6ee307ce69932666d54c73b7c6e7b" - -inherit cmake - -DEPENDS = "libpng tiff lcms zlib" - -# standard path for *.cmake -EXTRA_OECMAKE += "-DOPENJPEG_INSTALL_PACKAGE_DIR=${baselib}/cmake \ - -DOPENJPEG_INSTALL_LIB_DIR:PATH=${libdir}" - -FILES_${PN}-dev += "${libdir}/cmake/*.cmake" diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb new file mode 100644 index 0000000000..f2d74078e8 --- /dev/null +++ b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "OpenJPEG library is an open-source JPEG 2000 codec" +HOMEPAGE = "http://www.openjpeg.org" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c648878b4840d7babaade1303e7f108c" + +DEPENDS = "libpng tiff lcms zlib" + +SRC_URI = "git://github.com/uclouvain/openjpeg.git;branch=master;protocol=https \ + file://0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \ + " +SRCREV = "a5891555eb49ed7cc26b2901ea680acda136d811" +S = "${WORKDIR}/git" + +inherit cmake + +# for multilib +EXTRA_OECMAKE += "-DOPENJPEG_INSTALL_LIB_DIR=${@d.getVar('baselib').replace('/', '')}" + +FILES:${PN} += "${libdir}/openjpeg*" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb b/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb index 3069d2dedd..1cc2cdf76b 100644 --- a/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb +++ b/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb @@ -3,7 +3,6 @@ SECTION = "fonts" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" PV = "1.0" -PR = "r2" inherit packagegroup @@ -13,13 +12,13 @@ PACKAGES += "\ ${PN}-japanese \ " -RRECOMMENDS_${PN} = "\ +RRECOMMENDS:${PN} = "\ ${PN}-core \ ${PN}-chinese \ ${PN}-japanese \ " -RDEPENDS_${PN}-core = "\ +RDEPENDS:${PN}-core = "\ fontconfig-utils \ \ ttf-dejavu-common \ @@ -28,12 +27,12 @@ RDEPENDS_${PN}-core = "\ " # ttf-dejavu-serif -RDEPENDS_${PN}-chinese = "\ +RDEPENDS:${PN}-chinese = "\ ${PN}-core \ ttf-arphic-uming \ " -RDEPENDS_${PN}-japanese = "\ +RDEPENDS:${PN}-japanese = "\ ${PN}-core \ ttf-sazanami-gothic \ ttf-sazanami-mincho \ diff --git a/meta-oe/recipes-graphics/pango/pangomm-2.48_2.50.1.bb b/meta-oe/recipes-graphics/pango/pangomm-2.48_2.50.1.bb new file mode 100644 index 0000000000..86787a6b7f --- /dev/null +++ b/meta-oe/recipes-graphics/pango/pangomm-2.48_2.50.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "C++ bindings for the pango library" +SECTION = "libs" +LICENSE = "LGPL-2.1-only & GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \ + file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "mm-common cairomm-1.16 glibmm-2.68 pango" + +GNOMEBN = "pangomm" +inherit gnomebase features_check + +SRC_URI[archive.sha256sum] = "ccc9923413e408c2bff637df663248327d72822f11e394b423e1c5652b7d9214" +REQUIRED_DISTRO_FEATURES = "x11" + +S = "${WORKDIR}/${GNOMEBN}-${PV}" + +FILES:${PN} = "${libdir}/lib*.so.*" +FILES:${PN}-dev += "${libdir}/*/include/ ${libdir}/pangomm-*/" + diff --git a/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb b/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb deleted file mode 100644 index e0f72cd58a..0000000000 --- a/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "C++ bindings for the pango library" -SECTION = "libs" -LICENSE = "LGPLv2.1 & GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \ - file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "mm-common cairomm glibmm pango" - -SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" - -SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/pangomm/${SHRT_VER}/pangomm-${PV}.tar.xz" -SRC_URI[md5sum] = "874eadd9434613dbacf0272c82c3ac23" -SRC_URI[sha256sum] = "9762ee2a2d5781be6797448d4dd2383ce14907159b30bc12bf6b08e7227be3af" - -inherit distro_features_check autotools pkgconfig - -REQUIRED_DISTRO_FEATURES = "x11" - -EXTRA_OECONF = " --disable-documentation " - -FILES_${PN} = "${libdir}/lib*.so.*" -FILES_${PN}-dev += "${libdir}/*/include/ ${libdir}/pangomm-*/" - diff --git a/meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb b/meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb new file mode 100644 index 0000000000..da822f3243 --- /dev/null +++ b/meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb @@ -0,0 +1,18 @@ +SUMMARY = "C++ bindings for the pango library" +SECTION = "libs" +LICENSE = "LGPL-2.1-only & GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \ + file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "mm-common cairomm glibmm pango" + + +inherit gnomebase features_check + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +SRC_URI[archive.sha256sum] = "57442ab4dc043877bfe3839915731ab2d693fc6634a71614422fb530c9eaa6f4" + +FILES:${PN} = "${libdir}/lib*.so.*" +FILES:${PN}-dev += "${libdir}/*/include/ ${libdir}/pangomm-*/" + diff --git a/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-memmove-and-memchr-are-C-APIs-not-C-std-namespace.patch b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-memmove-and-memchr-are-C-APIs-not-C-std-namespace.patch new file mode 100644 index 0000000000..2316c1ffdf --- /dev/null +++ b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-memmove-and-memchr-are-C-APIs-not-C-std-namespace.patch @@ -0,0 +1,45 @@ +From 98bef35c010a9c7891634fe9bcc4b560abbcb4e9 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 12 Apr 2022 11:29:50 -0700 +Subject: [PATCH] memmove and memchr are C APIs not C++ std namespace + +Fixes build error +../git/src/deqp-runner.cc: In member function 'Line_reader::read_status Line_reader::read(char**, double)': +../git/src/deqp-runner.cc:249:10: error: 'memmove' is not a member of 'std'; did you mean 'wmemmove'? + 249 | std::memmove(buf_.data(), buf_.data() + skip_sz_, valid_sz_); + | ^~~~~~~ + | wmemmove +../git/src/deqp-runner.cc:255:35: error: 'memchr' is not a member of 'std'; did you mean 'wmemchr'? + 255 | while (!(newline = (char *)std::memchr(buf_.data(), '\n', valid_sz_)) && + | ^~~~~~ + | wmemchr + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/parallel-deqp-runner/-/merge_requests/17] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/deqp-runner.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/deqp-runner.cc b/src/deqp-runner.cc +index 1cc8a55..55a15f9 100644 +--- a/src/deqp-runner.cc ++++ b/src/deqp-runner.cc +@@ -246,13 +246,13 @@ Line_reader::read_status Line_reader::read(char **text, double timeout) { + + if (skip_sz_) { + valid_sz_ -= skip_sz_; +- std::memmove(buf_.data(), buf_.data() + skip_sz_, valid_sz_); ++ memmove(buf_.data(), buf_.data() + skip_sz_, valid_sz_); + skip_sz_ = 0; + } + + char *newline; + bool end = false; +- while (!(newline = (char *)std::memchr(buf_.data(), '\n', valid_sz_)) && ++ while (!(newline = (char *)memchr(buf_.data(), '\n', valid_sz_)) && + !end && valid_sz_ + 1 < (int)buf_.size()) { + for (;;) { + struct pollfd p = {}; +-- +2.35.1 + diff --git a/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch new file mode 100644 index 0000000000..02ef3cce76 --- /dev/null +++ b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch @@ -0,0 +1,44 @@ +From 2b74a5b160c0500291c554ab5c0944f502e72a42 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org> +Date: Thu, 9 Jul 2020 20:00:53 +0200 +Subject: [PATCH] meson.build: WORKAROUND Remove vulkan dependency +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We need a patch in the source code to allow enable when DISTRO_FEATURES +contains vulkan. + +Signed-off-by: Aníbal Limón <anibal.limon@linaro.org> +--- +Upstream-Status: Pending + + meson.build | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/meson.build b/meson.build +index db97c26..4c1b865 100644 +--- a/meson.build ++++ b/meson.build +@@ -3,21 +3,15 @@ project('parallel-deqp-runner', ['c', 'cpp'], + cpp = meson.get_compiler('cpp') + + thread_dep = dependency('threads') +-vulkan_dep = dependency('vulkan') + + fs_dep = cpp.find_library('stdc++fs', required : false) + if not fs_dep.found() + fs_dep = cpp.find_library('c++fs') + endif + +- + deqp_runner = executable('deqp-runner', + 'src/deqp-runner.cc', + dependencies : [thread_dep, fs_dep], + install : true) + +-executable('hang-detection', +- 'src/hang_detection.c', +- dependencies: [vulkan_dep]) +- + subdir('test') diff --git a/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb new file mode 100644 index 0000000000..2ec89bc05b --- /dev/null +++ b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb @@ -0,0 +1,15 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4f59d6446bf2e004e80df1a0937129fa" + +SRC_URI = "git://gitlab.freedesktop.org/mesa/parallel-deqp-runner.git;protocol=https;branch=master \ + file://0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch \ + file://0001-memmove-and-memchr-are-C-APIs-not-C-std-namespace.patch \ + " + +# Modify these as desired +PV = "2020.06.15+git" +SRCREV = "e1642fb691d29b1462504b58916f7f514a963e80" + +S = "${WORKDIR}/git" + +inherit pkgconfig meson diff --git a/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb b/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb new file mode 100644 index 0000000000..039816e4a0 --- /dev/null +++ b/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "C library for encoding data in a QR Code symbol" +HOMEPAGE = "http://fukuchi.org/works/qrencode/" +SECTION = "libs" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +SRCREV = "715e29fd4cd71b6e452ae0f4e36d917b43122ce8" +SRC_URI = "git://github.com/fukuchi/libqrencode.git;branch=master;protocol=https" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +BBCLASSEXTEND = "native" + +EXTRA_OECONF += "--without-tests" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[tools] = "--with-tools,--without-tools,libpng" diff --git a/meta-oe/recipes-graphics/qrencode/qrencode_git.bb b/meta-oe/recipes-graphics/qrencode/qrencode_git.bb deleted file mode 100644 index f5397750f5..0000000000 --- a/meta-oe/recipes-graphics/qrencode/qrencode_git.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "C library for encoding data in a QR Code symbol" -AUTHOR = "Kentaro Fukuchi" -HOMEPAGE = "http://fukuchi.org/works/qrencode/" -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" -PV = "4.0.0+git${SRCPV}" - -SRCREV = "07f3c5d4bf9136711422cc7dbf28aff469da220a" -SRC_URI = "git://github.com/fukuchi/libqrencode.git" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - -EXTRA_OECONF += "--without-tools --without-tests" diff --git a/meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb b/meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb new file mode 100644 index 0000000000..58f2275736 --- /dev/null +++ b/meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb @@ -0,0 +1,38 @@ +SUMMARY = "RenderDoc recipe providing renderdoccmd" +DESCRIPTION = "RenderDoc is a frame-capture based graphics debugger" +HOMEPAGE = "https://github.com/baldurk/renderdoc" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=36d34a46cb71546195d2b0c626a52e5d" + +SRCREV = "35b13a8e8fd2a331854dba6da81a20452e142d6f" +SRC_URI = " \ + git://github.com/baldurk/${BPN}.git;protocol=https;branch=v1.x \ +" +S = "${WORKDIR}/git" + +DEPENDS += "virtual/libx11 virtual/libgl libxcb xcb-util-keysyms" + +RDEPENDS:${PN} = "libxcb xcb-util-keysyms" + +inherit cmake pkgconfig python3native features_check + +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +python __anonymous () { + # only works on glibc systems + if d.getVar('TCLIBC') != "glibc": + raise bb.parse.SkipRecipe("incompatible with %s C library" % d.getVar('TCLIBC')) +} + +COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64).*-linux" + +EXTRA_OECMAKE += "\ + -DENABLE_QRENDERDOC=OFF \ + -DENABLE_PYRENDERDOC=OFF \ + -DENABLE_RENDERDOCCMD=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DHOST_NATIVE_CPP_COMPILER="${BUILD_CXX}" \ +" + +FILES:${PN} += "${libdir}" +FILES:${PN}-dev = "${includedir}" diff --git a/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb b/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb new file mode 100644 index 0000000000..bf3070701f --- /dev/null +++ b/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb @@ -0,0 +1,14 @@ +SUMMARY = "SPIRV-Cross is a tool designed for parsing and converting SPIR-V \ +to other shader languages" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" +SECTION = "graphics" + +S = "${WORKDIR}/git" +SRCREV = "f09ba2777714871bddb70d049878af34b94fa54d" +SRC_URI = "git://github.com/KhronosGroup/SPIRV-Cross.git;branch=master;protocol=https" +inherit cmake pkgconfig + +EXTRA_OECMAKE = "-DSPIRV_CROSS_SHARED=ON" + +FILES:${PN} += "${datadir}" diff --git a/meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb b/meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb new file mode 100644 index 0000000000..161650f75d --- /dev/null +++ b/meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb @@ -0,0 +1,16 @@ +SUMMARY = "Stand-alone system tray" +DESCRIPTION = "Stalonetray is a stand-alone freedesktop.org and KDE system tray" +SECTION = "x11/graphics" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "virtual/libx11" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2" + +SRC_URI[md5sum] = "ae95dbbacc2620e032acea8abab8c9ef" +SRC_URI[sha256sum] = "36548a588b2d466913423245dda6ffb6313132cd0cec635a117d37b3dab5fd4c" + +inherit autotools features_check + +REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-oe/recipes-graphics/suckless/st_0.9.2.bb b/meta-oe/recipes-graphics/suckless/st_0.9.2.bb new file mode 100644 index 0000000000..22ad0211b6 --- /dev/null +++ b/meta-oe/recipes-graphics/suckless/st_0.9.2.bb @@ -0,0 +1,37 @@ +SECTION = "shadow" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=703e9835709f45ee7b81082277f1daec" +SRC_URI = "http://dl.suckless.org/${BPN}/${BP}.tar.gz" + +inherit pkgconfig features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[sha256sum] = "6b215d4f472b21d6232f30f221117a777e24bcfee68955ddefb7426467f9494b" + +DEPENDS += "libx11 libxft fontconfig ncurses-native" + +RDEPENDS:${PN} += "libx11-locale" + +do_compile() { + make INCS='-I. `pkg-config --cflags x11 fontconfig xft`' LIBS='-lm -lutil `pkg-config --libs x11 fontconfig xft`' +} +do_install() { + make install DESTDIR=${D} PREFIX=/usr TERMINFO=${D}${datadir}/terminfo +} + +FILES:${PN} += " \ + ${datadir}/terminfo \ +" + +inherit update-alternatives + +ALTERNATIVE_PRIORITY = "50" + +ALTERNATIVE:${PN} = "st st-256color" + +ALTERNATIVE_LINK_NAME[st] = "${datadir}/terminfo/s/st" + +ALTERNATIVE_LINK_NAME[st-256color] = "${datadir}/terminfo/s/st-256color" + +CVE_STATUS[CVE-2017-16224] = "cpe-incorrect: The recipe used in the meta-openembedded is a different st package compared to the one which has the CVE issue." diff --git a/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch b/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch new file mode 100644 index 0000000000..6011f4e3ac --- /dev/null +++ b/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch @@ -0,0 +1,30 @@ +From 9de4f5fa81891e14e205fe61e1408f1218369e55 Mon Sep 17 00:00:00 2001 +From: Leon Anavi <leon.anavi@konsulko.com> +Date: Tue, 18 May 2021 15:03:22 +0000 +Subject: [PATCH] config.mk: Fix compiler and linker + +Fix LIBS + +Signed-off-by: Leon Anavi <leon.anavi@konsulko.com> +--- +Upstream-Status: Pending + + config.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config.mk b/config.mk +index 2eb9fb0..032bf9f 100644 +--- a/config.mk ++++ b/config.mk +@@ -19,7 +19,7 @@ WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio- + + # includes and libs + INCS = $(X11INC) $(GTKINC) +-LIBS = $(X11LIB) $(GTKLIB) -lgthread-2.0 ++LIBS = -lc -lX11 ${GTKLIB} -lgthread-2.0 + + # flags + CPPFLAGS = -DVERSION=\"$(VERSION)\" -DGCR_API_SUBJECT_TO_CHANGE \ +-- +2.17.1 + diff --git a/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch b/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch new file mode 100644 index 0000000000..d273d1459f --- /dev/null +++ b/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch @@ -0,0 +1,42 @@ +From 0cd38e6dbcaff7eef39fd46a60ff8a47e5f488c4 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Sun, 3 Oct 2021 23:08:48 +0200 +Subject: [PATCH] config.ml: make compatible with webkitgtk 2.34.0 + +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- +Upstream-Status: Pending + + config.mk | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/config.mk ++++ b/config.mk +@@ -2,6 +2,7 @@ + VERSION = 2.1 + + # Customize below to fit your system ++PKG_CONFIG ?= pkg-config + + # paths + PREFIX = /usr/local +@@ -9,13 +10,13 @@ MANPREFIX = $(PREFIX)/share/man + LIBPREFIX = $(PREFIX)/lib + LIBDIR = $(LIBPREFIX)/surf + +-X11INC = `pkg-config --cflags x11` +-X11LIB = `pkg-config --libs x11` ++X11INC = $(shell $(PKG_CONFIG) --cflags x11) ++X11LIB = $(shell $(PKG_CONFIG) --libs x11) + +-GTKINC = `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.0` +-GTKLIB = `pkg-config --libs gtk+-3.0 gcr-3 webkit2gtk-4.0` +-WEBEXTINC = `pkg-config --cflags webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio-2.0` +-WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio-2.0` ++GTKINC = $(shell $(PKG_CONFIG) --cflags gtk+-3.0 gcr-3 webkit2gtk-4.1) ++GTKLIB = $(shell $(PKG_CONFIG) --libs gtk+-3.0 gcr-3 webkit2gtk-4.1) ++WEBEXTINC = $(shell $(PKG_CONFIG) --cflags webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0) ++WEBEXTLIBS = $(shell $(PKG_CONFIG) --libs webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0) + + # includes and libs + INCS = $(X11INC) $(GTKINC) diff --git a/meta-oe/recipes-graphics/surf/surf_2.1.bb b/meta-oe/recipes-graphics/surf/surf_2.1.bb new file mode 100644 index 0000000000..4d9d4d3dd0 --- /dev/null +++ b/meta-oe/recipes-graphics/surf/surf_2.1.bb @@ -0,0 +1,31 @@ +SUMMARY = "Simple web browser" +DESCRIPTION = "Simple open source web browser based on WebKit2/GTK" +HOMEPAGE = "https://surf.suckless.org/" +SECTION = "x11/graphics" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a6f86d002ae9ae1eb1ccc466289f146" + +DEPENDS = "webkitgtk3 gtk+3 glib-2.0 gcr3" + +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +SRCREV = "665a709b522a6fa18c671f1fc41297603292d0e8" +SRC_URI = "git://git.suckless.org/surf;branch=surf-webkit2 \ + " +SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'soup3', 'file://0001-config.mk-Fix-compiler-and-linker.patch file://0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch', '', d)}" + +S = "${WORKDIR}/git" + +inherit pkgconfig features_check + +PACKAGECONFIG_SOUP ?= "soup3" +PACKAGECONFIG ??= "${PACKAGECONFIG_SOUP}" + +PACKAGECONFIG[soup2] = ",,," +PACKAGECONFIG[soup3] = ",,," + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install () { + install -D -m 0755 ${S}/surf ${D}${bindir}/surf +} diff --git a/meta-oe/recipes-graphics/terminus-font/terminus-font/use-no-name-option-for-gzip.patch b/meta-oe/recipes-graphics/terminus-font/terminus-font/use-no-name-option-for-gzip.patch new file mode 100644 index 0000000000..97213c07da --- /dev/null +++ b/meta-oe/recipes-graphics/terminus-font/terminus-font/use-no-name-option-for-gzip.patch @@ -0,0 +1,66 @@ +Build compressed archives with -n + +The compressed archives contain a header with the field MTIME +(Modification Time) which is initialized from the built date. +As a consequence, two separate builds generate compressed archives +whose checksum differs. Such behavior prevents reproducible builds. + +Adding the -n option to gzip while compressing the archive does +not save the original time stamp by default hence making +reproducible build. + +Upstream-Status: Inappropriate + +Signed-off-by: Jean-Marc BOUCHE <jean-marc.bouche@foss.st.com> +Index: terminus-font-4.49.1/Makefile +=================================================================== +--- terminus-font-4.49.1.orig/Makefile ++++ terminus-font-4.49.1/Makefile +@@ -92,9 +92,9 @@ otbdir = $(prefix)/share/fonts/terminus + + install: $(PSF) $(PCF) + mkdir -p $(DESTDIR)$(psfdir) +- for i in $(PSF) ; do gzip -c $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done ++ for i in $(PSF) ; do gzip -c -n $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done + mkdir -p $(DESTDIR)$(x11dir) +- for i in $(PCF) ; do gzip -c $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done ++ for i in $(PCF) ; do gzip -c -n $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done + + uninstall: + for i in $(PSF) ; do rm -f $(DESTDIR)$(psfdir)/$$i.gz ; done +@@ -193,7 +193,7 @@ psf: $(PSF) + + install-psf: $(PSF) + mkdir -p $(DESTDIR)$(psfdir) +- for i in $(PSF) ; do gzip -c $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done ++ for i in $(PSF) ; do gzip -c -n $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done + + uninstall-psf: + for i in $(PSF) ; do rm -f $(DESTDIR)$(psfdir)/$$i.gz ; done +@@ -202,7 +202,7 @@ psf-vgaw: $(PSF_VGAW) + + install-psf-vgaw: $(PSF_VGAW) + mkdir -p $(DESTDIR)$(psfdir) +- for i in $(PSF_VGAW) ; do gzip -c $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done ++ for i in $(PSF_VGAW) ; do gzip -c -n $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done + + uninstall-psf-vgaw: + for i in $(PSF_VGAW) ; do rm -f $(DESTDIR)$(psfdir)/$$i.gz ; done +@@ -279,7 +279,7 @@ pcf: $(PCF) + + install-pcf: $(PCF) + mkdir -p $(DESTDIR)$(x11dir) +- for i in $(PCF) ; do gzip -c $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done ++ for i in $(PCF) ; do gzip -c -n $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done + + uninstall-pcf: + for i in $(PCF) ; do rm -f $(DESTDIR)$(x11dir)/$$i.gz ; done +@@ -288,7 +288,7 @@ pcf-8bit: $(PCF_8BIT) + + install-pcf-8bit: $(PCF_8BIT) + mkdir -p $(DESTDIR)$(x11dir) +- for i in $(PCF_8BIT) ; do gzip -c $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done ++ for i in $(PCF_8BIT) ; do gzip -c -n $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done + + uninstall-pcf-8bit: + for i in $(PCF_8BIT) ; do rm -f $(DESTDIR)$(x11dir)/$$i.gz ; done diff --git a/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb b/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb index c460fc35c7..1fabe2e29e 100644 --- a/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb +++ b/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb @@ -2,17 +2,18 @@ SUMMARY = "Terminus fonts packages (console and X11)" DESCRIPTION = "Terminus Font is a clean, fixed width bitmap font, designed for \ long (8 and more hours per day) work with computers." HOMEPAGE = "http://terminus-font.sourceforge.net/" -AUTHOR = "Dimitar Zhekov" SECTION = "fonts" LICENSE = "OFL-1.1" -LIC_FILES_CHKSUM = "file://OFL.TXT;md5=9cadb26f4c5c005618c5ae74f041ec54" +LIC_FILES_CHKSUM = "file://OFL.TXT;md5=f57e6cca943dbc6ef83dc14f1855bdcc" DEPENDS = "hostperl-runtime-native gzip-native bdftopcf-native" -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz" -SRC_URI[md5sum] = "a8e792fe6e84c86ed2b6ed3e2a12ba66" -SRC_URI[sha256sum] = "f6f4876a4dabe6a37c270c20bb9e141e38fb50e0bba200e1b9d0470e5eed97b7" +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ + file://use-no-name-option-for-gzip.patch \ + " +SRC_URI[md5sum] = "1b6acbd221957e33c8a792ebfaf3a659" +SRC_URI[sha256sum] = "d961c1b781627bf417f9b340693d64fc219e0113ad3a3af1a3424c7aa373ef79" inherit allarch fontcache @@ -32,14 +33,14 @@ do_configure() { } do_compile() { - oe_runmake DESTDIR=${D} psf txt ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'pcf', '', d)} + oe_runmake DESTDIR=${D} psf ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'pcf', '', d)} } do_install() { - oe_runmake DESTDIR=${D} install-psf install-acm ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'install-pcf', '', d)} + oe_runmake DESTDIR=${D} install-psf ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'install-pcf', '', d)} } PACKAGES += "${PN}-consolefonts ${PN}-consoletrans ${PN}-pcf" -FILES_${PN}-consolefonts = "${datadir}/consolefonts" -FILES_${PN}-consoletrans = "${datadir}/consoletrans" -FILES_${PN}-pcf = "${datadir}/fonts/terminus" +FILES:${PN}-consolefonts = "${datadir}/consolefonts" +FILES:${PN}-consoletrans = "${datadir}/consoletrans" +FILES:${PN}-pcf = "${datadir}/fonts/terminus" diff --git a/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb b/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb new file mode 100644 index 0000000000..0d45ee765c --- /dev/null +++ b/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb @@ -0,0 +1,26 @@ +SUMMARY = "tesseract-ocr language files" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRCREV = "4767ea922bcc460e70b87b1d303ebdfed0897da8" +SRC_URI = "git://github.com/tesseract-ocr/tessdata.git;branch=main;protocol=https" + +S = "${WORKDIR}/git" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/tessdata + cp -R --no-dereference --preserve=mode,links -v ${S}/*.traineddata ${D}${datadir}/tessdata +} + +python populate_packages:prepend () { + tessdata_dir= d.expand('${datadir}/tessdata') + pkgs = do_split_packages(d, tessdata_dir, r'^([a-z_]*)\.*', '${BPN}-%s', 'tesseract-ocr language files for %s', extra_depends='') + pn = d.getVar('PN') + d.appendVar('RDEPENDS:' + pn, ' '+' '.join(pkgs)) +} + +PACKAGES_DYNAMIC += "^${BPN}-.*" +ALLOW_EMPTY:${PN} = "1" diff --git a/meta-oe/recipes-graphics/tesseract/tesseract-lang_git.bb b/meta-oe/recipes-graphics/tesseract/tesseract-lang_git.bb deleted file mode 100644 index ac36a91a35..0000000000 --- a/meta-oe/recipes-graphics/tesseract/tesseract-lang_git.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "tesseract-ocr language files" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=9648bd7af63bd3cc4f5ac046d12c49e4" - -PV = "3.04.00+git${SRCPV}" -SRCREV = "3cf1e2df1fe1d1da29295c9ef0983796c7958b7d" -SRC_URI = "git://github.com/tesseract-ocr/tessdata.git" -S = "${WORKDIR}/git" - -inherit allarch - -do_install() { - install -d ${D}${datadir}/tessdata - cp -R --no-dereference --preserve=mode,links -v ${S}/*.traineddata ${S}/*.cube.* ${S}/*.tesseract_cube.* ${D}${datadir}/tessdata -} - -python populate_packages_prepend () { - tessdata_dir= d.expand('${datadir}/tessdata') - pkgs = do_split_packages(d, tessdata_dir, '^([a-z_]*)\.*', '${BPN}-%s', 'tesseract-ocr language files for %s', extra_depends='') - pn = d.getVar('PN') - d.appendVar('RDEPENDS_' + pn, ' '+' '.join(pkgs)) -} - -PACKAGES_DYNAMIC += "^${BPN}-.*" -ALLOW_EMPTY_${PN} = "1" diff --git a/meta-oe/recipes-graphics/tesseract/tesseract_5.3.4.bb b/meta-oe/recipes-graphics/tesseract/tesseract_5.3.4.bb new file mode 100644 index 0000000000..b32bf34518 --- /dev/null +++ b/meta-oe/recipes-graphics/tesseract/tesseract_5.3.4.bb @@ -0,0 +1,21 @@ +SUMMARY = "A commercial quality OCR engine " +HOMEPAGE = "https://github.com/tesseract-ocr/tesseract" +BUGTRACKER = "https://github.com/tesseract-ocr/tesseract/issues" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRCREV = "8ee020e14cf5be4e3f0e9beb09b6b050a1871854" +SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=main;protocol=https" + +S = "${WORKDIR}/git" + +DEPENDS = "leptonica" + +EXTRA_OECONF += "LIBLEPT_HEADERSDIR=${STAGING_INCDIR}/leptonica" + +inherit autotools pkgconfig + +FILES:${PN} += "${datadir}/tessdata" + +RRECOMMENDS:${PN} += "tesseract-lang-eng" diff --git a/meta-oe/recipes-graphics/tesseract/tesseract_git.bb b/meta-oe/recipes-graphics/tesseract/tesseract_git.bb deleted file mode 100644 index 89d09a0f55..0000000000 --- a/meta-oe/recipes-graphics/tesseract/tesseract_git.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "A commercial quality OCR engine " - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=7ea4f9a43aba9d3c849fe5c203a0ed40" - -BRANCH = "3.05" -PV = "${BRANCH}.01+git${SRCPV}" -SRCREV = "215866151e774972c9502282111b998d7a053562" -SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=${BRANCH}" -S = "${WORKDIR}/git" - -DEPENDS = "leptonica" - -EXTRA_OECONF += "LIBLEPT_HEADERSDIR=${STAGING_INCDIR}/leptonica" - - -inherit autotools pkgconfig - -FILES_${PN} += "${datadir}/tessdata" - -RRECOMMENDS_${PN} += "tesseract-lang-eng" diff --git a/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch b/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch deleted file mode 100644 index 12c437629d..0000000000 --- a/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 4b423cd2e5e4296abca3be553bf64d8cc287180a Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Thu, 20 Jul 2017 17:09:05 +0800 -Subject: [PATCH 1/4] tigervnc: remove includedir - -Upstream-Status: Pending - -Signed-off-by: Chong Lu <Chong.Lu@windriver.com> - -It fixes host contamination - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - unix/xserver/hw/vnc/Makefile.am | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/unix/xserver/hw/vnc/Makefile.am b/unix/xserver/hw/vnc/Makefile.am -index 0d6a4ac..854f078 100644 ---- a/unix/xserver/hw/vnc/Makefile.am -+++ b/unix/xserver/hw/vnc/Makefile.am -@@ -22,7 +22,7 @@ libvnccommon_la_SOURCES = $(HDRS) \ - - libvnccommon_la_CPPFLAGS = -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \ - -DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common -UHAVE_CONFIG_H \ -- -I$(TIGERVNC_SRCDIR)/unix/vncconfig $(XVNC_CPPFLAGS) ${XSERVERLIBS_CFLAGS} -I$(includedir) \ -+ -I$(TIGERVNC_SRCDIR)/unix/vncconfig $(XVNC_CPPFLAGS) ${XSERVERLIBS_CFLAGS} \ - -I$(top_srcdir)/include - - bin_PROGRAMS = Xvnc -@@ -42,7 +42,7 @@ Xvnc_CPPFLAGS = $(XVNC_CPPFLAGS) -DTIGERVNC -DNO_MODULE_EXTS \ - -UHAVE_CONFIG_H \ - -DXFree86Server -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \ - -DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common \ -- -I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS} -I$(includedir) -+ -I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS} - - Xvnc_LDADD = $(XVNC_LIBS) libvnccommon.la $(COMMON_LIBS) \ - $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XVNC_SYS_LIBS) -lX11 -@@ -62,7 +62,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I$(TIGERVNC_SRCDIR)/common -UHAVE_CONFIG_ - -I$(top_srcdir)/hw/xfree86/os-support \ - -I$(top_srcdir)/hw/xfree86/os-support/bus \ - -I$(top_srcdir)/include \ -- ${XSERVERLIBS_CFLAGS} -I$(includedir) -+ ${XSERVERLIBS_CFLAGS} - - libvnc_la_LDFLAGS = -module -avoid-version -Wl,-z,now - --- -2.7.4 - diff --git a/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch b/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch index 4e875ba82b..5a42e67d06 100644 --- a/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch +++ b/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch @@ -1,29 +1,30 @@ -From c3460d63f0b6cd50b9a64265f420f0439e12a1d5 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Tue, 25 Apr 2017 01:36:44 -0400 -Subject: [PATCH 2/4] do not build tests sub directory +From 076d0e12a7be6cd2108e4ca0dcde1cb658918fa5 Mon Sep 17 00:00:00 2001 +From: Chen Qi <Qi.Chen@windriver.com> +Date: Mon, 19 Apr 2021 23:02:45 -0700 +Subject: [PATCH] do not build tests sub directory -Upstream-Status: Inappropriate [oe specific] +Upstream-Status: Inappropriate [OE Specific] -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +Signed-off-by: Hongxu Jia <Hongxu.Jia@windriver.com> +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> --- CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 94ec2ef..fb72a00 100644 +index 7bf99441..bda80598 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -300,9 +300,6 @@ if(BUILD_VIEWER) +@@ -304,9 +304,6 @@ if(BUILD_VIEWER) add_subdirectory(media) endif() -add_subdirectory(tests) - - - include(cmake/BuildPackages.cmake) + add_subdirectory(release) # uninstall -- -2.7.4 +2.30.2 diff --git a/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch b/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch index 97b0a388a2..5f14665b8d 100644 --- a/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch +++ b/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch @@ -1,44 +1,34 @@ -From 9563b69640227da2220ee0c39077afb736cc96d1 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Thu, 20 Jul 2017 17:12:17 +0800 -Subject: [PATCH 4/4] tigervnc: add fPIC option to COMPILE_FLAGS +From 7f8acd59bb2e54f9be25a98dd71534700a9e355a Mon Sep 17 00:00:00 2001 +From: Chen Qi <Qi.Chen@windriver.com> +Date: Mon, 19 Apr 2021 23:14:28 -0700 +Subject: [PATCH] tigervnc: add fPIC option to COMPILE_FLAGS -The static libraries in Xregion/network/rdr/rfb were linked by shared +The static libraries in network/rdr/rfb were linked by shared library libvnc.so, so we should add fPIC option to COMPILE_FLAGS to fix relocation issue. Upstream-Status: Pending Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> --- - common/Xregion/CMakeLists.txt | 1 + common/network/CMakeLists.txt | 1 + common/rdr/CMakeLists.txt | 1 + common/rfb/CMakeLists.txt | 1 + - 4 files changed, 4 insertions(+) + 3 files changed, 3 insertions(+) -diff --git a/common/Xregion/CMakeLists.txt b/common/Xregion/CMakeLists.txt -index 40ca97e..9411328 100644 ---- a/common/Xregion/CMakeLists.txt -+++ b/common/Xregion/CMakeLists.txt -@@ -3,4 +3,5 @@ add_library(Xregion STATIC - - if(UNIX) - libtool_create_control_file(Xregion) -+ set_target_properties(Xregion PROPERTIES COMPILE_FLAGS -fPIC) - endif() diff --git a/common/network/CMakeLists.txt b/common/network/CMakeLists.txt -index b624c8e..6c06ec9 100644 +index d00ca452..e84e0290 100644 --- a/common/network/CMakeLists.txt +++ b/common/network/CMakeLists.txt -@@ -9,4 +9,5 @@ endif() +@@ -16,4 +16,5 @@ endif() if(UNIX) libtool_create_control_file(network) + set_target_properties(network PROPERTIES COMPILE_FLAGS -fPIC) endif() diff --git a/common/rdr/CMakeLists.txt b/common/rdr/CMakeLists.txt -index 989ba2f..20f6489 100644 +index 989ba2f4..20f6489d 100644 --- a/common/rdr/CMakeLists.txt +++ b/common/rdr/CMakeLists.txt @@ -27,4 +27,5 @@ target_link_libraries(rdr ${RDR_LIBRARIES}) @@ -48,15 +38,15 @@ index 989ba2f..20f6489 100644 + set_target_properties(rdr PROPERTIES COMPILE_FLAGS -fPIC) endif() diff --git a/common/rfb/CMakeLists.txt b/common/rfb/CMakeLists.txt -index 5047e5e..88838ab 100644 +index fc5a37bf..7f5ce131 100644 --- a/common/rfb/CMakeLists.txt +++ b/common/rfb/CMakeLists.txt -@@ -98,4 +98,5 @@ target_link_libraries(rfb ${RFB_LIBRARIES}) +@@ -99,4 +99,5 @@ target_link_libraries(rfb ${RFB_LIBRARIES}) if(UNIX) libtool_create_control_file(rfb) + set_target_properties(rfb PROPERTIES COMPILE_FLAGS -fPIC) endif() -- -2.7.4 +2.30.2 diff --git a/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch b/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch deleted file mode 100644 index 2f342c6835..0000000000 --- a/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e4ec992984983ac9107efae1f1cc552007e4229e Mon Sep 17 00:00:00 2001 -From: Vishal Biswas <vshlbiswas@ymail.com> -Date: Mon, 8 May 2017 11:06:11 +0530 -Subject: [PATCH] Remove INITARGS from xserver119.patch - -Upstream-Status: Backport - ---- - unix/xserver119.patch | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/unix/xserver119.patch b/unix/xserver119.patch -index 614f104..7adf314 100644 ---- a/unix/xserver119.patch -+++ b/unix/xserver119.patch -@@ -66,7 +66,7 @@ diff -up xserver/mi/miinitext.c.xserver116-rebased xserver/mi/miinitext.c - #include "globals.h" - - +#ifdef TIGERVNC --+extern void vncExtensionInit(INITARGS); -++extern void vncExtensionInit(void); - +#endif - + - /* The following is only a small first step towards run-time --- -2.7.4 - diff --git a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb index 469745f2a7..668ca79ddd 100644 --- a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb +++ b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb @@ -1,37 +1,35 @@ DESCRIPTION = "TigerVNC remote display system" HOMEPAGE = "http://www.tigervnc.com/" -LICENSE = "GPLv2+" +LICENSE = "GPL-2.0-or-later" SECTION = "x11/utils" -DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk" -RDEPENDS_${PN} = "chkconfig coreutils hicolor-icon-theme" +DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk libpam" +RDEPENDS:${PN} = "coreutils hicolor-icon-theme perl bash xkbcomp" LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3" S = "${WORKDIR}/git" -inherit distro_features_check -REQUIRED_DISTRO_FEATURES = "x11" +inherit autotools cmake features_check pkgconfig + +REQUIRED_DISTRO_FEATURES = "x11 pam" -inherit autotools cmake B = "${S}" -SRCREV = "4d6e1b8306a8cca8ad5e15ff8201f6ea24459cfd" +SRCREV = "540bfc3278e396321124d4b18a798ac2bc18b6ca" -SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.8-branch \ - file://0001-tigervnc-remove-includedir.patch \ +SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.11-branch;protocol=https \ file://0002-do-not-build-tests-sub-directory.patch \ file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \ file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \ - file://0005-Remove-INITARGS-from-xserver119.patch.patch \ " # Keep sync with xorg-server in oe-core XORG_PN ?= "xorg-server" -XORG_PV ?= "1.19.3" +XORG_PV ?= "1.20.6" SRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg" -XORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}" -SRC_URI[xorg.md5sum] = "015d2fc4b9f2bfe7a626edb63a62c65e" -SRC_URI[xorg.sha256sum] = "677a8166e03474719238dfe396ce673c4234735464d6dadf2959b600d20e5a98" +XORG_S = "${UNPACKDIR}/${XORG_PN}-${XORG_PV}" +SRC_URI[xorg.md5sum] = "a98170084f2c8fed480d2ff601f8a14b" +SRC_URI[xorg.sha256sum] = "6316146304e6e8a36d5904987ae2917b5d5b195dc9fc63d67f7aca137e5a51d1" # It is the directory containing the Xorg source for the # machine on which you are building TigerVNC. @@ -59,7 +57,7 @@ do_patch_xserver () { xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -) cd ${XSERVER_SOURCE_DIR} - xserverpatch="${S}/unix/xserver119.patch" + xserverpatch="${S}/unix/xserver120.patch" echo "Apply $xserverpatch" patch -p1 -b --suffix .vnc < $xserverpatch } @@ -85,7 +83,9 @@ EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ --disable-xwayland \ " -do_configure_append () { +EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DCMAKE_INSTALL_UNITDIR=${systemd_unitdir}', '-DINSTALL_SYSTEMD_UNITS=OFF', d)}" + +do_configure:append () { olddir=`pwd` cd ${XSERVER_SOURCE_DIR} @@ -106,7 +106,7 @@ do_configure_append () { cd $olddir } -do_compile_append () { +do_compile:append () { olddir=`pwd` cd ${XSERVER_SOURCE_DIR} @@ -115,7 +115,7 @@ do_compile_append () { cd $olddir } -do_install_append() { +do_install:append() { olddir=`pwd` cd ${XSERVER_SOURCE_DIR}/hw/vnc @@ -124,9 +124,10 @@ do_install_append() { cd $olddir } -FILES_${PN} += " \ +FILES:${PN} += " \ ${libdir}/xorg/modules/extensions \ ${datadir}/icons \ + ${systemd_unitdir} \ " -FILES_${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug" +FILES:${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug" diff --git a/meta-oe/recipes-graphics/tslib/tslib_1.15.bb b/meta-oe/recipes-graphics/tslib/tslib_1.15.bb deleted file mode 100644 index e87b411a85..0000000000 --- a/meta-oe/recipes-graphics/tslib/tslib_1.15.bb +++ /dev/null @@ -1,56 +0,0 @@ -SUMMARY = "An abstraction layer for touchscreen panel events" -DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \ -events, as well as a filter stack for the manipulation of those events. \ -Tslib is generally used on embedded devices to provide a common user \ -space interface to touchscreen functionality." -HOMEPAGE = "http://tslib.org/" - -AUTHOR = "Russell King w/ plugins by Chris Larson et. al." -SECTION = "base" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=fc178bcd425090939a8b634d1d6a9594" - -SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \ - file://ts.conf \ - file://tslib.sh \ -" -SRC_URI[md5sum] = "9ff36788c9ab76a10b58422227b9629e" -SRC_URI[sha256sum] = "7ce48807cab655076d71a1ceef3ed0ab8a25df98074981d4a8fd1477ee5f710c" - -UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--enable-shared --disable-h3600 --enable-input --disable-corgi --disable-collie --disable-mk712 --disable-arctic2 --disable-ucb1x00" - -do_install_prepend() { - install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf -} - -do_install_append() { - install -d ${D}${sysconfdir}/profile.d/ - install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/ -} - -# People should consider using udev's /dev/input/touchscreen0 symlink -# instead of detect-stylus -#RDEPENDS_tslib-conf_weird-machine = "detect-stylus" -RPROVIDES_tslib-conf = "libts-0.0-conf" - -PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate tslib-uinput" -DEBIAN_NOAUTONAME_tslib-conf = "1" -DEBIAN_NOAUTONAME_tslib-tests = "1" -DEBIAN_NOAUTONAME_tslib-calibrate = "1" -DEBIAN_NOAUTONAME_tslib-uinput = "1" - -RDEPENDS_${PN} = "tslib-conf" -RRECOMMENDS_${PN} = "pointercal" - -FILES_${PN}-dev += "${libdir}/ts/*.la" -FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib" -FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*" -FILES_tslib-calibrate += "${bindir}/ts_calibrate" -FILES_tslib-uinput += "${bindir}/ts_uinput" - -FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_print_mt \ - ${bindir}/ts_test ${bindir}/ts_test_mt ${bindir}/ts_verify ${bindir}/ts_finddev" diff --git a/meta-oe/recipes-graphics/tslib/tslib_1.22.bb b/meta-oe/recipes-graphics/tslib/tslib_1.22.bb new file mode 100644 index 0000000000..cc7e44eff2 --- /dev/null +++ b/meta-oe/recipes-graphics/tslib/tslib_1.22.bb @@ -0,0 +1,84 @@ +SUMMARY = "An abstraction layer for touchscreen panel events" +DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \ +events, as well as a filter stack for the manipulation of those events. \ +Tslib is generally used on embedded devices to provide a common user \ +space interface to touchscreen functionality." +HOMEPAGE = "http://tslib.org/" + +SECTION = "base" +LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later" +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=fc178bcd425090939a8b634d1d6a9594 \ + file://tests/COPYING;md5=a23a74b3f4caf9616230789d94217acb \ +" + +SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \ + file://ts.conf \ + file://tslib.sh \ + " +SRC_URI[sha256sum] = "aaf0aed410a268d7b51385d07fe4d9d64312038e87c447ec8a24c8db0a15617a" + +UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "debounce dejitter evthres iir linear median pthres skip lowpass invert variance input touchkit waveshare" +PACKAGECONFIG[debounce] = "--enable-debounce,--disable-debounce" +PACKAGECONFIG[dejitter] = "--enable-dejitter,--disable-dejitter" +PACKAGECONFIG[evthres] = "--enable-evthres,--disable-evthres" +PACKAGECONFIG[iir] = "--enable-iir,--disable-iir" +PACKAGECONFIG[linear] = "--enable-linear,--disable-linear" +PACKAGECONFIG[median] = "--enable-median,--disable-median" +PACKAGECONFIG[pthres] = "--enable-pthres,--disable-pthres" +PACKAGECONFIG[skip] = "--enable-skip,--disable-skip" +PACKAGECONFIG[lowpass] = "--enable-lowpass,--disable-lowpass" +PACKAGECONFIG[invert] = "--enable-invert,--disable-invert" +PACKAGECONFIG[variance] = "--enable-variance,--disable-variance" +PACKAGECONFIG[input] = "--enable-input,--disable-input" +PACKAGECONFIG[tatung] = "--enable-tatung,--disable-tatung" +PACKAGECONFIG[touchkit] = "--enable-touchkit,--disable-touchkit" +PACKAGECONFIG[waveshare] = "--enable-waveshare,--disable-waveshare" +PACKAGECONFIG[ucb1x00] = "--enable-ucb1x00,--disable-ucb1x00" +PACKAGECONFIG[mk712] = "--enable-mk712,--disable-mk712" +PACKAGECONFIG[h3600] = "--enable-h3600,--disable-h3600" +PACKAGECONFIG[dmc] = "--enable-dmc,--disable-dmc" +PACKAGECONFIG[linear-h2200] = "--enable-linear-h2200,--disable-linear-h2200" +PACKAGECONFIG[corgi] = "--enable-corgi,--disable-corgi" +PACKAGECONFIG[collie] = "--enable-collie,--disable-collie" +PACKAGECONFIG[arctic2] = "--enable-arctic2,--disable-arctic2" +PACKAGECONFIG[dmc_dus3000] = "--enable-dmc_dus3000,--disable-dmc_dus3000" +PACKAGECONFIG[cy8mrln-palmpre] = "--enable-cy8mrln-palmpre,--disable-cy8mrln-palmpre" +PACKAGECONFIG[galax] = "--enable-galax,--disable-galax" +PACKAGECONFIG[one-wire-ts-input] = "--enable-one-wire-ts-input,--disable-one-wire-ts-input" +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" + +do_install:prepend() { + install -m 0644 ${UNPACKDIR}/ts.conf ${S}/etc/ts.conf +} + +do_install:append() { + install -d ${D}${sysconfdir}/profile.d/ + install -m 0755 ${UNPACKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/ +} + +RPROVIDES:tslib-conf = "libts-0.0-conf" + +PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate tslib-uinput" +DEBIAN_NOAUTONAME:tslib-conf = "1" +DEBIAN_NOAUTONAME:tslib-tests = "1" +DEBIAN_NOAUTONAME:tslib-calibrate = "1" +DEBIAN_NOAUTONAME:tslib-uinput = "1" + +RDEPENDS:${PN} = "tslib-conf" +RRECOMMENDS:${PN} = "pointercal" + +FILES:${PN}-dev += "${libdir}/ts/*.la" +FILES:tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib" +FILES:${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*" +FILES:tslib-calibrate += "${bindir}/ts_calibrate" +FILES:tslib-uinput += "${bindir}/ts_uinput" + +FILES:tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_print_mt \ + ${bindir}/ts_test ${bindir}/ts_test_mt ${bindir}/ts_verify ${bindir}/ts_finddev ${bindir}/ts_conf" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts/44-source-code-pro-fonts-fontconfig.conf b/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts/44-source-code-pro-fonts-fontconfig.conf new file mode 100644 index 0000000000..badb1b0115 --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts/44-source-code-pro-fonts-fontconfig.conf @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> +<fontconfig> + <alias> + <family>monospace</family> + <prefer> + <family>Source Code Pro</family> + </prefer> + </alias> + <alias> + <family>Source Code Pro</family> + <default> + <family>monospace</family> + </default> + </alias> +</fontconfig> + diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb b/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb new file mode 100644 index 0000000000..e7ec004059 --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb @@ -0,0 +1,29 @@ +require ttf.inc + +SUMMARY = "Adobe Source Code Pro" +HOMEPAGE = "https://github.com/adobe-fonts/source-code-pro" +LICENSE = "OFL-1.1" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c7c16bdc2c96af797293d68503e5c65c" + +inherit allarch fontcache + +SRC_URI = " \ + https://github.com/adobe-fonts/source-code-pro/releases/download/2.030R-ro/1.050R-it/source-code-pro-2.030R-ro-1.050R-it.zip \ + file://44-source-code-pro-fonts-fontconfig.conf \ +" +SRC_URI[sha256sum] = "da2ac159497d31b0c6d9daa8fc390fb8252e75b4a9805ace6a2c9cccaed4932e" +S = "${WORKDIR}/source-code-pro-2.030R-ro-1.050R-it" + +do_install() { + install -d ${D}${sysconfdir}/fonts/conf.d/ + install -m 0644 ${UNPACKDIR}/44-source-code-pro-fonts-fontconfig.conf ${D}${sysconfdir}/fonts/conf.d/ + + install -d ${D}${datadir}/fonts/truetype/ + find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \; +} + +FILES:${PN} = " \ + ${sysconfdir}/fonts \ + ${datadir}/fonts \ +" + diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts/44-source-han-sans-cn.conf b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts/44-source-han-sans-cn-fonts.conf index 6855791b43..6855791b43 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts/44-source-han-sans-cn.conf +++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts/44-source-han-sans-cn-fonts.conf diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb deleted file mode 100644 index 9fbfc8b49c..0000000000 --- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb +++ /dev/null @@ -1,34 +0,0 @@ -require ttf.inc - -SUMMARY = "Adobe OpenType Pan-CJK font family for Simplified Chinese" -HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans" -LICENSE = "OFL-1.1" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097" - -inherit allarch fontcache - -# Download tends to break - so - or not? -#EXCLUDE_FROM_WORLD = "1" - -SRC_URI = " \ - https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansCN.zip \ - file://44-source-han-sans-cn.conf \ -" -SRC_URI[md5sum] = "d16abc21f6575bb08894efedbed484a2" -SRC_URI[sha256sum] = "0a0e1d8e52833bc352d454d8242da03b82c0efc41323fb66f7435e5b39734a4f" - -S = "${WORKDIR}/SourceHanSansCN" - -do_install() { - install -d ${D}${sysconfdir}/fonts/conf.d/ - install -m 0644 ${WORKDIR}/44-source-han-sans-cn.conf ${D}${sysconfdir}/fonts/conf.d/ - - install -d ${D}${datadir}/fonts/truetype/ - find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \; -} - -FILES_${PN} = " \ - ${sysconfdir}/fonts \ - ${datadir}/fonts \ -" - diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_2.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_2.004.bb new file mode 100644 index 0000000000..c46952cce0 --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_2.004.bb @@ -0,0 +1,6 @@ +require source-han-sans-fonts.inc + +SUMMARY = "Adobe OpenType Pan-CJK font family for Simplified Chinese" +ZIPNAME = "SourceHanSansCN" + +SRC_URI[sha256sum] = "6841fc13f1c0d255cfeb33d2a2c68d24bbebd94ae2c070347a2b2b200a1db4d6" diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-fonts.inc b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-fonts.inc new file mode 100644 index 0000000000..03ca4c0902 --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-fonts.inc @@ -0,0 +1,26 @@ +require ttf.inc + +HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans" +LICENSE = "OFL-1.1" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=fac3a519e5e9eb96316656e0ca4f2b90" + +inherit allarch fontcache + +SRC_URI = " \ + https://github.com/adobe-fonts/source-han-sans/releases/download/${PV}R/${ZIPNAME}.zip;subdir=${BP};downloadfilename=${BP}.zip \ + file://44-${BPN}.conf \ +" + +do_install() { + install -d ${D}${sysconfdir}/fonts/conf.d/ + install -m 0644 ${UNPACKDIR}/44-${BPN}.conf ${D}${sysconfdir}/fonts/conf.d/ + + install -d ${D}${datadir}/fonts/truetype/ + find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \; +} + +FILES:${PN} = " \ + ${sysconfdir}/fonts \ + ${datadir}/fonts \ +" + diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts/44-source-han-sans-jp.conf b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts/44-source-han-sans-jp-fonts.conf index a7a93feeae..a7a93feeae 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts/44-source-han-sans-jp.conf +++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts/44-source-han-sans-jp-fonts.conf diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb deleted file mode 100644 index 4a26a2f575..0000000000 --- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb +++ /dev/null @@ -1,34 +0,0 @@ -require ttf.inc - -SUMMARY = "Adobe OpenType Pan-CJK font family for Japanese" -HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans" -LICENSE = "OFL-1.1" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097" - -inherit allarch fontcache - -# Download tends to break - so - or not? -#EXCLUDE_FROM_WORLD = "1" - -SRC_URI = " \ - https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansJP.zip \ - file://44-source-han-sans-jp.conf \ -" -SRC_URI[md5sum] = "908fbf97f3df04a6838708c093f1e900" -SRC_URI[sha256sum] = "dc6dbae3fba35f220bac88ba7130b826c7efe1282f472788fae3628b79be3f54" - -S = "${WORKDIR}/SourceHanSansJP" - -do_install() { - install -d ${D}${sysconfdir}/fonts/conf.d/ - install -m 0644 ${WORKDIR}/44-source-han-sans-jp.conf ${D}${sysconfdir}/fonts/conf.d/ - - install -d ${D}${datadir}/fonts/truetype/ - find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \; -} - -FILES_${PN} = " \ - ${sysconfdir}/fonts \ - ${datadir}/fonts \ -" - diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_2.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_2.004.bb new file mode 100644 index 0000000000..40128f97d3 --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_2.004.bb @@ -0,0 +1,6 @@ +require source-han-sans-fonts.inc + +SUMMARY = "Adobe OpenType Pan-CJK font family for Japanese" +ZIPNAME = "SourceHanSansJP" + +SRC_URI[sha256sum] = "1ae9f62ad620d686c4a049ce25cf54e3afd8fefc954a678c644cf9802750c17e" diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts/44-source-han-sans-kr.conf b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts/44-source-han-sans-kr-fonts.conf index dee73ae77f..dee73ae77f 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts/44-source-han-sans-kr.conf +++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts/44-source-han-sans-kr-fonts.conf diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb deleted file mode 100644 index c91d1671fe..0000000000 --- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb +++ /dev/null @@ -1,34 +0,0 @@ -require ttf.inc - -SUMMARY = "Adobe OpenType Pan-CJK font family for Korean" -HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans" -LICENSE = "OFL-1.1" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097" - -inherit allarch fontcache - -# Download tends to break - so - or not? -#EXCLUDE_FROM_WORLD = "1" - -SRC_URI = " \ - https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansKR.zip \ - file://44-source-han-sans-kr.conf \ -" -SRC_URI[md5sum] = "f8d1bd6c87d8575afdb25e2f46bd81d4" -SRC_URI[sha256sum] = "38fd15c80f9980492faaa1af39ff873d8a38e45027023fb17d5b10d4b4b0e6af" - -S = "${WORKDIR}/SourceHanSansKR" - -do_install() { - install -d ${D}${sysconfdir}/fonts/conf.d/ - install -m 0644 ${WORKDIR}/44-source-han-sans-kr.conf ${D}${sysconfdir}/fonts/conf.d/ - - install -d ${D}${datadir}/fonts/truetype/ - find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \; -} - -FILES_${PN} = " \ - ${sysconfdir}/fonts \ - ${datadir}/fonts \ -" - diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_2.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_2.004.bb new file mode 100644 index 0000000000..8b32ab82d2 --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_2.004.bb @@ -0,0 +1,6 @@ +require source-han-sans-fonts.inc + +SUMMARY = "Adobe OpenType Pan-CJK font family for Korean" +ZIPNAME = "SourceHanSansKR" + +SRC_URI[sha256sum] = "02fe28a48c6381c49d61c27a1b173c77f0e6f2b9f2b68e79f076f10a6a8f4bfe" diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts/44-source-han-sans-tw.conf b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts/44-source-han-sans-tw-fonts.conf index ae289401bb..ae289401bb 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts/44-source-han-sans-tw.conf +++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts/44-source-han-sans-tw-fonts.conf diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb deleted file mode 100644 index 728250538d..0000000000 --- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb +++ /dev/null @@ -1,34 +0,0 @@ -require ttf.inc - -SUMMARY = "Adobe OpenType Pan-CJK font family for Traditional Chinese" -HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans" -LICENSE = "OFL-1.1" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097" - -inherit allarch fontcache - -# Download tends to break - so - or not? -#EXCLUDE_FROM_WORLD = "1" - -SRC_URI = " \ - https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansTW.zip \ - file://44-source-han-sans-tw.conf \ -" -SRC_URI[md5sum] = "6533b71b31c19e548768f0fc963202f3" -SRC_URI[sha256sum] = "92ba161921c5cdec5a8f8d5711676f0865b50cee071c25eb4bd4125b5af59fd0" - -S = "${WORKDIR}/SourceHanSansTW" - -do_install() { - install -d ${D}${sysconfdir}/fonts/conf.d/ - install -m 0644 ${WORKDIR}/44-source-han-sans-tw.conf ${D}${sysconfdir}/fonts/conf.d/ - - install -d ${D}${datadir}/fonts/truetype/ - find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \; -} - -FILES_${PN} = " \ - ${sysconfdir}/fonts \ - ${datadir}/fonts \ -" - diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_2.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_2.004.bb new file mode 100644 index 0000000000..b841660efd --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_2.004.bb @@ -0,0 +1,6 @@ +require source-han-sans-fonts.inc + +SUMMARY = "Adobe OpenType Pan-CJK font family for Traditional Chinese" +ZIPNAME = "SourceHanSansTW" + +SRC_URI[sha256sum] = "11d78c8fbc1a4bb04a453cdd65c99db8d41ec5cd6ba6d68c8638e6ba170de806" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_1.500.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_2.100.bb index ce003e922b..bce37a2e05 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_1.500.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_2.100.bb @@ -3,15 +3,13 @@ require ttf.inc SUMMARY = "Ethiopia and Eritrea (Amharic) font - TTF Edition" HOMEPAGE = "http://software.sil.org/abyssinica/" LICENSE = "OFL-1.1" -LIC_FILES_CHKSUM = "file://OFL.txt;md5=1694c7fc245cdc85c9971db707928159" +LIC_FILES_CHKSUM = "file://OFL.txt;md5=fd664aaab50445c3c1c97544554a6bda" SRCNAME = "AbyssinicaSIL" SRC_URI = "http://software.sil.org/downloads/r/abyssinica/${SRCNAME}-${PV}.zip" S = "${WORKDIR}/${SRCNAME}-${PV}" -SRC_URI[md5sum] = "a3d943d18e303197c8d3d92d2de54d1e" -SRC_URI[sha256sum] = "e48a77d5ab8ee0b06464a5b29be70f292aa25dc1e73eb39ec933bd7fa47bbd86" +SRC_URI[sha256sum] = "1a1fc8e82f0c0f2e824f42bff05c1f4a0356330a89dc7ba798c1a20bc3e333e0" FONT_PACKAGES = "${PN}" -FILES_${PN} = "${datadir}" - +FILES:${PN} = "${datadir}" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb index 522f0fb7d7..ea734182de 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb @@ -1,19 +1,17 @@ SUMMARY = "Unicode Mingti (printed) TrueType Font" HOMEPAGE = "http://www.freedesktop.org/wiki/Software/CJKUnifonts" LICENSE = "Arphic-Public-License" -LIC_FILES_CHKSUM = "file://README;md5=62be011094b7865ddc4d1a648444d31a" -SRC_DISTRIBUTE_LICENSES += "${PN}" -RPROVIDES_${PN} = "virtual-chinese-font" -PR = "r6" +LIC_FILES_CHKSUM = "file://license/english/ARPHICPL.TXT;md5=4555ed88e9a72fc9562af379d07c3350" + +RPROVIDES:${PN} = "virtual-chinese-font" FONT_PACKAGES = "${PN}" -SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/t/ttf-arphic-uming/ttf-arphic-uming_0.2.${PV}.1.orig.tar.gz" -S = "${WORKDIR}" +SRC_URI = "https://deb.debian.org/debian/pool/main/f/fonts-arphic-uming/fonts-arphic-uming_0.2.${PV}.2.orig.tar.bz2" +S = "${WORKDIR}/ttf-arphic-uming-0.2.20080216.2" require ttf.inc -FILES_${PN} = "${datadir}" +FILES:${PN} = "${datadir}" -SRC_URI[md5sum] = "d219fcaf953f3eb1889399955a00379f" -SRC_URI[sha256sum] = "8038a6db9e832456d5da5559aff8d15130243be1091bf24f3243503a6f1bda98" +SRC_URI[sha256sum] = "e3c19e04ea7a565b4acff6f1e4248084d2e10752e305bf7dd6c76e80860dc1db" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.37.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.37.bb index f74e5ce6c3..54aeb318a4 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.37.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.37.bb @@ -6,23 +6,24 @@ LICENSE = "BitstreamVera" LIC_FILES_CHKSUM = "file://../LICENSE;md5=449b2c30bfe5fa897fe87b8b70b16cfa" # all subpackages except ${PN}-common itself rdepends on ${PN}-common -RDEPENDS_${PN}-sans = "${PN}-common" -RDEPENDS_${PN}-sans-mono = "${PN}-common" -RDEPENDS_${PN}-sans-condensed = "${PN}-common" -RDEPENDS_${PN}-serif = "${PN}-common" -RDEPENDS_${PN}-serif-condensed = "${PN}-common" -RDEPENDS_${PN}-mathtexgyre = "${PN}-common" -RDEPENDS_${PN}-common = "" -PR = "r7" +RDEPENDS:${PN}-sans = "${PN}-common" +RDEPENDS:${PN}-sans-mono = "${PN}-common" +RDEPENDS:${PN}-sans-condensed = "${PN}-common" +RDEPENDS:${PN}-serif = "${PN}-common" +RDEPENDS:${PN}-serif-condensed = "${PN}-common" +RDEPENDS:${PN}-mathtexgyre = "${PN}-common" +RDEPENDS:${PN}-common = "" SRC_URI = "${SOURCEFORGE_MIRROR}/dejavu/dejavu-fonts-ttf-${PV}.tar.bz2 \ file://30-dejavu-aliases.conf" S = "${WORKDIR}/dejavu-fonts-ttf-${PV}/ttf" -do_install_append () { +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/dejavu/files/dejavu/" + +do_install:append () { install -d ${D}${sysconfdir}/fonts/conf.d/ - install -m 0644 ${WORKDIR}/30-dejavu-aliases.conf ${D}${sysconfdir}/fonts/conf.d/ + install -m 0644 ${UNPACKDIR}/30-dejavu-aliases.conf ${D}${sysconfdir}/fonts/conf.d/ } PACKAGES = "\ @@ -35,13 +36,19 @@ PACKAGES = "\ ${PN}-common" FONT_PACKAGES = "${PN}-sans ${PN}-sans-mono ${PN}-sans-condensed ${PN}-serif ${PN}-serif-condensed ${PN}-mathtexgyre" -FILES_${PN}-sans = "${datadir}/fonts/truetype/DejaVuSans.ttf ${datadir}/fonts/truetype/DejaVuSans-*.ttf" -FILES_${PN}-sans-mono = "${datadir}/fonts/truetype/DejaVuSansMono*.ttf" -FILES_${PN}-sans-condensed = "${datadir}/fonts/truetype/DejaVuSansCondensed*.ttf" -FILES_${PN}-serif = "${datadir}/fonts/truetype/DejaVuSerif.ttf ${datadir}/fonts/truetype/DejaVuSerif-*.ttf" -FILES_${PN}-serif-condensed = "${datadir}/fonts/truetype/DejaVuSerifCondensed*.ttf" -FILES_${PN}-mathtexgyre = "${datadir}/fonts/truetype/DejaVuMathTeXGyre.ttf" -FILES_${PN}-common = "${sysconfdir}" +FILES:${PN}-sans = "${datadir}/fonts/truetype/DejaVuSans.ttf ${datadir}/fonts/truetype/DejaVuSans-*.ttf" +FILES:${PN}-sans-mono = "${datadir}/fonts/truetype/DejaVuSansMono*.ttf" +FILES:${PN}-sans-condensed = "${datadir}/fonts/truetype/DejaVuSansCondensed*.ttf" +FILES:${PN}-serif = "${datadir}/fonts/truetype/DejaVuSerif.ttf ${datadir}/fonts/truetype/DejaVuSerif-*.ttf" +FILES:${PN}-serif-condensed = "${datadir}/fonts/truetype/DejaVuSerifCondensed*.ttf" +FILES:${PN}-mathtexgyre = "${datadir}/fonts/truetype/DejaVuMathTeXGyre.ttf" +FILES:${PN}-common = "${sysconfdir}" SRC_URI[md5sum] = "d0efec10b9f110a32e9b8f796e21782c" SRC_URI[sha256sum] = "fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7" + +BBCLASSEXTEND = "native nativesdk" + +# Allow installation of fonts into recipe-sysroot-native +SYSROOT_DIRS_IGNORE:remove = "${datadir}/fonts" + diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb index e62badf778..cc9213ec5b 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb @@ -5,23 +5,26 @@ HOMEPAGE = "http://www.droidfonts.com/" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://README.txt;md5=83544262a86f1f1ec761e75897df92bc" SRCREV = "21e6e2de1f0062f949fcc52d0b4559dfa3246e0e" -PV = "0.1+gitr${SRCPV}" -PR = "r3" +PV = "0.1+git" -SRC_URI = "git://github.com/android/platform_frameworks_base.git;branch=master" +SRC_URI = "git://github.com/android/platform_frameworks_base.git;branch=master;protocol=https" S = "${WORKDIR}/git/data/fonts" -do_install_prepend() { - rm ${S}/Ahem.ttf MTLc3m.ttf DroidSansArabic.ttf DroidSansThai.ttf Clockopia.ttf MTLmr3m.ttf DroidSansHebrew.ttf DroidSansFallbackLegacy.ttf # we're not packaging it +do_install:append() { + for f in Ahem.ttf MTLc3m.ttf DroidSansArabic.ttf DroidSansThai.ttf \ + Clockopia.ttf MTLmr3m.ttf DroidSansHebrew.ttf \ + DroidSansFallbackLegacy.ttf; do + rm -f ${D}${datadir}/fonts/truetype/$f + done } PACKAGES = "ttf-droid-sans ttf-droid-sans-mono \ ttf-droid-sans-fallback ttf-droid-sans-japanese ttf-droid-serif" FONT_PACKAGES = "ttf-droid-sans ttf-droid-sans-mono ttf-droid-sans-fallback ttf-droid-sans-japanese ttf-droid-serif" -FILES_ttf-droid-sans = "${datadir}/fonts/truetype/DroidSans.ttf ${datadir}/fonts/truetype/DroidSans-Bold.ttf" -FILES_ttf-droid-sans-mono = "${datadir}/fonts/truetype/DroidSansMono.ttf" -FILES_ttf-droid-sans-fallback = "${datadir}/fonts/truetype/DroidSansFallback.ttf" -FILES_ttf-droid-sans-japanese = "${datadir}/fonts/truetype/DroidSansJapanese.ttf" -FILES_ttf-droid-serif = "${datadir}/fonts/truetype/DroidSerif*.ttf" +FILES:ttf-droid-sans = "${datadir}/fonts/truetype/DroidSans.ttf ${datadir}/fonts/truetype/DroidSans-Bold.ttf" +FILES:ttf-droid-sans-mono = "${datadir}/fonts/truetype/DroidSansMono.ttf" +FILES:ttf-droid-sans-fallback = "${datadir}/fonts/truetype/DroidSansFallback.ttf" +FILES:ttf-droid-sans-japanese = "${datadir}/fonts/truetype/DroidSansJapanese.ttf" +FILES:ttf-droid-serif = "${datadir}/fonts/truetype/DroidSerif*.ttf" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb index 6a6258add2..2439766ad5 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb @@ -2,17 +2,16 @@ require ttf.inc SUMMARY = "Gentium fonts - TTF Version" HOMEPAGE = "http://scripts.sil.org/gentium" -LICENSE = "OFL" +LICENSE = "OFL-1.0" LICENSE_URL = "http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=OFL" LIC_FILES_CHKSUM = "file://OFL;md5=33a5bf7b98a9c0ae87430760ba762295 \ " -PR = "r8" -SRC_URI = "${DEBIAN_MIRROR}/main/t/ttf-gentium/ttf-gentium_${PV}.orig.tar.gz " +SRC_URI = "https://archive.debian.org/debian/pool/main/t/ttf-gentium/ttf-gentium_${PV}.orig.tar.gz " S = "${WORKDIR}/ttf-sil-gentium-${PV}" -do_install_append() { +do_install:append() { install -d ${D}${datadir}/doc/ttf-gentium/ install -d ${D}${datadir}/doc/ttf-gentium-alt/ @@ -25,11 +24,11 @@ do_install_append() { PACKAGES = "${PN} ${PN}-alt" FONT_PACKAGES = "${PN} ${PN}-alt" -FILES_${PN}-alt = "${datadir}/fonts/truetype/GenAI*.ttf \ +FILES:${PN}-alt = "${datadir}/fonts/truetype/GenAI*.ttf \ ${datadir}/fonts/truetype/GenAR*.ttf \ ${datadir}/doc/ttf-gentium-alt/*" -FILES_${PN} = "${datadir}/fonts/truetype/GenI*.ttf \ +FILES:${PN} = "${datadir}/fonts/truetype/GenI*.ttf \ ${datadir}/fonts/truetype/GenR*.ttf \ ${datadir}/doc/ttf-gentium/*" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-google-fira.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-google-fira.bb new file mode 100644 index 0000000000..c142f1dd02 --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-google-fira.bb @@ -0,0 +1,62 @@ +SUMMARY = "Google Fira Fonts- TTF Edition" +HOMEPAGE = "https://fonts.google.com/?query=fira" +LICENSE = "OFL-1.1" +LIC_FILES_CHKSUM = " \ + file://${S}/firamono/OFL.txt;md5=0373cf792d4b95c61399b94c02702892 \ + file://${S}/firacode/OFL.txt;md5=c75ca55aa0a5809a854d87db2a8ebf23 \ + file://${S}/firasans/OFL.txt;md5=de28deb2f8c1f23fd4d6918113ac3ddd \ + file://${S}/firasanscondensed/OFL.txt;md5=de28deb2f8c1f23fd4d6918113ac3ddd \ + file://${S}/firasansextracondensed/OFL.txt;md5=de28deb2f8c1f23fd4d6918113ac3ddd \ +" + +SRCREV_FORMAT = "firamono_firacode_firasans_firasanscondensed_firasansextracondensed" + +SRCREV_firamono = "701bd391b1a4b3238de193a8523009ecef1be42c" +SRCREV_firacode = "701bd391b1a4b3238de193a8523009ecef1be42c" +SRCREV_firasans = "701bd391b1a4b3238de193a8523009ecef1be42c" +SRCREV_firasanscondensed = "701bd391b1a4b3238de193a8523009ecef1be42c" +SRCREV_firasansextracondensed = "701bd391b1a4b3238de193a8523009ecef1be42c" + +SRC_URI = "git://github.com/google/fonts.git;protocol=https;branch=main;subpath=ofl/firamono;name=firamono \ + git://github.com/google/fonts.git;protocol=https;branch=main;subpath=ofl/firacode;name=firacode \ + git://github.com/google/fonts.git;protocol=https;branch=main;subpath=ofl/firasans;name=firasans \ + git://github.com/google/fonts.git;protocol=https;branch=main;subpath=ofl/firasanscondensed;name=firasanscondensed \ + git://github.com/google/fonts.git;protocol=https;branch=main;subpath=ofl/firasansextracondensed;name=firasansextracondensed" + +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" + +do_install:append() { + install -d ${D}${datadir}/fonts/truetype/ + find ${S} -path 'fira*/*.tt[cf]' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/{} \; + install -D -m 0644 ${S}/firamono/OFL.txt ${D}${datadir}/licenses/${PN}mono/OFL.txt + install -D -m 0644 ${S}/firacode/OFL.txt ${D}${datadir}/licenses/${PN}code/OFL.txt + install -D -m 0644 ${S}/firasans/OFL.txt ${D}${datadir}/licenses/${PN}sans/OFL.txt + install -D -m 0644 ${S}/firasanscondensed/OFL.txt ${D}${datadir}/licenses/${PN}sanscondensed/OFL.txt + install -D -m 0644 ${S}/firasansextracondensed/OFL.txt ${D}${datadir}/licenses/${PN}sansextracondensed/OFL.txt +} + +PACKAGES =+ "${PN}-mono ${PN}-code ${PN}-sans ${PN}-sanscondensed ${PN}-sansextracondensed" + +FILES:${PN}-mono += " \ + ${datadir}/fonts/truetype/FiraMono* \ + ${datadir}/licenses/${PN}mono/OFL.txt \ + " +FILES:${PN}-code += " \ + ${datadir}/fonts/truetype/FiraCode* \ + ${datadir}/licenses/${PN}code/OFL.txt \ + " +FILES:${PN}-sans += " \ + ${datadir}/fonts/truetype/FiraSans-* \ + ${datadir}/licenses/${PN}sans/OFL.txt \ + " +FILES:${PN}-sanscondensed += " \ + ${datadir}/fonts/truetype/FiraSansCondensed-* \ + ${datadir}/licenses/${PN}sanscondensed/OFL.txt \ + " +FILES:${PN}-sansextracondensed += " \ + ${datadir}/fonts/truetype/FiraSansExtraCondensed-* \ + ${datadir}/licenses/${PN}sansextracondensed/OFL.txt \ + " + +require ttf.inc diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb deleted file mode 100644 index 5cd9935d66..0000000000 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb +++ /dev/null @@ -1,20 +0,0 @@ -require ttf.inc - -SUMMARY = "Hunky fonts - TTF Version" -HOMEPAGE = "http://sourceforge.net/projects/hunkyfonts" -LICENSE = "LGPL" -LIC_FILES_CHKSUM = "file://../LICENSE;md5=7fbc338309ac38fefcd64b04bb903e34" -PR = "r7" - -SRC_URI = "${SOURCEFORGE_MIRROR}/hunkyfonts/hunkyfonts-${PV}.tar.bz2" - -S = "${WORKDIR}/hunkyfonts-${PV}/TTF/" - -PACKAGES = "ttf-hunky-sans ttf-hunky-serif" -FONT_PACKAGES = "ttf-hunky-sans ttf-hunky-serif" - -FILES_ttf-hunky-sans = "${datadir}/fonts/truetype/HunkySans*.ttf" -FILES_ttf-hunky-serif = "${datadir}/fonts/truetype/HunkySerif*.ttf" - -SRC_URI[md5sum] = "36444795a356fb8a56c63b2840729bab" -SRC_URI[sha256sum] = "e0b1849c545b6af276407d93025c73094dd74fc259b07c1d91594fdbb9a0b829" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb new file mode 100644 index 0000000000..8a75fe38bd --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb @@ -0,0 +1,19 @@ +require ttf.inc + +SUMMARY = "Hunky fonts - TTF Version" +HOMEPAGE = "http://sourceforge.net/projects/hunkyfonts" +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://../COPYRIGHT.TXT;md5=70d34478e38b1ad9995079f9921f9ef7" + +SRC_URI = "${SOURCEFORGE_MIRROR}/hunkyfonts/hunkyfonts-${PV}.tar.bz2" + +S = "${WORKDIR}/hunkyfonts-${PV}/TTF" + +PACKAGES = "ttf-hunky-sans ttf-hunky-serif" +FONT_PACKAGES = "ttf-hunky-sans ttf-hunky-serif" + +FILES:ttf-hunky-sans = "${datadir}/fonts/truetype/HunkySans*.ttf" +FILES:ttf-hunky-serif = "${datadir}/fonts/truetype/HunkySerif*.ttf" + +SRC_URI[md5sum] = "b933312967842e5737b5415fa22d682a" +SRC_URI[sha256sum] = "3fc528737ccd12ec3c09c4a91447d241d3c5bceeeb4d24b7f2c29b15c9735328" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb index 20041bb7b3..5a8fe4c320 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb @@ -3,23 +3,23 @@ require ttf.inc SUMMARY = "Inconsolata font - TTF Version" HOMEPAGE = "http://www.levien.com/type/myfonts/inconsolata.html" LICENSE = "OFL-1.1" -LIC_FILES_CHKSUM = "file://../OFL.txt;md5=969851e3a70122069a4d9ee61dd5a2ed" +LIC_FILES_CHKSUM = "file://${UNPACKDIR}/OFL.txt;md5=969851e3a70122069a4d9ee61dd5a2ed" SRC_URI = "http://levien.com/type/myfonts/Inconsolata.otf \ file://OFL.txt" -S = "${WORKDIR}/ttf-inconsolata-${PV}" +S = "${UNPACKDIR}/ttf-inconsolata-${PV}" -FILES_${PN} = "${datadir}/fonts/truetype/Inconsolata.ttf \ +FILES:${PN} = "${datadir}/fonts/truetype/Inconsolata.ttf \ ${datadir}/doc/ttf-inconsolata/*" do_configure() { - mv ${WORKDIR}/Inconsolata.otf ${S}/Inconsolata.ttf + cp -fr ${UNPACKDIR}/Inconsolata.otf ${S}/Inconsolata.ttf } -do_install_append() { +do_install:append() { install -d ${D}${datadir}/doc/ttf-inconsolata/ - install -m 0644 ${WORKDIR}/OFL.txt ${D}${datadir}/doc/ttf-inconsolata/ + install -m 0644 ${UNPACKDIR}/OFL.txt ${D}${datadir}/doc/ttf-inconsolata/ } SRC_URI[md5sum] = "0fbe014c1f0fb5e3c71140ff0dc63edf" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-ipa_003.03.01.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-ipa_003.03.01.bb new file mode 100644 index 0000000000..89c48d5fe2 --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-ipa_003.03.01.bb @@ -0,0 +1,21 @@ +require ttf.inc + +SUMMARY = "Ipa fonts - TTF Version" +HOMEPAGE = "https://moji.or.jp/ipafont" +LICENSE = "IPA" +LICENSE_URL = "https://moji.or.jp/ipafont/license/" +LIC_FILES_CHKSUM = "file://IPA_Font_License_Agreement_v1.0.txt;md5=6cd3351ba979cf9db1fad644e8221276 \ +" +SRC_URI = "https://moji.or.jp/wp-content/ipafont/IPAfont/IPAfont00303.zip " + +SRC_URI[sha256sum] = "f755ed79a4b8e715bed2f05a189172138aedf93db0f465b4e20c344a02766fe5" + +S = "${WORKDIR}/IPAfont00303" + +PACKAGES = "ttf-ipag ttf-ipagp ttf-ipam ttf-ipamp" +FONT_PACKAGES = "ttf-ipag ttf-ipagp ttf-ipam ttf-ipamp" + +FILES:ttf-ipag = "${datadir}/fonts/truetype/ipag.ttf" +FILES:ttf-ipagp = "${datadir}/fonts/truetype/ipagp.ttf" +FILES:ttf-ipam = "${datadir}/fonts/truetype/ipam.ttf" +FILES:ttf-ipamp = "${datadir}/fonts/truetype/ipamp.ttf" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb index 5b406bc653..a0fb7b6a79 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb @@ -6,7 +6,7 @@ created by Ascender(c) which aims at metric compatibility with \ Arial, Times New Roman, Courier New." HOMEPAGE = "https://fedorahosted.org/liberation-fonts/" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" SRC_URI = "https://releases.pagure.org/liberation-fonts/liberation-fonts-ttf-${PV}.tar.gz \ @@ -18,15 +18,17 @@ SRC_URI[sha256sum] = "61a7e2b6742a43c73e8762cdfeaf6dfcf9abdd2cfa0b099a9854d69bc4 S = "${WORKDIR}/liberation-fonts-ttf-${PV}" -do_install_append () { +do_install:append () { install -d ${D}${datadir}/fonts/TTF/ install -d ${D}${sysconfdir}/fonts/conf.d/ install -m 0644 LiberationSansNarrow*.ttf ${D}${datadir}/fonts/TTF/ - install -D -m 0644 ${WORKDIR}/30-0-liberation-sans-narrow.conf ${D}${sysconfdir}/conf.avail/30-${PN}-sans.conf + install -D -m 0644 ${UNPACKDIR}/30-0-liberation-sans-narrow.conf ${D}${sysconfdir}/conf.avail/30-${PN}-sans.conf install -D -m 0644 ${S}/License.txt ${D}${datadir}/licenses/${PN}/LICENSE + # normal liberation fonts come from ttf-liberation recipe so delete here + rm -rf ${D}${datadir}/fonts/truetype } PACKAGES = "${PN}" FONT_PACKAGES = "${PN}" -FILES_${PN} = "${datadir}/fonts ${sysconfdir} ${datadir}/licenses" +FILES:${PN} = "${datadir}/fonts ${sysconfdir} ${datadir}/licenses" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb index 7204c926ae..6d7ba11e73 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb @@ -2,12 +2,11 @@ require ttf.inc SUMMARY = "Liberation fonts - TTF Version" HOMEPAGE = "https://www.redhat.com/promo/fonts/" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ file://License.txt;md5=5b171c5100029d884fcea21d9a2b7543 \ " -PR = "r7" SRC_URI = "http://fedorahosted.org/liberation-fonts/export/807b6dfd069b998cd9b4d3158da98817ef23c79d/F-9/liberation-fonts-ttf-3.tar.gz" S = "${WORKDIR}/liberation-fonts-${PV}" @@ -15,9 +14,9 @@ S = "${WORKDIR}/liberation-fonts-${PV}" PACKAGES = "ttf-liberation-mono ttf-liberation-sans ttf-liberation-serif" FONT_PACKAGES = "ttf-liberation-mono ttf-liberation-sans ttf-liberation-serif" -FILES_ttf-liberation-mono = "${datadir}/fonts/truetype/*Mono*" -FILES_ttf-liberation-sans = "${datadir}/fonts/truetype/*Sans*" -FILES_ttf-liberation-serif = "${datadir}/fonts/truetype/*Serif*" +FILES:ttf-liberation-mono = "${datadir}/fonts/truetype/*Mono*" +FILES:ttf-liberation-sans = "${datadir}/fonts/truetype/*Sans*" +FILES:ttf-liberation-serif = "${datadir}/fonts/truetype/*Serif*" SRC_URI[md5sum] = "77728078a17e39f7c242b42c3bf6feb8" SRC_URI[sha256sum] = "174cf27c57612971434ec8cc4a52bfd37bad8408e9b9219539c6d5113df6ff8f" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-lklug_0.6-14.20090803cvs.fc24.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-lklug_0.6-14.20090803cvs.fc24.bb index 2ef6c57e18..65d0f0bb35 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-lklug_0.6-14.20090803cvs.fc24.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-lklug_0.6-14.20090803cvs.fc24.bb @@ -2,18 +2,18 @@ require ttf.inc SUMMARY = "Fonts for Sinhala language - TTF Edition" HOMEPAGE = "http://rpms.famillecollet.com/rpmphp/zoom.php?rpm=lklug-fonts" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -SRC_URI = "http://dl.fedoraproject.org/pub/fedora/linux/releases/24/Everything/source/tree/Packages/l/lklug-fonts-0.6-14.20090803cvs.fc24.src.rpm;extract=lklug-20090803.tar.gz" -SRC_URI[md5sum] = "3341dfb997043d234ab3f6e5a965e759" -SRC_URI[sha256sum] = "f54c1f3b4df08995982657fed290b562556191fee2a0386afd9e8bf228f72b1a" +SRC_URI = "https://src.fedoraproject.org/repo/pkgs/lklug-fonts/lklug-20090803.tar.gz/b6e0daaf8cf41208fd2a7bc04fb23f84/lklug-20090803.tar.gz" +SRC_URI[sha256sum] = "de5750f7048973f851961050f76b8b58e9bda400d5007c3078d9317fbe2ff5fd" DEPENDS = "fontforge-native" -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" FONT_PACKAGES = "${PN}" -FILES_${PN} = "${datadir}" +FILES:${PN} = "${datadir}" do_compile() { fontforge ${S}/convert.ff lklug diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.92.1.bb index f9679d606e..8340cccbb4 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.92.1.bb @@ -7,15 +7,15 @@ HOMEPAGE = "https://fedorahosted.org/lohit" LICENSE = "OFL-1.1" LIC_FILES_CHKSUM = "file://OFL.txt;md5=7dfa0a236dc535ad2d2548e6170c4402" -SRCREV = "d678f1b1807ea5602586279e90b5db6d62ed475e" -SRC_URI = "git://github.com/pravins/lohit.git;branch=master" +SRCREV = "a403c9b7f509dad5e58dde85ef63b1c36fde3a21" +SRC_URI = "git://github.com/pravins/lohit.git;branch=master;protocol=https" DEPENDS = "fontforge-native" S = "${WORKDIR}/git" FONT_PACKAGES = "${PN}" -FILES_${PN} = "${datadir}" +FILES:${PN} = "${datadir}" -inherit pythonnative +inherit python3native do_compile() { cd ${S}; make ttf; diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb index 9ad348d9fa..a3babe90a5 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb @@ -2,20 +2,18 @@ require ttf.inc SUMMARY = "MPlus font - TTF Edition" HOMEPAGE = "http://dejavu.sourceforge.net/wiki/" -LICENSE = "${PN}" +LICENSE = "${BPN}" LIC_FILES_CHKSUM = "file://LICENSE_E;md5=ac161e96eda00db9a3aec7870b5d9658 \ file://LICENSE_J;md5=a120ca8d7c8e4a475d5277c9aeb95221 \ " -PR = "r4" - -SRC_URI = "http://osdn.dl.sourceforge.jp/mplus-fonts/6650/mplus-TESTFLIGHT-${PV}.tar.gz" +SRC_URI = "http://downloads.sourceforge.jp/mplus-fonts/6650/mplus-TESTFLIGHT-${PV}.tar.gz" S = "${WORKDIR}/mplus-TESTFLIGHT-${PV}" -PACKAGESPLITFUNCS_prepend = "split_ttf_mplus_packages " +PACKAGESPLITFUNCS:prepend = "split_ttf_mplus_packages " python split_ttf_mplus_packages() { plugindir = d.expand('${datadir}/fonts/ttf-mplus/') - packages = do_split_packages(d, plugindir, '^(.*)\.ttf$', 'ttf-%s', 'TTF Font %s') + packages = do_split_packages(d, plugindir, r'^(.*)\.ttf$', 'ttf-%s', 'TTF Font %s') d.setVar('FONT_PACKAGES', ' '.join(packages)) } diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20200916.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20200916.bb new file mode 100644 index 0000000000..9d6a9a6c2e --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20200916.bb @@ -0,0 +1,19 @@ +require ttf.inc + +SUMMARY = "Google noto emoji font pack" +HOMEPAGE = "https://github.com/googlefonts/noto-emoji" +LICENSE = "OFL-1.1" +LIC_FILES_CHKSUM = "file://fonts/LICENSE;md5=55719faa0112708e946b820b24b14097" + +SRC_URI = "git://github.com/googlefonts/noto-emoji;branch=main;protocol=https" +SRCREV = "aac7ccaa4d1dea4543453b96f7d6fc47066a57ff" + +PACKAGES = "${PN}-color ${PN}-regular" +FONT_PACKAGES = "${PN}-color ${PN}-regular" + +S = "${WORKDIR}/git" + +FILES:${PN}-color = "${datadir}/fonts/truetype/NotoColorEmoji.ttf" +FILES:${PN}-regular = "${datadir}/fonts/truetype/NotoEmoji-Regular.ttf" + +do_compile[noexec] = "1" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb index ac60a365f0..fce76418f9 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb @@ -5,7 +5,7 @@ HOMEPAGE = "http://www.paratype.com/public/" SECTION = "x11/fonts" LICENSE = "ParaTypeFFL-1.3" -LIC_FILES_CHKSUM = "file://../PT%20Free%20Font%20License_eng.txt;md5=d720f3a281ed81c3f4cfc465e11b1d0d" +LIC_FILES_CHKSUM = "file://${UNPACKDIR}/PT%20Free%20Font%20License_eng.txt;md5=d720f3a281ed81c3f4cfc465e11b1d0d" inherit allarch fontcache @@ -16,17 +16,18 @@ SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/paratype-pt-sans-fonts/PTSans SRC_URI[md5sum] = "c3f5a0e20a75cf628387510a720924a7" SRC_URI[sha256sum] = "0164f824e03c32c99e8a225853ec168893a04a09ade132e93a674e85ae033b2e" +S = "${UNPACKDIR}" + do_install () { install -d ${D}${datadir}/fonts/X11/TTF/ - cd .. for i in *.ttf; do install -m 0644 $i ${D}${prefix}/share/fonts/X11/TTF/${i} done } -FILES_${PN} += "${datadir}" +FILES:${PN} += "${datadir}" -pkg_postinst_${PN} () { +pkg_postinst:${PN} () { set -x for fontdir in `find $D/usr/lib/X11/fonts -type d`; do mkfontdir $fontdir diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb new file mode 100644 index 0000000000..3752ec39bc --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb @@ -0,0 +1,15 @@ +require ttf.inc + +SUMMARY = "Roboto fonts" +HOMEPAGE = "https://fonts.google.com/specimen/Roboto" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +SRC_URI = "https://github.com/google/roboto/releases/download/v${PV}/roboto-android.zip" +SRC_URI[md5sum] = "3b43a5cb33196ec25e44d5fcb40219e1" +SRC_URI[sha256sum] = "c825453253f590cfe62557733e7173f9a421fff103b00f57d33c4ad28ae53baf" + +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" + +FILES:${PN} = "${datadir}/fonts/truetype/*.ttf" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb index efdcec8404..a4ad91fc77 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb @@ -1,15 +1,13 @@ require ttf.inc SUMMARY = "Sazanami Gothic/Mincho Japanese TrueType fonts" -SUMMARY_ttf-sazanami-gothic = "Sazanami Gothic Japanese TrueType font" -SUMMARY_ttf-sazanami-mincho = "Sazanami Mincho Japanese TrueType font" -AUTHOR = "Electronic Font Open Laboratory (/efont/)" +SUMMARY:ttf-sazanami-gothic = "Sazanami Gothic Japanese TrueType font" +SUMMARY:ttf-sazanami-mincho = "Sazanami Mincho Japanese TrueType font" HOMEPAGE = "http://sourceforge.jp/projects/efont/" LICENSE = "PD" LIC_FILES_CHKSUM = "file://README;md5=97d739900be6e852830f55aa3c07d4a0" -SRC_DISTRIBUTE_LICENSES += "${PN}" -RPROVIDES_${PN} = "virtual-japanese-font" -PR = "r9" + +RPROVIDES:${PN} = "virtual-japanese-font" SRC_URI = "http://osdn.dl.sourceforge.jp/efont/10087/sazanami-20040629.tar.bz2" S = "${WORKDIR}/sazanami-20040629" @@ -17,12 +15,12 @@ S = "${WORKDIR}/sazanami-20040629" PACKAGES = "ttf-sazanami-gothic ttf-sazanami-mincho" FONT_PACKAGES = "ttf-sazanami-gothic ttf-sazanami-mincho" -FILES_ttf-sazanami-gothic = "${datadir}/fonts/truetype/sazanami-gothic.ttf \ +FILES:ttf-sazanami-gothic = "${datadir}/fonts/truetype/sazanami-gothic.ttf \ ${datadir}/doc/ttf-sazanami-gothic/README" -FILES_ttf-sazanami-mincho = "${datadir}/fonts/truetype/sazanami-mincho.ttf \ +FILES:ttf-sazanami-mincho = "${datadir}/fonts/truetype/sazanami-mincho.ttf \ ${datadir}/doc/ttf-sazanami-mincho/README" -do_install_append() { +do_install:append() { # README contains the redistribution license install -d ${D}${datadir}/doc/ install -d ${D}${datadir}/doc/ttf-sazanami-gothic diff --git a/meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-takao_003.03.01.bb index d99ff144be..be0e544ccc 100644 --- a/meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-takao_003.03.01.bb @@ -1,3 +1,5 @@ +require ttf.inc + SUMMARY = "Takao Fonts are a community developed derivatives of IPA Fonts." DESCRIPTION = "Takao Fonts are a community developed derivatives of IPA Fonts." @@ -6,14 +8,18 @@ SECTION = "User Interface/X" LICENSE = "IPA" LIC_FILES_CHKSUM = "file://IPA_Font_License_Agreement_v1.0.txt;md5=6cd3351ba979cf9db1fad644e8221276" + SRC_URI = "https://launchpad.net/${BPN}/trunk/15.03/+download/TakaoFonts_00303.01.tar.xz" -SRC_URI[md5sum] = "8cd3fe724faa5034a9369e98cf108d2d" SRC_URI[sha256sum] = "e9871f72ac69acb3e277aebbee7ca01fbebf54800733e29fafdc46133fc3552f" S = "${WORKDIR}/TakaoFonts_00303.01" -do_install() { - install -m 0755 -d ${D}/${datadir}/fonts - install -m 0644 -p ${S}/*.ttf ${D}/${datadir}/fonts/ -} -FILES_${PN} += "${datadir}/fonts/*.ttf" +PACKAGES = "ttf-takao-pgothic ttf-takao-gothic ttf-takao-pmincho ttf-takao-mincho" +FONT_PACKAGES = "ttf-takao-pgothic ttf-takao-gothic ttf-takao-pmincho ttf-takao-mincho" + +FILES:ttf-takao-pgothic = "${datadir}/fonts/truetype/TakaoPGothic.ttf" +FILES:ttf-takao-gothic = "${datadir}/fonts/truetype/TakaoGothic.ttf" +FILES:ttf-takao-pmincho = "${datadir}/fonts/truetype/TakaoPMincho.ttf" +FILES:ttf-takao-mincho = "${datadir}/fonts/truetype/TakaoMincho.ttf" + +FILES:${PN} += "${datadir}/fonts/*.ttf" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb index 06a3fe5338..0131a62eef 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb @@ -1,10 +1,9 @@ require ttf.inc SUMMARY = "Thai Linux Working Group Fonts" -AUTHOR = "Thai Linux Working Group" HOMEPAGE = "http://linux.thai.net/projects/fonts-tlwg" -LICENSE = "GPLv2 & TLWG" -LIC_FILES_CHKSUM = "file://../fonts-tlwg-${PV}/COPYING;md5=3d20cd7eadf4afd5460c0adb32e387fd" +LICENSE = "GPL-2.0-only & TLWG" +LIC_FILES_CHKSUM = "file://${UNPACKDIR}/fonts-tlwg-${PV}/COPYING;md5=3d20cd7eadf4afd5460c0adb32e387fd" SRC_URI = "http://linux.thai.net/pub/ThaiLinux/software/fonts-tlwg/fonts-tlwg-${PV}.tar.xz;name=source \ http://linux.thai.net/pub/ThaiLinux/software/ttf-tlwg/ttf-tlwg-${PV}.tar.xz;name=ttf" @@ -13,7 +12,7 @@ SRC_URI[source.sha256sum] = "77fb9832221fde60c9f683ac3fdce7d45ab6e9c0d83df83da96 SRC_URI[ttf.md5sum] = "1bc51f45a7b661404a944fab6911261c" SRC_URI[ttf.sha256sum] = "aa9cd68969b6f704df3e5b1a2e11204c47f118c8ab052f04c111bd5f299f77c8" -do_install_append () { +do_install:append () { install -d ${D}${sysconfdir}/fonts/conf.d for x in ${S}/etc/fonts/conf.avail/*.conf; do @@ -24,4 +23,4 @@ do_install_append () { PACKAGES = "${PN}" FONT_PACKAGES = "${PN}" -FILES_${PN} = "${datadir}/fonts ${sysconfdir}" +FILES:${PN} = "${datadir}/fonts ${sysconfdir}" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb deleted file mode 100644 index d5d1b9a177..0000000000 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb +++ /dev/null @@ -1,20 +0,0 @@ -require ttf.inc - -SUMMARY = "Ubuntu Font Family - TTF Version" -HOMEPAGE = "http://font.ubuntu.com" -LICENSE = "UFL" -LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=325a1a9029112a2405e743c7f816427b" -PR = "r1" - -SRC_URI = "http://font.ubuntu.com/download/ubuntu-font-family-${PV}.zip" - -SRC_URI[md5sum] = "a1fc70f5a5b1d096ab8310886cddaa1c" -SRC_URI[sha256sum] = "107170099bbc3beae8602b97a5c423525d363106c3c24f787d43e09811298e4c" - -S = "${WORKDIR}/ubuntu-font-family-${PV}" - -PACKAGES = "ttf-ubuntu-mono ttf-ubuntu-sans" -FONT_PACKAGES = "ttf-ubuntu-mono ttf-ubuntu-sans" - -FILES_ttf-ubuntu-mono = "${datadir}/fonts/truetype/*Mono*" -FILES_ttf-ubuntu-sans = "${datadir}/fonts/truetype/Ubuntu-*" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb new file mode 100644 index 0000000000..d118769cc8 --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb @@ -0,0 +1,22 @@ +require ttf.inc + +SUMMARY = "Ubuntu Font Family - TTF Version" +HOMEPAGE = "http://font.ubuntu.com" +LICENSE = "UFL" +LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=325a1a9029112a2405e743c7f816427b" + +SHA1SUM = "0cef8205" + +SRC_URI = "https://assets.ubuntu.com/v1/${SHA1SUM}-ubuntu-font-family-${PV}.zip" + + +SRC_URI[md5sum] = "c5a5059d6856b4ddf79d824dcaf5ad32" +SRC_URI[sha256sum] = "61a2b342526fd552f19fef438bb9211a8212de19ad96e32a1209c039f1d68ecf" + +S = "${WORKDIR}/ubuntu-font-family-${PV}" + +PACKAGES = "ttf-ubuntu-mono ttf-ubuntu-sans" +FONT_PACKAGES = "ttf-ubuntu-mono ttf-ubuntu-sans" + +FILES:ttf-ubuntu-mono = "${datadir}/fonts/truetype/*Mono*" +FILES:ttf-ubuntu-sans = "${datadir}/fonts/truetype/Ubuntu-*" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20141206.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb index 62f2bb2805..4cc5afd4a7 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20141206.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb @@ -1,22 +1,20 @@ require ttf.inc SUMMARY = "Japanese TrueType fonts from Vine Linux" -AUTHOR = "Contributor: noonov <noonov@gmail.com>" HOMEPAGE = "http://vlgothic.dicey.org/" -LICENSE = "mplus & BSD" -LIC_FILES_CHKSUM = "file://LICENSE.en;md5=66ecd0fd7e4da6246fa30317c7b66755 \ +LICENSE = "ttf-mplus & BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.en;md5=cc06b20e7a20bdf6c989624405378303 \ file://LICENSE_E.mplus;md5=1c4767416f20215f1e61b970f2117db9 \ " SRC_URI = "https://osdn.jp/dl/vlgothic/VLGothic-${PV}.tar.xz" -SRC_URI[md5sum] = "bb7fadb2dff09a4fb6a11dc9dfdc0c36" -SRC_URI[sha256sum] = "982040db2f9cb73d7c6ab7d9d163f2ed46d1180f330c9ba2fae303649bf8102d" +SRC_URI[sha256sum] = "297a3813675fbea12c5813b55a78091c9a5946515ecbf9fde8b8102e01c579f4" S = "${WORKDIR}/VLGothic" -do_install_append () { +do_install:append () { install -D -m644 ${S}/LICENSE_E.mplus ${D}${datadir}/licenses/${PN}/COPYING_MPLUS.txt install -D -m644 ${S}/README.sazanami ${D}${datadir}/licenses/${PN}/COPYING_SAZANAMI.txt install -D -m644 ${S}/LICENSE.en ${D}${datadir}/licenses/${PN}/COPYING_VLGOTHIC.txt @@ -25,4 +23,4 @@ do_install_append () { PACKAGES = "${PN}" FONT_PACKAGES = "${PN}" -FILES_${PN} = "${datadir}/fonts/truetype ${datadir}/licenses" +FILES:${PN} = "${datadir}/fonts/truetype ${datadir}/licenses" diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb index 1207a61b84..21897a7589 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb @@ -1,9 +1,8 @@ require ttf.inc SUMMARY = "WenQuanYi Zen Hei - A Hei-Ti Style Chinese font" -AUTHOR = "Qianqian Fang and The WenQuanYi Project Contributors" HOMEPAGE = "http://wenq.org/" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=cf540fc7d35b5777e36051280b3a911c" SRC_URI = "${SOURCEFORGE_MIRROR}/wqy/wqy-zenhei-${PV}.tar.gz" @@ -12,7 +11,7 @@ SRC_URI[sha256sum] = "e4b7e306475bf9427d1757578f0e4528930c84c44eaa3f167d4c42f110 S = "${WORKDIR}/wqy-zenhei" -do_install_append () { +do_install:append () { sed -i -e '/<string>[^W]/d' ${S}/44-wqy-zenhei.conf install -d ${D}${sysconfdir}/fonts/conf.d @@ -24,4 +23,4 @@ do_install_append () { PACKAGES = "${PN}" FONT_PACKAGES = "${PN}" -FILES_${PN} = "${datadir}/fonts ${sysconfdir}" +FILES:${PN} = "${datadir}/fonts ${sysconfdir}" diff --git a/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes/0001-build-use-autotools.patch b/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes/0001-build-use-autotools.patch new file mode 100644 index 0000000000..0c9fe62b1f --- /dev/null +++ b/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes/0001-build-use-autotools.patch @@ -0,0 +1,238 @@ +From 2a5cf5021b56bc92c9953d2c82e8c90502d22c97 Mon Sep 17 00:00:00 2001 +From: Bartosz Golaszewski <bgolaszewski@baylibre.com> +Date: Fri, 13 Sep 2019 10:20:53 +0200 +Subject: [PATCH] build: use autotools + +This removes the hand-crafted Makefile in favor of standardized autotools +build configuration. This is done to allow for easy cross-compilation of +this project. + +Upstream-Status: Submitted + +Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> +--- + .gitignore | 17 ++++++++++++ + Makefile | 66 --------------------------------------------- + Makefile.am | 10 +++++++ + configure.ac | 36 +++++++++++++++++++++++++ + include/Makefile.am | 9 +++++++ + man/Makefile.am | 7 +++++ + obj/.gitkeep | 0 + src/Makefile.am | 13 +++++++++ + 8 files changed, 92 insertions(+), 66 deletions(-) + delete mode 100644 Makefile + create mode 100644 Makefile.am + create mode 100644 configure.ac + create mode 100644 include/Makefile.am + create mode 100644 man/Makefile.am + delete mode 100644 obj/.gitkeep + create mode 100644 src/Makefile.am + +diff --git a/.gitignore b/.gitignore +index af88e94..4e7355a 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -3,3 +3,20 @@ obj/*.o + man/*.1 + man/*.xml + test/GLOB* ++*.o ++ ++# autotools stuff ++.deps/ ++Makefile ++Makefile.in ++aclocal.m4 ++autom4te.cache/ ++autostuff/ ++config.h ++config.h.in ++config.h.in~ ++config.log ++config.status ++configure ++m4/ ++stamp-h1 +diff --git a/Makefile b/Makefile +deleted file mode 100644 +index 6264da0..0000000 +--- a/Makefile ++++ /dev/null +@@ -1,66 +0,0 @@ +-TARGET = unclutter +-VERSION = 1.6 +-SDIR = src +-IDIR = include +-ODIR = obj +- +-INSTALL = install +-PREFIX = /usr +- +-BINDIR = $(PREFIX)/bin +-MANDIR = $(PREFIX)/share/man/man1 +-LICENSEDIR = $(PREFIX)/share/licenses/$(TARGET) +- +-CC = gcc +-LD = $(CC) +-PKG_CONFIG = pkg-config +- +-CPPFLAGS += -D'__VERSION="${VERSION}"' "-I$(IDIR)" +- +-CFLAGS += -std=gnu99 +-CFLAGS += -Wall -Wundef -Wshadow -Wformat-security +- +-LDFLAGS += $(shell $(PKG_CONFIG) --libs x11 xi xfixes) +-# libev has no pkg-config support +-LDFLAGS += -lev +- +-INCS = $(wildcard $(IDIR)/*.h) +-SRCS = $(wildcard $(SDIR)/*.c) +-OBJS = $(patsubst %,$(ODIR)/%,$(notdir $(SRCS:.c=.o))) +- +-MANS = man/unclutter-xfixes.1 +- +-.NOTPARALLEL: +- +-.PHONY: all +-all: clean $(TARGET) mans +- +-.PHONY: $(TARGET) +-$(TARGET): $(OBJS) +- $(LD) $(OBJS) $(LDFLAGS) -o "$(TARGET)" +- +-$(ODIR)/%.o: $(SDIR)/%.c $(INCS) +- $(CC) $(CPPFLAGS) $(CFLAGS) -o "$@" -c "$<" +- +-.PHONY: install +-install: $(TARGET) mans +- $(INSTALL) -Dm 0755 "$(TARGET)" "$(DESTDIR)$(BINDIR)/$(TARGET)" +- $(INSTALL) -Dm 0644 man/unclutter-xfixes.1 "$(DESTDIR)$(MANDIR)/unclutter.1" +- $(INSTALL) -Dm 0644 -t "$(DESTDIR)$(LICENSEDIR)/" LICENSE +- +-.PHONY: uninstall +-uninstall: +- $(RM) "$(DESTDIR)$(BINDIR)/$(TARGET)" +- $(RM) "$(DESTDIR)$(MANDIR)/unclutter.1" +- $(RM) "$(DESTDIR)$(LICENSEDIR)/LICENSE" +- +-.PHONY: mans +-mans: $(MANS) +- +-$(MANS): %.1: %.man +- a2x --no-xmllint -f manpage "$<" +- +-.PHONY: clean +-clean: +- $(RM) $(TARGET) $(OBJS) +- $(RM) man/*.1 man/*.xml +diff --git a/Makefile.am b/Makefile.am +new file mode 100644 +index 0000000..38ecaa1 +--- /dev/null ++++ b/Makefile.am +@@ -0,0 +1,10 @@ ++ACLOCAL_AMFLAGS = -I m4 ++AUTOMAKE_OPTIONS = foreign ++SUBDIRS = include src ++ ++if HAS_A2X ++SUBDIRS += man ++endif ++ ++licensedir = $(datadir)/licenses/unclutter ++license_DATA = LICENSE +diff --git a/configure.ac b/configure.ac +new file mode 100644 +index 0000000..1d59197 +--- /dev/null ++++ b/configure.ac +@@ -0,0 +1,36 @@ ++AC_PREREQ(2.61) ++ ++AC_INIT([unclutter-xfixes], 1.6) ++AC_DEFINE_UNQUOTED([VERSION], ["$PACKAGE_VERSION"]) ++ ++AC_CONFIG_AUX_DIR([autostuff]) ++AC_CONFIG_MACRO_DIRS([m4]) ++AM_INIT_AUTOMAKE([foreign subdir-objects]) ++ ++m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) ++ ++AC_CONFIG_SRCDIR([src]) ++AC_CONFIG_HEADER([config.h]) ++ ++AM_PROG_AR ++AC_PROG_CC ++AC_PROG_INSTALL ++ ++# libev has no pkg-config support ++AC_CHECK_HEADERS([ev.h], [], [AC_MSG_ERROR([ev.h not found - please install libev])]) ++ ++PKG_CHECK_MODULES([X11], [x11 xi xfixes]) ++ ++AC_CHECK_PROG([has_a2x], [a2x], [true], [false]) ++AM_CONDITIONAL([HAS_A2X], [test "x$has_a2x" = xtrue]) ++if test "x$has_a2x" = xfalse ++then ++ AC_MSG_NOTICE([a2x not found - needed to generate man pages]) ++fi ++ ++AC_CONFIG_FILES([Makefile ++ include/Makefile ++ src/Makefile ++ man/Makefile]) ++ ++AC_OUTPUT +diff --git a/include/Makefile.am b/include/Makefile.am +new file mode 100644 +index 0000000..90d8bbc +--- /dev/null ++++ b/include/Makefile.am +@@ -0,0 +1,9 @@ ++noinst_HEADERS = \ ++ all.h \ ++ cursor.h \ ++ event.h \ ++ extensions.h \ ++ externals.h \ ++ globals.h \ ++ types.h \ ++ util.h +diff --git a/man/Makefile.am b/man/Makefile.am +new file mode 100644 +index 0000000..7856e6a +--- /dev/null ++++ b/man/Makefile.am +@@ -0,0 +1,7 @@ ++unclutter-xfixes.1: ++ a2x --no-xmllint -f manpage unclutter-xfixes.man ++ ++dist_man1_MANS = unclutter-xfixes.1 ++ ++clean-local: ++ rm -f unclutter-xfixes.1 +diff --git a/obj/.gitkeep b/obj/.gitkeep +deleted file mode 100644 +index e69de29..0000000 +diff --git a/src/Makefile.am b/src/Makefile.am +new file mode 100644 +index 0000000..c7f0729 +--- /dev/null ++++ b/src/Makefile.am +@@ -0,0 +1,13 @@ ++AM_CFLAGS = -D'__VERSION="${VERSION}"' "-I$(top_srcdir)/include" ++AM_CFLAGS += -std=gnu99 -Wall -Wundef -Wshadow -Wformat-security ++AM_CFLAGS += $(X11_CFLAGS) ++AM_LDFLAGS = -lev $(X11_LIBS) ++ ++bin_PROGRAMS = unclutter ++ ++unclutter_SOURCES = \ ++ cursor.c \ ++ event.c \ ++ extensions.c \ ++ unclutter.c \ ++ util.c +-- +2.21.0 + diff --git a/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb b/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb new file mode 100644 index 0000000000..e80aebc89b --- /dev/null +++ b/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb @@ -0,0 +1,22 @@ +SUMMARY = "Remove idle cursor image from screen." +DESCRIPTION = "This is a rewrite of the popular tool unclutter, but using the x11-xfixes extension." + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b25d2c4cca175f44120d1b8e67cb358d" + +SRC_URI = "git://github.com/Airblader/unclutter-xfixes.git;branch=master;protocol=https \ + file://0001-build-use-autotools.patch" +SRCREV = "160ae3760a51126eb225ce77d83e4706eccd4ed9" + +inherit autotools pkgconfig features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS = "libev libx11 libxi libxfixes" + +S = "${WORKDIR}/git" + +do_install:append() { + # LICENSE is installed to /usr/share/licenses but we don't want it in the package + rm -rf ${D}${datadir} +} diff --git a/meta-oe/recipes-graphics/vdpau/libvdpau_1.5.bb b/meta-oe/recipes-graphics/vdpau/libvdpau_1.5.bb new file mode 100644 index 0000000000..db3c045588 --- /dev/null +++ b/meta-oe/recipes-graphics/vdpau/libvdpau_1.5.bb @@ -0,0 +1,25 @@ +SUMMARY = "Video Decode and Presentation API for UNIX" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=83af8811a28727a13f04132cc33b7f58" + +DEPENDS = "virtual/libx11 libxext xorgproto" + +SRCREV = "79f1506a3307d3275b0fdfb2e110c173f68e6f78" +SRC_URI = "git://anongit.freedesktop.org/vdpau/libvdpau;branch=master" + +S = "${WORKDIR}/git" + +inherit features_check meson pkgconfig + +REQUIRED_DISTRO_FEATURES = "x11" + +do_install:append() { + rm -f ${D}${libdir}/*/*.la +} + +FILES:${PN}-dbg += "${libdir}/vdpau/.debug" +FILES:${PN}-dev += "${libdir}/vdpau/lib*${SOLIBSDEV}" +FILES:${PN} += "${libdir}/vdpau/lib*${SOLIBS}" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb b/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb deleted file mode 100644 index 31bcce066f..0000000000 --- a/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Video Decode and Presentation API for UNIX" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=83af8811a28727a13f04132cc33b7f58" - -DEPENDS = "virtual/libx11 libxext dri2proto" - -PV = "1.1.1+git${SRCPV}" - -SRCREV = "a21bf7aa438f5dd40d0a300a3167aa3d6f26dccc" -SRC_URI = "git://anongit.freedesktop.org/vdpau/libvdpau" - -S = "${WORKDIR}/git" - -inherit distro_features_check autotools pkgconfig - -REQUIRED_DISTRO_FEATURES = "x11" - -do_install_append() { - rm -f ${D}${libdir}/*/*.la -} - -FILES_${PN}-dbg += "${libdir}/vdpau/.debug" -FILES_${PN}-dev += "${libdir}/vdpau/lib*${SOLIBSDEV}" -FILES_${PN} += "${libdir}/vdpau/lib*${SOLIBS}" diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch new file mode 100644 index 0000000000..f659e36066 --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch @@ -0,0 +1,29 @@ +From ec12bb7bda60cdf2c848e13df67452a7d30a42be Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 3 Sep 2022 18:52:42 -0700 +Subject: [PATCH] cmake: Define WAYLAND_SCANNER and WAYLAND_PROTOCOLS_DIR if + not already defined + +This helps with cross compiling and providing these knobs from cmake +cmdline + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + framework/platform/CMakeLists.txt | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- a/framework/platform/CMakeLists.txt ++++ b/framework/platform/CMakeLists.txt +@@ -73,8 +73,9 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) + add_definitions(-DDEQP_SUPPORT_WAYLAND=1) + include_directories(lnx/wayland) + +- pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir) +- ++ if (NOT WAYLAND_PROTOCOLS_DIR) ++ pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir) ++ endif() + if (NOT WAYLAND_SCANNER) + pkg_get_variable(WAYLAND_SCANNER wayland-scanner wayland_scanner) + endif() diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch new file mode 100644 index 0000000000..0dd59713a1 --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch @@ -0,0 +1,34 @@ +From b07f6ecd6ab83b788301a555dc546b9a5c9dd8a2 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 25 Jan 2023 19:19:34 -0800 +Subject: [PATCH] Include missing <cstdint> + +This error is seen with gcc-13 where include headers are not implicitly +included [1] + +Fixes errors e.g. +error: 'uint32_t' does not name a type + +[1] https://www.gnu.org/software/gcc/gcc-13/porting_to.html + +Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/378] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + framework/common/tcuDefs.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/framework/common/tcuDefs.hpp b/framework/common/tcuDefs.hpp +index ad3d0736d..6dfac10fb 100644 +--- a/framework/common/tcuDefs.hpp ++++ b/framework/common/tcuDefs.hpp +@@ -26,6 +26,7 @@ + #include "deDefs.hpp" + #include "qpTestLog.h" + ++#include <cstdint> + #include <string> + #include <stdexcept> + +-- +2.39.1 + diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch new file mode 100644 index 0000000000..40aea8f203 --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch @@ -0,0 +1,32 @@ +From 1b7646ced0f0b969f818084887885827ed1a4244 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 31 May 2021 17:31:33 -0700 +Subject: [PATCH] vulkancts: Include missing <cstdint> + +Fixes build with gcc-13 + +../git/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp:2798:102: error: 'uintptr_t' in namespace 'std' does not name a type + 2798 | BufferDataType type = static_cast<BufferDataType>(reinterpret_cast<std::uintptr_t>(expectedOutputs[resultIndex].getUserData())); + | ^~~~~~~~~ + +Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/378] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + .../vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp +index ab02be1dc..3d3ee4829 100644 +--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp ++++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp +@@ -33,6 +33,7 @@ + #include "deFloat16.h" + #include "vkQueryUtil.hpp" + #include "vkRefUtil.hpp" ++#include <cstdint> + #include <cstring> + #include <vector> + #include <limits> +-- +2.39.1 + diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch new file mode 100644 index 0000000000..4ecc371ca4 --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch @@ -0,0 +1,15 @@ +Upstream-Status: Pending + +--- a/external/glslang/src/glslang/Include/PoolAlloc.h ++++ b/external/glslang/src/glslang/Include/PoolAlloc.h +@@ -240,8 +240,9 @@ protected: + + int numCalls; // just an interesting statistic + size_t totalBytes; // just an interesting statistic +-private: ++public: + TPoolAllocator& operator=(const TPoolAllocator&); // don't allow assignment operator ++private: + TPoolAllocator(const TPoolAllocator&); // don't allow default copy constructor + }; + diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch new file mode 100644 index 0000000000..58dc1f24dd --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch @@ -0,0 +1,22 @@ +Upstream-Status: Pending + +--- a/framework/delibs/dethread/CMakeLists.txt ++++ b/framework/delibs/dethread/CMakeLists.txt +@@ -42,6 +42,7 @@ if (DE_OS_IS_UNIX) + add_definitions(-D__BSD_VISIBLE) + add_definitions(-D_XOPEN_SOURCE=600) + endif () ++ add_definitions(-D_XOPEN_SOURCE=600) + add_definitions(-D_GNU_SOURCE) + + set(DETHREAD_LIBS ${DETHREAD_LIBS} pthread) +--- a/framework/qphelper/CMakeLists.txt ++++ b/framework/qphelper/CMakeLists.txt +@@ -28,6 +28,7 @@ set(QPHELPER_LIBS + if (DE_OS_IS_UNIX OR DE_OS_IS_QNX) + # For vsnprintf() + add_definitions(-D_XOPEN_SOURCE=600) ++ set(QPHELPER_LIBS ${QPHELPER_LIBS} execinfo) + endif () + + if (DE_OS_IS_WIN32 AND DE_COMPILER_IS_MSC) diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch new file mode 100644 index 0000000000..8a8d8d2c32 --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch @@ -0,0 +1,20 @@ +Prepend instead of append to the module search path, as this script needs to use +the local module build, not the host module build. + +Upstream-Status: Submitted +Signed-off-by: Ross Burton <ross.burton@arm.com> + +diff --git a/external/vulkancts/scripts/gen_framework.py b/external/vulkancts/scripts/gen_framework.py +index 83c5329ce..10e720910 100755 +--- a/external/vulkancts/scripts/gen_framework.py ++++ b/external/vulkancts/scripts/gen_framework.py +@@ -33 +33 @@ from collections import OrderedDict +-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts")) ++sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts")) +diff --git a/external/vulkancts/scripts/gen_framework_c.py b/external/vulkancts/scripts/gen_framework_c.py +index 95587e642..84b878cb2 100644 +--- a/external/vulkancts/scripts/gen_framework_c.py ++++ b/external/vulkancts/scripts/gen_framework_c.py +@@ -28 +28 @@ import re +-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts")) ++sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts")) diff --git a/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc new file mode 100644 index 0000000000..09f1fbcaee --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc @@ -0,0 +1,83 @@ +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRC_URI = "\ + git://github.com/KhronosGroup/VK-GL-CTS.git;protocol=https;name=vk-gl-cts;nobranch=1 \ + git://github.com/google/amber;protocol=https;destsuffix=git/external/amber/src;name=amber;branch=main \ + git://github.com/KhronosGroup/glslang.git;protocol=https;destsuffix=git/external/glslang/src;name=glslang;branch=main \ + git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/external/spirv-headers/src;name=spirv-headers;branch=main \ + git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/external/spirv-tools/src;name=spirv-tools;branch=main \ + git://github.com/open-source-parsers/jsoncpp.git;protocol=https;destsuffix=git/external/jsoncpp/src;name=jsoncpp;branch=master \ + git://github.com/KhronosGroup/Vulkan-Docs.git;protocol=https;destsuffix=git/external/vulkan-docs/src;name=vulkan-docs;branch=main \ + https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h;subdir=git/external/renderdoc/src;name=renderdoc \ + git://github.com/Igalia/ESExtractor.git;protocol=https;destsuffix=git/external/ESExtractor/src;name=ESExtractor;branch=main \ + git://github.com/Igalia/vk_video_samples.git;protocol=https;destsuffix=git/external/nvidia-video-samples/src;name=video-parser;nobranch=1 \ +" + +S = "${WORKDIR}/git" + +SRCREV_FORMAT = "vk-gl-cts_amber_glslang_spirv-headers_spirv-tools_jsoncpp_vulkan-docs" + +S = "${WORKDIR}/git" + +inherit pkgconfig cmake features_check python3native qemu + +ANY_OF_DISTRO_FEATURES += "opengl vulkan" + +DEPENDS += "python3-lxml-native libpng zlib virtual/libgles2 qemu-native" + +SRC_URI += " \ + file://0001-vulkancts-Include-missing-cstdint.patch \ + file://0001-use-library-sonames-for-linking.patch \ +" + +SRC_URI:append:libc-musl = "\ + file://fix-musl.patch \ +" +DEPENDS:append:libc-musl = " libexecinfo" + +SRC_URI:append:toolchain-clang = "\ + file://fix-clang-private-operator.patch \ +" + +EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper -DWAYLAND_SCANNER=${STAGING_BINDIR_NATIVE}/wayland-scanner -DWAYLAND_PROTOCOLS_DIR=${STAGING_DATADIR}/wayland-protocols -DAMBER_DISABLE_WERROR=ON" + +# The best thing for the user to do is to not specify any of the following +# PACKAGECONFIGs (i.e. leave it blank) which tells the project to do its own +# probing and build what it thinks is appropriate. +# However, if you want, you can specify one of the following PACKAGECONFIGs +# to override this behaviour. +PACKAGECONFIG ??= "" +PACKAGECONFIG[surfaceless] = "-DDEQP_TARGET=surfaceless,,,,,wayland x11_egl x11_glx x11_egl_glx" +PACKAGECONFIG[wayland] = "-DDEQP_TARGET=wayland,,wayland-native wayland wayland-protocols,,,surfaceless x11_egl x11_glx x11_egl_glx" +PACKAGECONFIG[x11_egl] = "-DDEQP_TARGET=x11_egl,,virtual/libx11 virtual/egl,,,surfaceless wayland x11_glx x11_egl_glx" +PACKAGECONFIG[x11_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11,,,surfaceless wayland x11_egl x11_egl_glx" +PACKAGECONFIG[x11_egl_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11 virtual/egl,,,surfaceless wayland x11_egl x11_glx" + +do_configure:append() { + # Write out a qemu wrapper that will be used by cmake + # so that it can run target helper binaries through that. + qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" + cat > ${WORKDIR}/qemuwrapper << EOF +#!/bin/sh +$qemu_binary "\$@" +EOF + chmod +x ${WORKDIR}/qemuwrapper +} + +python __anonymous() { + # if the user doesn't specify any PACKAGECONFIG then the cts build system + # is going to probe the sysroot to try to figure out what to build + # in this case we try to guess whether the user is building for wayland + # or x11 and add the required dependencies automatically + distrofeatures = (d.getVar("DISTRO_FEATURES") or "") + if not bb.utils.contains_any("PACKAGECONFIG", ["surfaceless", "wayland", "x11_egl", "x11_glx", "x11_egl_glx"], True, False, d): + if "wayland" in distrofeatures: + d.appendVar("DEPENDS", " wayland-native ${MLPREFIX}wayland ${MLPREFIX}wayland-protocols") + if "x11" in distrofeatures: + d.appendVar("DEPENDS", " virtual/${MLPREFIX}libx11 virtual/${MLPREFIX}egl ") +} + +CTSDIR = "/usr/lib/${BPN}" + +FILES:${PN} += "${CTSDIR}" diff --git a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts/0001-use-library-sonames-for-linking.patch b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts/0001-use-library-sonames-for-linking.patch new file mode 100644 index 0000000000..b5a1d331ed --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts/0001-use-library-sonames-for-linking.patch @@ -0,0 +1,114 @@ +From acd25c4b8d5b7e420a7a89bdfd6551c70de828b3 Mon Sep 17 00:00:00 2001 +From: Trevor Woerner <twoerner@gmail.com> +Date: Thu, 23 Sep 2021 19:36:43 -0400 +Subject: [PATCH] use library sonames for linking + +The recommended "best practices" for applications is to link to library +sonames (e.g. libGL.so.1) instead of library names (e.g. libGL.so). This +ensures that applications don't try to use libraries if an incompatible ABI +change occurs. + +Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/288] +Signed-off-by: Trevor Woerner <twoerner@gmail.com> +--- + framework/egl/egluGLContextFactory.cpp | 4 ++-- + framework/egl/wrapper/eglwLibrary.cpp | 2 +- + framework/platform/android/tcuAndroidPlatform.cpp | 2 +- + framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp | 2 +- + .../platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp | 2 +- + framework/platform/surfaceless/tcuSurfacelessPlatform.cpp | 6 +++--- + 6 files changed, 9 insertions(+), 9 deletions(-) + +--- a/framework/egl/egluGLContextFactory.cpp ++++ b/framework/egl/egluGLContextFactory.cpp +@@ -63,7 +63,7 @@ using std::vector; + # if (DE_OS == DE_OS_WIN32) + # define DEQP_GLES2_LIBRARY_PATH "libGLESv2.dll" + # else +-# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so" ++# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2" + # endif + #endif + +@@ -75,7 +75,7 @@ using std::vector; + # if (DE_OS == DE_OS_WIN32) + # define DEQP_OPENGL_LIBRARY_PATH "opengl32.dll" + # else +-# define DEQP_OPENGL_LIBRARY_PATH "libGL.so" ++# define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1" + # endif + #endif + +--- a/framework/egl/wrapper/eglwLibrary.cpp ++++ b/framework/egl/wrapper/eglwLibrary.cpp +@@ -148,7 +148,7 @@ DefaultLibrary::~DefaultLibrary (void) + const char* DefaultLibrary::getLibraryFileName (void) + { + #if (DE_OS == DE_OS_ANDROID) || (DE_OS == DE_OS_UNIX) +- return "libEGL.so"; ++ return "libEGL.so.1"; + #elif (DE_OS == DE_OS_WIN32) + return "libEGL.dll"; + #else +--- a/framework/platform/android/tcuAndroidPlatform.cpp ++++ b/framework/platform/android/tcuAndroidPlatform.cpp +@@ -57,7 +57,7 @@ static const eglu::NativeWindow::Capabil + class NativeDisplay : public eglu::NativeDisplay + { + public: +- NativeDisplay (void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so") {} ++ NativeDisplay (void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so.1") {} + virtual ~NativeDisplay (void) {} + + virtual EGLNativeDisplayType getLegacyNative (void) { return EGL_DEFAULT_DISPLAY; } +--- a/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp ++++ b/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp +@@ -75,7 +75,7 @@ class Library : public eglw::DefaultLibr + { + public: + Library (void) +- : eglw::DefaultLibrary("libEGL.so") ++ : eglw::DefaultLibrary("libEGL.so.1") + { + } + +--- a/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp ++++ b/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp +@@ -66,7 +66,7 @@ public: + EGL_PLATFORM_WAYLAND_KHR, + "EGL_KHR_platform_wayland") + , m_display (waylandDisplay) +- , m_library ("libEGL.so") {} ++ , m_library ("libEGL.so.1") {} + + ~Display(void) {} + wayland::Display& getWaylandDisplay (void) { return *m_display; } +--- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp ++++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp +@@ -69,7 +69,7 @@ using std::vector; + + // Default library names + #if !defined(DEQP_GLES2_LIBRARY_PATH) +-# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so" ++# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2" + #endif + + #if !defined(DEQP_GLES3_LIBRARY_PATH) +@@ -77,7 +77,7 @@ using std::vector; + #endif + + #if !defined(DEQP_OPENGL_LIBRARY_PATH) +-# define DEQP_OPENGL_LIBRARY_PATH "libGL.so" ++# define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1" + #endif + + #if !defined(DEQP_VULKAN_LIBRARY_PATH) +@@ -234,7 +234,7 @@ glu::RenderContext* ContextFactory::crea + } + + EglRenderContext::EglRenderContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine) +- : m_egl("libEGL.so") ++ : m_egl("libEGL.so.1") + , m_contextType(config.type) + , m_eglDisplay(EGL_NO_DISPLAY) + , m_eglContext(EGL_NO_CONTEXT) diff --git a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb new file mode 100644 index 0000000000..0656d724b4 --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "OpenGL CTS" + +require khronos-cts.inc +# opengl-es-cts-3.2.9.3 +SRCREV_vk-gl-cts = "7f5fb62245d535a1fc0bf50b2c7e5a342dc551fe" +SRCREV_amber = "933ecb4d6288675a92eb1650e0f52b1d7afe8273" +SRCREV_glslang = "a0ad0d7067521fff880e36acfb8ce453421c3f25" +SRCREV_spirv-headers = "87d5b782bec60822aa878941e6b13c0a9a954c9b" +SRCREV_spirv-tools = "f98473ceeb1d33700d01e20910433583e5256030" +SRCREV_ESExtractor = "ce5d7ebcf0ebb0d78385ee4cc34653eb6764bfc4" +# Not yet needed +SRCREV_jsoncpp = "9059f5cad030ba11d37818847443a53918c327b1" +SRCREV_vulkan-docs = "9a2e576a052a1e65a5d41b593e693ff02745604b" +SRCREV_video-parser = "7d68747d3524842afaf050c5e00a10f5b8c07904" +SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e" + +SRC_URI += "\ + git://github.com/nvpro-samples/vk_video_samples.git;protocol=https;destsuffix=git/external/video-parser/src;name=video-parser;branch=main \ + file://gen-framework-path.patch \ + " +S = "${WORKDIR}/git" + +do_install() { + install -d ${D}/${CTSDIR} + cp -r ${B}/external/openglcts/modules/* ${D}/${CTSDIR} + + install -m 0755 ${B}/modules/egl/deqp-egl ${D}/${CTSDIR} + install -m 0755 ${B}/modules/gles2/deqp-gles2 ${D}/${CTSDIR} + install -m 0755 ${B}/modules/gles3/deqp-gles3 ${D}/${CTSDIR} + install -m 0755 ${B}/modules/gles31/deqp-gles31 ${D}/${CTSDIR} + install -m 0755 ${B}/modules/internal/de-internal-tests ${D}/${CTSDIR} + + rm -rf ${D}/${CTSDIR}/*.a ${D}/${CTSDIR}/cmake_install.cmake ${D}/${CTSDIR}/CMakeFiles + rm -rf ${D}/${CTSDIR}/*/*.a ${D}/${CTSDIR}/*/cmake_install.cmake ${D}/${CTSDIR}/*/CMakeFiles + rm -rf ${D}/${CTSDIR}/common/subgroups/*.a ${D}/${CTSDIR}/common/subgroups/cmake_install.cmake ${D}/${CTSDIR}/common/subgroups/CMakeFiles +} + +SECURITY_CFLAGS:riscv64 = "${SECURITY_NOPIE_CFLAGS}" +LTO = "" + diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch new file mode 100644 index 0000000000..f12abd0c1a --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch @@ -0,0 +1,114 @@ +From acd25c4b8d5b7e420a7a89bdfd6551c70de828b3 Mon Sep 17 00:00:00 2001 +From: Trevor Woerner <twoerner@gmail.com> +Date: Thu, 23 Sep 2021 19:36:43 -0400 +Subject: [PATCH] use library sonames for linking + +The recommended "best practices" for applications is to link to library +sonames (e.g. libGL.so.1) instead of library names (e.g. libGL.so). This +ensures that applications don't try to use libraries if an incompatible ABI +change occurs. + +Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/288] +Signed-off-by: Trevor Woerner <twoerner@gmail.com> +--- + framework/egl/egluGLContextFactory.cpp | 4 ++-- + framework/egl/wrapper/eglwLibrary.cpp | 2 +- + framework/platform/android/tcuAndroidPlatform.cpp | 2 +- + framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp | 2 +- + .../platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp | 2 +- + framework/platform/surfaceless/tcuSurfacelessPlatform.cpp | 6 +++--- + 6 files changed, 9 insertions(+), 9 deletions(-) + +--- a/framework/egl/egluGLContextFactory.cpp ++++ b/framework/egl/egluGLContextFactory.cpp +@@ -63,7 +63,7 @@ using std::vector; + # if (DE_OS == DE_OS_WIN32) + # define DEQP_GLES2_LIBRARY_PATH "libGLESv2.dll" + # else +-# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so" ++# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2" + # endif + #endif + +@@ -75,7 +75,7 @@ using std::vector; + # if (DE_OS == DE_OS_WIN32) + # define DEQP_OPENGL_LIBRARY_PATH "opengl32.dll" + # else +-# define DEQP_OPENGL_LIBRARY_PATH "libGL.so" ++# define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1" + # endif + #endif + +--- a/framework/egl/wrapper/eglwLibrary.cpp ++++ b/framework/egl/wrapper/eglwLibrary.cpp +@@ -148,7 +148,7 @@ DefaultLibrary::~DefaultLibrary (void) + const char* DefaultLibrary::getLibraryFileName (void) + { + #if (DE_OS == DE_OS_ANDROID) || (DE_OS == DE_OS_UNIX) +- return "libEGL.so"; ++ return "libEGL.so.1"; + #elif (DE_OS == DE_OS_WIN32) + return "libEGL.dll"; + #else +--- a/framework/platform/android/tcuAndroidPlatform.cpp ++++ b/framework/platform/android/tcuAndroidPlatform.cpp +@@ -57,7 +57,7 @@ static const eglu::NativeWindow::Capabil + class NativeDisplay : public eglu::NativeDisplay + { + public: +- NativeDisplay (void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so") {} ++ NativeDisplay (void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so.1") {} + virtual ~NativeDisplay (void) {} + + virtual EGLNativeDisplayType getLegacyNative (void) { return EGL_DEFAULT_DISPLAY; } +--- a/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp ++++ b/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp +@@ -75,7 +75,7 @@ class Library : public eglw::DefaultLibr + { + public: + Library (void) +- : eglw::DefaultLibrary("libEGL.so") ++ : eglw::DefaultLibrary("libEGL.so.1") + { + } + +--- a/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp ++++ b/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp +@@ -66,7 +66,7 @@ public: + EGL_PLATFORM_WAYLAND_KHR, + "EGL_KHR_platform_wayland") + , m_display (waylandDisplay) +- , m_library ("libEGL.so") {} ++ , m_library ("libEGL.so.1") {} + + ~Display(void) {} + wayland::Display& getWaylandDisplay (void) { return *m_display; } +--- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp ++++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp +@@ -69,7 +69,7 @@ using std::vector; + + // Default library names + #if !defined(DEQP_GLES2_LIBRARY_PATH) +-# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so" ++# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2" + #endif + + #if !defined(DEQP_GLES3_LIBRARY_PATH) +@@ -77,7 +77,7 @@ using std::vector; + #endif + + #if !defined(DEQP_OPENGL_LIBRARY_PATH) +-# define DEQP_OPENGL_LIBRARY_PATH "libGL.so" ++# define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1" + #endif + + #if !defined(DEQP_VULKAN_LIBRARY_PATH) +@@ -237,7 +237,7 @@ glu::RenderContext* ContextFactory::crea + } + + EglRenderContext::EglRenderContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine, const glu::RenderContext *sharedContext) +- : m_egl("libEGL.so") ++ : m_egl("libEGL.so.1") + , m_contextType(config.type) + , m_eglDisplay(EGL_NO_DISPLAY) + , m_eglContext(EGL_NO_CONTEXT) diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb new file mode 100644 index 0000000000..1008a5fd42 --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "Vulkan CTS" + +require khronos-cts.inc + +SRC_URI += "git://github.com/Igalia/vk_video_samples.git;protocol=https;destsuffix=git/external/nvidia-video-samples/src;name=video-parser;nobranch=1" + +# vulkan-cts-1.3.7.3 +SRCREV_vk-gl-cts = "d71a36db16d98313c431829432a136dbda692a08" +SRCREV_amber = "933ecb4d6288675a92eb1650e0f52b1d7afe8273" +SRCREV_glslang = "c5117b328afc86e16edff6ed6afe0fe7872a7cf3" +SRCREV_spirv-headers = "b8b9eb8640c8c0107ba580fbcb10f969022ca32c" +SRCREV_spirv-tools = "bfc94f63a7adbcf8ae166f5f108ac9f69079efc0" +SRCREV_jsoncpp = "9059f5cad030ba11d37818847443a53918c327b1" +SRCREV_vulkan-docs = "b9aad705f0d9e5e6734ac2ad671d5d1de57b05e0" +SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e" +# Not yet needed +SRCREV_ESExtractor = "75ffcaf55bb069f7a23764194742d2fb78c7f71f" +SRCREV_video-parser = "138bbe048221d315962ddf8413aa6a08cc62a381" + +SRC_URI += "file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch \ + file://0001-vulkan-cts-include-missing-cstdint.patch \ +" + +TOOLCHAIN = "gcc" + +S = "${WORKDIR}/git" + +REQUIRED_DISTRO_FEATURES = "vulkan" +inherit features_check + +DEPENDS += " vulkan-loader" + +do_install() { + install -d ${D}/${CTSDIR} + cp -r ${B}/external/vulkancts/modules/vulkan/* ${D}/${CTSDIR}/ + rm -rf ${D}/${CTSDIR}/*.a ${D}/${CTSDIR}/cmake_install.cmake ${D}/${CTSDIR}/CMakeFiles + rm -rf ${D}/${CTSDIR}/*/*.a ${D}/${CTSDIR}/*/cmake_install.cmake ${D}/${CTSDIR}/*/CMakeFiles +} diff --git a/meta-oe/recipes-graphics/wayland/libei_1.2.1.bb b/meta-oe/recipes-graphics/wayland/libei_1.2.1.bb new file mode 100644 index 0000000000..807dcea1ed --- /dev/null +++ b/meta-oe/recipes-graphics/wayland/libei_1.2.1.bb @@ -0,0 +1,25 @@ +SUMMARY = "libei is a library for Emulated Input, primarily aimed at the Wayland stack." +HOMEPAGE = "https://gitlab.freedesktop.org/libinput/libei" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=a98fa76460f96f41696611d6f07e8d49" + +DEPENDS = " \ + libxkbcommon \ + libevdev \ + libxslt-native \ + python3-attrs-native \ + python3-jinja2-native \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'basu', d)} \ +" + +SRC_URI = "git://gitlab.freedesktop.org/libinput/libei.git;protocol=https;branch=main" + +S = "${WORKDIR}/git" +SRCREV = "08f1d41085a6ae4bac7bc52abe2955d3354342cb" + +inherit meson pkgconfig + +EXTRA_OEMESON = "-Dtests=disabled" + diff --git a/meta-oe/recipes-graphics/wayland/waylandpp/0001-include-missing-cstdint.patch b/meta-oe/recipes-graphics/wayland/waylandpp/0001-include-missing-cstdint.patch new file mode 100644 index 0000000000..f2169c43c9 --- /dev/null +++ b/meta-oe/recipes-graphics/wayland/waylandpp/0001-include-missing-cstdint.patch @@ -0,0 +1,59 @@ +From 5e3243b163aa5d50083b4036c21f84c1204f2023 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 26 Jan 2023 23:25:05 -0800 +Subject: [PATCH] include missing <cstdint> + +gcc 13 moved some includes around and as a result <cstdint> is no longer transitively included [1]. Explicitly include it for uint{32,64}_t. + +[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes + +Upstream-Status: Submitted [https://github.com/NilsBrause/waylandpp/pull/75] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + include/wayland-client.hpp | 1 + + scanner/scanner.cpp | 3 +++ + 2 files changed, 4 insertions(+) + +diff --git a/include/wayland-client.hpp b/include/wayland-client.hpp +index a3f782b..4598a0e 100644 +--- a/include/wayland-client.hpp ++++ b/include/wayland-client.hpp +@@ -29,6 +29,7 @@ + /** \file */ + + #include <atomic> ++#include <cstdint> + #include <functional> + #include <memory> + #include <string> +diff --git a/scanner/scanner.cpp b/scanner/scanner.cpp +index bebd71e..c25746a 100644 +--- a/scanner/scanner.cpp ++++ b/scanner/scanner.cpp +@@ -15,6 +15,7 @@ + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + ++#include <cstdint> + #include <fstream> + #include <iostream> + #include <list> +@@ -1106,6 +1107,7 @@ int main(int argc, char *argv[]) + wayland_hpp << "#pragma once" << std::endl + << std::endl + << "#include <array>" << std::endl ++ << "#include <cstdint>" << std::endl + << "#include <functional>" << std::endl + << "#include <memory>" << std::endl + << "#include <string>" << std::endl +@@ -1125,6 +1127,7 @@ int main(int argc, char *argv[]) + wayland_server_hpp << "#pragma once" << std::endl + << std::endl + << "#include <array>" << std::endl ++ << "#include <cstdint>" << std::endl + << "#include <functional>" << std::endl + << "#include <memory>" << std::endl + << "#include <string>" << std::endl +-- +2.39.1 + diff --git a/meta-oe/recipes-graphics/wayland/waylandpp_1.0.0.bb b/meta-oe/recipes-graphics/wayland/waylandpp_1.0.0.bb new file mode 100644 index 0000000000..c1f5f4ed8e --- /dev/null +++ b/meta-oe/recipes-graphics/wayland/waylandpp_1.0.0.bb @@ -0,0 +1,45 @@ +SUMMARY = " C++ binding for Wayland using the most modern C++ technology" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3aae28cc66d61975114c2b14df215407" + +SRC_URI = "git://github.com/NilsBrause/waylandpp.git;protocol=https;branch=master \ + file://0001-include-missing-cstdint.patch" + +DEPENDS = "pugixml" +DEPENDS:append:class-target = " waylandpp-native wayland virtual/egl virtual/libgles2" + +S = "${WORKDIR}/git" +SRCREV = "4321ed5c7b4bffa41b8a2a13dc7f3ece1191f4f3" + +inherit cmake pkgconfig features_check + +REQUIRED_DISTRO_FEATURES:class-target = "opengl" + +EXTRA_OECMAKE:class-native = " \ + -DBUILD_SCANNER=ON \ + -DBUILD_LIBRARIES=OFF \ + -DBUILD_DOCUMENTATION=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_VERBOSE_MAKEFILE=TRUE \ +" + +EXTRA_OECMAKE:class-target = " \ + -DBUILD_SCANNER=ON \ + -DBUILD_LIBRARIES=ON \ + -DBUILD_DOCUMENTATION=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DOPENGL_LIBRARY="-lEGL -lGLESv2" \ + -DOPENGL_opengl_LIBRARY=-lEGL \ + -DOPENGL_glx_LIBRARY=-lEGL \ + -DWAYLAND_SCANNERPP="${STAGING_BINDIR_NATIVE}/wayland-scanner++" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_VERBOSE_MAKEFILE=TRUE \ + -DCMAKE_EXE_LINKER_FLAGS="-Wl,--enable-new-dtags" \ +" + +do_install:append:class-target() { + sed -i -e 's|${S}||g' ${D}${libdir}/cmake/waylandpp/waylandpp-targets.cmake + sed -i -e 's|${STAGING_DIR_HOST}||g' ${D}${libdir}/cmake/waylandpp/waylandpp-targets.cmake +} + +BBCLASSEXTEND += "native nativesdk" diff --git a/meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch b/meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch new file mode 100644 index 0000000000..fbdb9123cc --- /dev/null +++ b/meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch @@ -0,0 +1,27 @@ +CVE: CVE-2020-29074 +Upstream-Status: Backport [https://github.com/LibVNC/x11vnc/commit/69eeb9f7baa14ca03b16c9de821f9876def7a36a ] +Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> + + +From 69eeb9f7baa14ca03b16c9de821f9876def7a36a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Gu=C3=A9nal=20DAVALAN?= <guenal.davalan@uca.fr> +Date: Wed, 18 Nov 2020 08:40:45 +0100 +Subject: [PATCH] scan: limit access to shared memory segments to current user + +--- + src/scan.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/scan.c b/src/scan.c +index 43e00d20..12994d52 100644 +--- a/src/scan.c ++++ b/src/scan.c +@@ -320,7 +320,7 @@ static int shm_create(XShmSegmentInfo *shm, XImage **ximg_ptr, int w, int h, + + #if HAVE_XSHM + shm->shmid = shmget(IPC_PRIVATE, +- xim->bytes_per_line * xim->height, IPC_CREAT | 0777); ++ xim->bytes_per_line * xim->height, IPC_CREAT | 0600); + + if (shm->shmid == -1) { + rfbErr("shmget(%s) failed.\n", name); diff --git a/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch b/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch deleted file mode 100644 index f2a538bf63..0000000000 --- a/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch +++ /dev/null @@ -1,24 +0,0 @@ -libvncserver: replace LIBVNCSERVER_WORDS_BIGENDIAN with WORDS_BIGENDIAN - -since macro AC_C_BIGENDIAN is used in autoconf and WORDS_BIGENDIAN is -automatically set for different arch, it is better to use WORDS_BIGENDIAN -instead of LIBVNCSERVER_WORDS_BIGENDIAN, which cuase issue in mips. - -Signed-off-by: Yu Ke <ke.yu@intel.com> - -Upstream-Status: Pending - -diff --git a/libvncserver/main.c b/libvncserver/main.c -index b6bd930..8bbb7bf 100644 ---- a/libvncserver/main.c -+++ b/libvncserver/main.c -@@ -47,7 +47,7 @@ static MUTEX(extMutex); - - static int rfbEnableLogging=1; - --#ifdef LIBVNCSERVER_WORDS_BIGENDIAN -+#ifdef WORDS_BIGENDIAN - char rfbEndianTest = (1==0); - #else - char rfbEndianTest = (1==1); - diff --git a/meta-oe/recipes-graphics/x11vnc/files/remove-redundant-RPATH.patch b/meta-oe/recipes-graphics/x11vnc/files/remove-redundant-RPATH.patch deleted file mode 100644 index 8e894bd8e7..0000000000 --- a/meta-oe/recipes-graphics/x11vnc/files/remove-redundant-RPATH.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 7be055c13c7d0d640941830a3291af3b404928c1 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Mon, 27 Jun 2016 04:44:14 -0400 -Subject: [PATCH] configure.ac: remove redundant RPATH - -It caused oe QA issue: -... -|ERROR: QA Issue: x11vnc: work/i586-poky-linux/x11vnc/0.9.13-r0/packages-split/ -x11vnc/usr/bin/x11vnc contains probably-redundant RPATH /usr/lib [useless-rpaths] -... - -Upstream-Status: Inappropriate [oe specific] - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - configure.ac | 21 +++++---------------- - 1 file changed, 5 insertions(+), 16 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 6f664d0..f986686 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -330,10 +330,8 @@ if test "x$with_crypto" != "xno" -a "x$with_ssl" != "xno"; then - saved_LDFLAGS="$LDFLAGS" - CPPFLAGS="$CPPFLAGS -I$with_ssl/include" - LDFLAGS="$LDFLAGS -L$with_ssl/lib" -- if test "x$ld_minus_R" = "xno"; then -+ if test "x$ld_minus_R" = "xno" -o "x$GCC" = "xyes"; then - : -- elif test "x$GCC" = "xyes"; then -- LDFLAGS="$LDFLAGS -Xlinker -R$with_ssl/lib" - else - LDFLAGS="$LDFLAGS -R$with_ssl/lib" - fi -@@ -447,10 +445,8 @@ if test ! -z "$with_system_libvncserver" -a "x$with_system_libvncserver" != "xno - fi - if test "x$with_system_libvncserver" != "xyes"; then - rflag="" -- if test "x$ld_minus_R" = "xno"; then -+ if test "x$ld_minus_R" = "xno" -o "x$GCC" = "xyes"; then - : -- elif test "x$GCC" = "xyes"; then -- rflag="-Xlinker -R$with_system_libvncserver/lib" - else - rflag="-R$with_system_libvncserver/lib" - fi -@@ -484,10 +480,8 @@ new enough. - elif libvncserver-config --version 1>/dev/null 2>&1; then - rflag="" - rprefix=`libvncserver-config --prefix` -- if test "x$ld_minus_R" = "xno"; then -+ if test "x$ld_minus_R" = "xno" -o "x$GCC" = "xyes"; then - : -- elif test "x$GCC" = "xyes"; then -- rflag=" -Xlinker -R$rprefix/lib " - else - rflag=" -R$rprefix/lib " - fi -@@ -541,11 +535,8 @@ if test "x$with_jpeg" != "xno"; then - saved_LDFLAGS="$LDFLAGS" - CPPFLAGS="$CPPFLAGS -I$with_jpeg/include" - LDFLAGS="$LDFLAGS -L$with_jpeg/lib" -- if test "x$ld_minus_R" = "xno"; then -+ if test "x$ld_minus_R" = "xno" -o "x$GCC" = "xyes"; then - : -- elif test "x$GCC" = "xyes"; then -- # this is not complete... in general a rat's nest. -- LDFLAGS="$LDFLAGS -Xlinker -R$with_jpeg/lib" - else - LDFLAGS="$LDFLAGS -R$with_jpeg/lib" - fi -@@ -590,10 +581,8 @@ if test "x$with_zlib" != "xno" -a "x$with_libz" != "xno"; then - saved_LDFLAGS="$LDFLAGS" - CPPFLAGS="$CPPFLAGS -I$with_zlib/include" - LDFLAGS="$LDFLAGS -L$with_zlib/lib" -- if test "x$ld_minus_R" = "xno"; then -+ if test "x$ld_minus_R" = "xno" -o "x$GCC" = "xyes"; then - : -- elif test "x$GCC" = "xyes"; then -- LDFLAGS="$LDFLAGS -Xlinker -R$with_zlib/lib" - else - LDFLAGS="$LDFLAGS -R$with_zlib/lib" - fi --- -2.8.1 - diff --git a/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch b/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch index f62e405dd1..060319c76b 100644 --- a/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch +++ b/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch @@ -10,10 +10,10 @@ Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Upstream-Status: Inappropriate [configuration] -Index: x11vnc-0.9.12/x11vnc/x11vnc.desktop +Index: x11vnc-0.9.12/x11vnc.desktop =================================================================== ---- x11vnc-0.9.12.orig/x11vnc/x11vnc.desktop 2011-03-03 10:33:18.000000000 +0800 -+++ x11vnc-0.9.12/x11vnc/x11vnc.desktop 2011-03-03 10:35:20.000000000 +0800 +--- x11vnc-0.9.12.orig/x11vnc.desktop 2011-03-03 10:33:18.000000000 +0800 ++++ x11vnc-0.9.12/x11vnc.desktop 2011-03-03 10:35:20.000000000 +0800 @@ -1,7 +1,7 @@ [Desktop Entry] Name=X11VNC Server diff --git a/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb b/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb deleted file mode 100644 index b047bc4628..0000000000 --- a/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Exports your X session on-the-fly via VNC" -HOMEPAGE = "http://www.karlrunge.com/x11vnc/" - -SECTION = "x11/utils" -AUTHOR = "Karl Runge" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f \ - file://x11vnc/x11vnc.h;endline=33;md5=6f95dc6535467d7ee1563fd434fb372e" - -SRC_URI = "${SOURCEFORGE_MIRROR}/libvncserver/x11vnc/${PV}/x11vnc-${PV}.tar.gz\ - file://starting-fix.patch \ - file://endian-fix.patch \ - file://remove-redundant-RPATH.patch \ -" - -SRC_URI[md5sum] = "a372ec4fe8211221547b1c108cf56e4c" -SRC_URI[sha256sum] = "f6829f2e629667a5284de62b080b13126a0736499fe47cdb447aedb07a59f13b" - -DEPENDS = "openssl virtual/libx11 libxext jpeg zlib libxfixes libxrandr libxdamage libxtst libtasn1 p11-kit" - -inherit autotools-brokensep distro_features_check -# depends on virtual/libx11 -REQUIRED_DISTRO_FEATURES = "x11" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} libvncserver" -PACKAGECONFIG[avahi] = "--with-avahi,--without-avahi,avahi" -PACKAGECONFIG[xinerama] = "--with-xinerama,--without-xinerama,libxinerama" -PACKAGECONFIG[libvncserver] = "--with-system-libvncserver,--without-system-libvncserver,libvncserver" - -do_prepare_sources () { - # Remove old libtool macros from acinclude.m4 - sed -i -e '/^# libtool.m4/q' ${S}/acinclude.m4 -} -do_patch[postfuncs] += "do_prepare_sources" diff --git a/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb b/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb new file mode 100644 index 0000000000..74f80e1844 --- /dev/null +++ b/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb @@ -0,0 +1,40 @@ +SUMMARY = "Exports your X session or FrameBuffer(fbdev) on-the-fly via VNC" +HOMEPAGE = "http://www.karlrunge.com/x11vnc/" + +SECTION = "x11/utils" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://src/x11vnc.h;endline=31;md5=e871a2ad004776794b616822dcab6314" + +SRCREV = "87cd0530f438372dda3c70bb491a6fd19f09acc2" +PV .= "+git" + +SRC_URI = "git://github.com/LibVNC/x11vnc;branch=master;protocol=https \ + file://starting-fix.patch \ + file://CVE-2020-29074.patch \ + " +S = "${WORKDIR}/git" + +DEPENDS = "\ + jpeg \ + libtasn1 \ + libvncserver \ + openssl \ + p11-kit \ + zlib \ +" + +inherit pkgconfig autotools features_check + +ANY_OF_DISTRO_FEATURES = "x11 fbdev" + +PACKAGECONFIG ??= "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \ +" + +PACKAGECONFIG[avahi] = "--with-avahi,--without-avahi,avahi" +PACKAGECONFIG[xinerama] = "--with-xinerama,--without-xinerama,libxinerama" +PACKAGECONFIG[x11] = "--with-x,--without-x, libxdamage libxext libxfixes libxrandr libxtst virtual/libx11" + +RRECOMMENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'fbdev', 'kernel-module-uinput', '', d)}" diff --git a/meta-oe/recipes-graphics/xbindkeys/xbindkeys_1.8.7.bb b/meta-oe/recipes-graphics/xbindkeys/xbindkeys_1.8.7.bb new file mode 100644 index 0000000000..0c316edf95 --- /dev/null +++ b/meta-oe/recipes-graphics/xbindkeys/xbindkeys_1.8.7.bb @@ -0,0 +1,18 @@ +SUMMARY = "xbindkeys - Tool for launching commands on keystrokes" +HOMEPAGE = "http://www.nongnu.org/xbindkeys/xbindkeys.html" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=7d715d0b23c4bd9265b7435f546e9fe8" +SECTION = "x11" + +DEPENDS = "virtual/libx11" + +inherit features_check autotools + +# depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "http://www.nongnu.org/xbindkeys/xbindkeys-${PV}.tar.gz" +SRC_URI[md5sum] = "b5e1a9668ba13ff8673836d1d965d951" +SRC_URI[sha256sum] = "a29b86a8ec91d4abc83b420e547da27470847d0efe808aa6e75147aa0adb82f2" + +EXTRA_OECONF = "--disable-guile" diff --git a/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb b/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.8.bb index a21dc42a9b..3770babe80 100644 --- a/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb +++ b/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.8.bb @@ -3,11 +3,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=bd1fb9ee90eead85f7b171807b3ab4f2" DEPENDS = "libpng libxcursor" -SRC_URI = "http://xorg.freedesktop.org/archive/individual/app/${BPN}-${PV}.tar.bz2" -SRC_URI[md5sum] = "09f56978a62854534deacc8aa8ff3031" -SRC_URI[sha256sum] = "bc7171a0fa212da866fca2301241630e2009aea8c4ddb75f21b51a31c2e4c581" +SRC_URI = "http://xorg.freedesktop.org/archive/individual/app/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "32b33ce27b4e285e64ff375731806bb7988cc626ff10915c65f1dc4da640cc9b" -inherit distro_features_check autotools pkgconfig +inherit features_check autotools pkgconfig REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb b/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb deleted file mode 100644 index b68e994ab2..0000000000 --- a/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "xdotool - command-line X11 automation tool - utilising X11 XTEST interface" -HOMEPAGE = "http://www.semicomplete.com/projects/xdotool" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=2f9cbf7e9401cec8a38666a08851ce6b" -SECTION = "x11" -DEPENDS = "virtual/libx11 libxtst" - -PR = "r1" - -inherit distro_features_check pkgconfig -# depends on virtual/libx11 -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "http://semicomplete.googlecode.com/files/xdotool-${PV}.tar.gz" -SRC_URI[md5sum] = "1d5be641e512c343abfe5f78b39e6f19" -SRC_URI[sha256sum] = "42d7271fbc796e53db71bb221f311b9ff3c51d90a71c9487a9bd3101ca39894f" - -EXTRA_OEMAKE = "PREFIX=${prefix} INSTALLLIB=${libdir} INSTALLMAN=${mandir}" - -do_install() { - oe_runmake -e install DESTDIR=${D} PREFIX=${prefix} -} - diff --git a/meta-oe/recipes-graphics/xdotool/xdotool_3.20211022.1.bb b/meta-oe/recipes-graphics/xdotool/xdotool_3.20211022.1.bb new file mode 100644 index 0000000000..cef82bd348 --- /dev/null +++ b/meta-oe/recipes-graphics/xdotool/xdotool_3.20211022.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "xdotool - command-line X11 automation tool - utilising X11 XTEST interface" +HOMEPAGE = "https://github.com/jordansissel/xdotool" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=2f9cbf7e9401cec8a38666a08851ce6b" +SECTION = "x11" +DEPENDS = "virtual/libx11 libxtst libxinerama libxkbcommon" + +inherit features_check pkgconfig perlnative +# depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "https://github.com/jordansissel/${BPN}/releases/download/v${PV}/${BP}.tar.gz" +SRC_URI[sha256sum] = "96f0facfde6d78eacad35b91b0f46fecd0b35e474c03e00e30da3fdd345f9ada" + +EXTRA_OEMAKE = "PREFIX=${prefix} INSTALLLIB=${libdir} INSTALLMAN=${mandir}" + +do_install() { + oe_runmake install DESTDIR=${D} PREFIX=${prefix} +} diff --git a/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.bb b/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.10.bb index f40dec8846..7d025de4c4 100644 --- a/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.bb +++ b/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.10.bb @@ -11,6 +11,6 @@ BBCLASSEXTEND = "native" DEPENDS += "libice" -SRC_URI[md5sum] = "25dab02f8e40d5b71ce29a07dc901b8c" -SRC_URI[sha256sum] = "1216af2dee99b318fcf8bf9a259915273bcb37a7f1e7859af4f15d0ebf6f3f0a" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "3deefb7da26af9dc799b5628d929d91c9af68c78575639944db3b955f29aa029" diff --git a/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch b/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch index 207285373c..bfda2dfe71 100644 --- a/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch +++ b/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch @@ -6,9 +6,9 @@ Subject: [PATCH] Makefile.am: Error Fix Do not compile man dir since error always occur. | sed: file filenames.sed line 3: unterminated `s' command | make[2]: *** [sessreg.1] Error 1 -It is not a good way.But can remove it from PNBLACKLIST. +It is not a good way.But can remove it from SKIP_RECIPE. -Upstream-Status: pending +Upstream-Status: Pending Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> --- diff --git a/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.bb b/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.3.bb index d2afa78f97..33ab22cde4 100644 --- a/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.bb +++ b/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.3.bb @@ -4,8 +4,8 @@ SUMMARY = "a simple program for managing utmp/wtmp entries" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=d938a70c8280c265a1ccd2954365d185" SRC_URI += "file://0001-Makefile.am-Error-Fix.patch" -SRC_URI[md5sum] = "e475167a892b589da23edf8edf8c942d" -SRC_URI[sha256sum] = "78a76ae3f3f6a26547a34630d1b740f42344848b5fb6d7c9c7f7da255e35a6e1" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "022acd5de8077dddc4f919961f79e102ecd5f3228a333681af5cd0e7344facc2" -CFLAGS_append_libc-musl = " -D_WTMPX_FILE=WTMP_FILE -D_PATH_WTMPX=_PATH_WTMP -D_UTMPX_FILE=UTMP_FILE -D_PATH_UTMPX=_PATH_UTMP " +CFLAGS:append:libc-musl = " -D_WTMPX_FILE=WTMP_FILE -D_PATH_WTMPX=_PATH_WTMP -D_UTMPX_FILE=UTMP_FILE -D_PATH_UTMPX=_PATH_UTMP " diff --git a/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb b/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.4.bb index 840275387f..9c522d6ae1 100644 --- a/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb +++ b/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.4.bb @@ -11,9 +11,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5feafdbe6dfe9e2bd32325be0cfc86f8" PE = "1" -DEPENDS += "libxkbfile" +DEPENDS += "libxkbfile xrandr" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "2c47a1b8e268df73963c4eb2316b1a89" -SRC_URI[sha256sum] = "a9ddb3963f263ba13f0ea105d8c45a531832140530217cc559587bb94f02d3e1" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "be8d8554d40e981d1b93b5ff82497c9ad2259f59f675b38f1b5e84624c07fade" diff --git a/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb b/meta-oe/recipes-graphics/xorg-app/twm_1.0.12.bb index 41c804bb34..91b1abc211 100644 --- a/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb +++ b/meta-oe/recipes-graphics/xorg-app/twm_1.0.12.bb @@ -5,10 +5,10 @@ DEPENDS += " libxext libxt libxmu bison-native" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=4c6d42ef60e8166aa26606524c0b9586" -SRC_URI[md5sum] = "59a6f076cdacb5f6945dac809bcf4906" -SRC_URI[sha256sum] = "c575167ac33edf3bd1592f1bedfe0559debb128ed5fb4873c1278e3be166310a" +SRC_URI = "${XORG_MIRROR}/individual/app/${BPN}-${PV}.tar.gz" +SRC_URI[sha256sum] = "4150c9ec595520167ab8c4efcb5cf82641a4c4db78ce0a1cb4834e6aeb7c87fb" -FILES_${PN} += "${datadir}/X11/twm/system.twmrc" +FILES:${PN} += "${datadir}/X11/twm/system.twmrc" ALTERNATIVE_NAME = "x-window-manager" ALTERNATIVE_PATH = "${bindir}/twm" ALTERNATIVE_LINK = "${bindir}/x-window-manager" diff --git a/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xclock_1.1.1.bb index cf970d5d6c..a7360b6496 100644 --- a/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb +++ b/meta-oe/recipes-graphics/xorg-app/xclock_1.1.1.bb @@ -6,6 +6,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=857759ade8f2ddde5c7b32ef7356ea36" DEPENDS += " libxaw libxrender libxft libxkbfile libxt" -SRC_URI[md5sum] = "eaf124bbc9d13e1a12a29faaa2ed3612" -SRC_URI[sha256sum] = "53a9169e24f3814fbfcfee3ca0b98637840a3156ed7c7e36ae03940fabae4c9a" - +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "df7ceabf8f07044a2fde4924d794554996811640a45de40cb12c2cf1f90f742c" diff --git a/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xfontsel_1.1.0.bb index c74b291946..4c31d0b77a 100644 --- a/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb +++ b/meta-oe/recipes-graphics/xorg-app/xfontsel_1.1.0.bb @@ -9,5 +9,5 @@ DEPENDS += " libxaw" LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3" -SRC_URI[md5sum] = "a40302b88c599b63e3d3d412e02871e6" -SRC_URI[sha256sum] = "170d8550b96fb47b04db6181b947e6f6b8b97f4df5d691c351a278480cc931bf" +SRC_URI[sha256sum] = "17052c3357bbfe44b8468675ae3d099c2427ba9fcac10540aef524ae4d77d1b4" +SRC_URI_EXT = "xz" diff --git a/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.6.bb b/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.7.bb index 4949616ddc..dc9cbadb4c 100644 --- a/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.6.bb +++ b/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.7.bb @@ -11,5 +11,5 @@ DEPENDS += "libxxf86vm" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "90b4305157c2b966d5180e2ee61262be" -SRC_URI[sha256sum] = "0ef1c35b5c18b1b22317f455c8df13c0a471a8efad63c89c98ae3ce8c2b222d3" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "1c79dae85a8953a15f4fe5c2895a033307b43b8613456c87ec47b374b113bc8f" diff --git a/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb b/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.5.bb index a6fc9e7551..afc1fe17d5 100644 --- a/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb +++ b/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.5.bb @@ -5,9 +5,9 @@ events and executes requested commands if they occur. " LIC_FILES_CHKSUM = "file://COPYING;md5=208668fa9004709ba22c2b748140956c" -DEPENDS += "libxkbfile" +DEPENDS += "libxkbfile bison-native" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "c747faf1f78f5a5962419f8bdd066501" -SRC_URI[sha256sum] = "2430a2e5302a4cb4a5530c1df8cb3721a149bbf8eb377a2898921a145197f96a" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "38357b702de9d3457c4ff75053390f457b84c4accc7f088101255c37c684926b" diff --git a/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb b/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.6.bb index 26977bea55..e866bed016 100644 --- a/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb +++ b/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.6.bb @@ -9,5 +9,5 @@ DEPENDS += "libxkbfile" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "3c25b40de530112c08bf7d229c5c6a28" -SRC_URI[sha256sum] = "0b3faab8fefad03dfb7e866f634cf859822801de6b5fc6cf5e0a62857ed93e12" +SRC_URI[sha256sum] = "99cc9404f7b90289ae04944c0d98a208cc8b158492ad6481386e31d4d09aa7b0" +SRC_URI_EXT = "xz" diff --git a/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.4.bb b/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.6.bb index 6a05e98e32..0274608d05 100644 --- a/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.4.bb +++ b/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.6.bb @@ -9,11 +9,9 @@ It includes: \ xkbvleds - display the state of LEDs on an XKB keyboard in a window \ xkbwatch - reports changes in the XKB keyboard state \ " -LIC_FILES_CHKSUM = "file://COPYING;md5=64322fab5239f5c8d97cf6e0e14f1c62" +LIC_FILES_CHKSUM = "file://COPYING;md5=6767a97a97e21260134637b657b922ae" DEPENDS += "libxaw libxkbfile" -BBCLASSEXTEND = "native" - -SRC_URI[md5sum] = "502b14843f610af977dffc6cbf2102d5" -SRC_URI[sha256sum] = "d2a18ab90275e8bca028773c44264d2266dab70853db4321bdbc18da75148130" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "31a2bbee1e09ccba01de92897b8f540b545de812f318d31de07bd3a5a75ee25e" diff --git a/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.2.bb b/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.4.bb index 723d4e2112..ad06612d5e 100644 --- a/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.2.bb +++ b/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.4.bb @@ -10,5 +10,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=2b08d9e2e718ac83e6fe2b974d4b5fd8" DEPENDS += "libxmu" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "5dcb6e6c4b28c8d7aeb45257f5a72a7d" -SRC_URI[sha256sum] = "47e5dc7c3dbda6db2cf8c00cedac1722835c1550aa21cfdbc9ba83906694dea4" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "f4bfa15f56c066d326a5d5b292646708f25b9247506840b9047cd2687dcc71b7" diff --git a/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.3.bb b/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.5.bb index 583a531baf..d73a27f971 100644 --- a/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.3.bb +++ b/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.5.bb @@ -10,5 +10,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=350e1b718a56df39cfe8ca9345ea4575" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "9fbf6b174a5138a61738a42e707ad8f5" -SRC_URI[sha256sum] = "5d9666fcc6c3de210fc70d5a841a404955af709a616fde530fe4e8f7723e3d3d" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "68baee57e70250ac4a7759fb78221831f97d88bc8e51dcc2e64eb3f8ca56bae3" diff --git a/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.8.bb index 9feed754de..4ddb1b9887 100644 --- a/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.5.bb +++ b/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.8.bb @@ -6,5 +6,5 @@ SECTION = "x11/app" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b" -SRC_URI[md5sum] = "6f5711bef8c765857a0887a91476283b" -SRC_URI[sha256sum] = "40295bec35077cee93be2e4c26cc00268ed6ace779ae6e97766a866c1e3927fa" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "807f909eace684b866fc63b3e962729c120822a6c96e051ff51cf350b3ffb6cd" diff --git a/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xmag_1.0.7.bb index d577421803..f3dac53451 100644 --- a/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb +++ b/meta-oe/recipes-graphics/xorg-app/xmag_1.0.7.bb @@ -7,5 +7,5 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=3413fe6832380b44b69b172d2d1b2387" DEPENDS += " libxaw libxt" -SRC_URI[md5sum] = "280b81cb09d1903aa868a058d90128ad" -SRC_URI[sha256sum] = "4ace8795cf756be4ba387f30366045594ce26adda2f5ffe1f8e896825d0932c6" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "009936cc5a2706084079127b26cf55c713767650a34cb69e5682d60e33ce7461" diff --git a/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb b/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.7.bb index 9960706d0c..6682784fbf 100644 --- a/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb +++ b/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.7.bb @@ -6,5 +6,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=73c7f696a728de728d7446cbca814cc5" DEPENDS += "libxaw" -SRC_URI[md5sum] = "2dd5ae46fa18abc9331bc26250a25005" -SRC_URI[sha256sum] = "bcdf4b461c439bb3ade6e1e41c47d6218b912da8e9396b7ad70856db2f95ab68" +SRC_URI[sha256sum] = "703fccb7a0b772d61d7e603c189b9739866aa97ba985c727275420f829a30356" +SRC_URI_EXT = "xz" diff --git a/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb b/meta-oe/recipes-graphics/xorg-app/xrdb_1.2.2.bb index 85957e056f..53214c8fe8 100644 --- a/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb +++ b/meta-oe/recipes-graphics/xorg-app/xrdb_1.2.2.bb @@ -5,5 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d1167c4f586bd41f0c62166db4384a69" DEPENDS += "libxmu" -SRC_URI[md5sum] = "b54c7e3e53b4f332d41ed435433fbda0" -SRC_URI[sha256sum] = "73827b6bbfc9d27ca287d95a1224c306d7053cd7b8156641698d7dc541ca565b" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "31f5fcab231b38f255b00b066cf7ea3b496df712c9eb2d0d50c670b63e5033f4" + +EXTRA_OECONF += "--with-cpp=${bindir}/cpp" diff --git a/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xrefresh_1.1.0.bb index a2a4941e96..12d05b1307 100644 --- a/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.5.bb +++ b/meta-oe/recipes-graphics/xorg-app/xrefresh_1.1.0.bb @@ -9,5 +9,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=dad633bce9c3cd0e3abf72a16e0057cf" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "a896382bc53ef3e149eaf9b13bc81d42" -SRC_URI[sha256sum] = "3213671b0a8a9d1e8d1d5d9e3fd86842c894dd9acc1be2560eda50bc1fb791d6" +SRC_URI[sha256sum] = "29ed592d5ece35a3029004d8c46f3002f92970870a96c11e38baf7f1122b8b5f" +SRC_URI_EXT = "xz" diff --git a/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb b/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb deleted file mode 100644 index b757329d94..0000000000 --- a/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -require recipes-graphics/xorg-app/xorg-app-common.inc - -SUMMARY = "X.Org X11 X client utilities" -HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xsetmode/" -DESCRIPTION = "xsetmode sets the mode of an XInput device to either absolute \ -or relative." -SECTION = "x11/app" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=9b37e00e7793b667cbc64f9df7b6d733" - -DEPENDS += "libxi" -BBCLASSEXTEND = "native" - -SRC_URI[md5sum] = "d074e79d380b031d2f60e4cd56538c93" -SRC_URI[sha256sum] = "988b47cd922991c6e6adbce15dc386ac75690b61744b526c3af5a4eaa9afa0aa" diff --git a/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.1.bb b/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.3.bb index 2c79f27ca4..7e909f90cf 100644 --- a/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.1.bb +++ b/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.3.bb @@ -7,8 +7,7 @@ SECTION = "x11/app" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=6ea29dbee22324787c061f039e0529de" -DEPENDS += "xbitmaps libxcursor" -BBCLASSEXTEND = "native" +DEPENDS += "xbitmaps libxcursor libxmu" -SRC_URI[md5sum] = "7211b31ec70631829ebae9460999aa0b" -SRC_URI[sha256sum] = "ba215daaa78c415fce11b9e58c365d03bb602eaa5ea916578d76861a468cc3d9" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "6081b45a9eb4426e045d259d1e144b32417fb635e5b96aa90647365ac96638d1" diff --git a/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.3.bb b/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.5.bb index 99f70364ba..7d3aab501c 100644 --- a/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.3.bb +++ b/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.5.bb @@ -11,6 +11,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=2b08d9e2e718ac83e6fe2b974d4b5fd8" DEPENDS += "libxmu" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "eb5473acaef15a5db9b50df29c6a7f90" -SRC_URI[sha256sum] = "f648e2b0cf16aa29856de998e2c7204be39dc1f8daeda9464d32288e0b580fc1" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "365847e379398499ec9ad9a299cc47a0d6e7feba9546dfd4e5b422204b5ac180" diff --git a/meta-oe/recipes-graphics/xorg-app/xterm/0001-include-missing-pty.h-header-for-openpty.patch b/meta-oe/recipes-graphics/xorg-app/xterm/0001-include-missing-pty.h-header-for-openpty.patch new file mode 100644 index 0000000000..0c9d64c82c --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-app/xterm/0001-include-missing-pty.h-header-for-openpty.patch @@ -0,0 +1,30 @@ +From e30ab2d73a21bc55511cbedbb9ae603246dbfcd1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 16 May 2024 23:10:00 -0700 +Subject: [PATCH] include missing pty.h header for openpty() + +On musl this problem is unearthed + +Fix +./main.c: In function 'get_pty': +./main.c:3123:14: error: implicit declaration of function 'openpty'; did you mean 'openat'? [-Wimplicit-function-declaration] + 3123 | result = openpty(pty, &opened_tty, ttydev, NULL, NULL); + | ^~~~~~~ + | openat + +Upstream-Status: Submitted [sent to dickey@invisible-island.net] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + main.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/main.c ++++ b/main.c +@@ -89,6 +89,7 @@ + + #define RES_OFFSET(field) XtOffsetOf(XTERM_RESOURCE, field) + ++#include <pty.h> + #include <xterm.h> + #include <version.h> + #include <graphics.h> diff --git a/meta-oe/recipes-graphics/xorg-app/xterm_330.bb b/meta-oe/recipes-graphics/xorg-app/xterm_330.bb deleted file mode 100644 index 16f9b78824..0000000000 --- a/meta-oe/recipes-graphics/xorg-app/xterm_330.bb +++ /dev/null @@ -1,34 +0,0 @@ -require recipes-graphics/xorg-app/xorg-app-common.inc -SUMMARY = "xterm is the standard terminal emulator for the X Window System" -DEPENDS = "libxaw xproto xextproto libxext libxau libxinerama libxpm ncurses" - -LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=f02ab9ebda87b770ecf711dbb3784a33" - -SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz" - -SRC_URI[md5sum] = "9a6db7974aa4ccbb50eabebf72618467" -SRC_URI[sha256sum] = "7aeef9f29f6b95e09f481173c8c3053357bf5ffe162585647f690fd1707556df" -PACKAGECONFIG ?= "" -PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native" - -EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \ - --x-libraries=${STAGING_LIBDIR} \ - FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \ - --disable-imake \ - --disable-rpath-hack \ - --disable-setuid" - -B = "${S}" - -do_configure() { - gnu-configize --force - sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure - oe_runconf -} - -FILES_${PN} += "/usr/lib/X11" - -# busybox can supply resize too -inherit update-alternatives - -ALTERNATIVE_${PN} = "resize" diff --git a/meta-oe/recipes-graphics/xorg-app/xterm_392.bb b/meta-oe/recipes-graphics/xorg-app/xterm_392.bb new file mode 100644 index 0000000000..677f5c9994 --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-app/xterm_392.bb @@ -0,0 +1,49 @@ +require recipes-graphics/xorg-app/xorg-app-common.inc +SUMMARY = "xterm is the standard terminal emulator for the X Window System" +DEPENDS = "libxaw xorgproto libxext libxau libxinerama libxpm ncurses desktop-file-utils-native" + +LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=1a3032aa728f8fda9d686948940ca58d" + +SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \ + file://0001-include-missing-pty.h-header-for-openpty.patch \ + " +SRC_URI[sha256sum] = "4d57372ef08eafa9fb7682db8d07be0fe0513e58e8478c2ec8e9b62486e7fe5e" + +PACKAGECONFIG ?= "" +PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native" + +# Let xterm install .desktop files +inherit mime-xdg + +EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \ + --x-libraries=${STAGING_LIBDIR} \ + FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \ + --disable-imake \ + --disable-rpath-hack \ + --disable-setuid \ + --with-app-defaults=${datadir}/X11/app-defaults \ + " + +B = "${S}" + +CFLAGS += "-D_GNU_SOURCE" + +do_configure() { + gnu-configize --force + sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure + oe_runconf +} + +do_install:append() { + oe_runmake install-desktop DESTDIR="${D}" DESKTOP_FLAGS="--dir=${D}${DESKTOPDIR}" +} + +RPROVIDES:${PN} = "virtual-x-terminal-emulator" + +# busybox can supply resize too +inherit update-alternatives + +ALTERNATIVE:${PN} = "resize x-terminal-emulator" +ALTERNATIVE_TARGET[x-terminal-emulator] = "${bindir}/xterm" +# rxvt-unicode defaults to priority 10. Let's be one point lower to let it override xterm. +ALTERNATIVE_PRIORITY[x-terminal-emulator] = "9" diff --git a/meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb b/meta-oe/recipes-graphics/xorg-app/xwd_1.0.9.bb index 694bf57ace..4a05a4437a 100644 --- a/meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb +++ b/meta-oe/recipes-graphics/xorg-app/xwd_1.0.9.bb @@ -7,5 +7,5 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=c0cdb783e9a0198237371fdaa26a18bf" DEPENDS = "libxmu libxkbfile" -SRC_URI[md5sum] = "6b5d48464c5f366e91efd08b62b12d94" -SRC_URI[sha256sum] = "3bb396a2268d78de4b1c3e5237a85f7849d3434e87b3cd1f4d57eef614227d79" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "dc121b84947eb4a3d1131bff1e9844cfa2124d95b47b35f9932340fa931fbd3f" diff --git a/meta-oe/recipes-graphics/xorg-app/xwud_1.0.4.bb b/meta-oe/recipes-graphics/xorg-app/xwud_1.0.6.bb index 33bd7f03f6..1be0b5cd77 100644 --- a/meta-oe/recipes-graphics/xorg-app/xwud_1.0.4.bb +++ b/meta-oe/recipes-graphics/xorg-app/xwud_1.0.6.bb @@ -8,5 +8,5 @@ SECTION = "x11/app" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=31e8892c80b7a0c1c5f37c8e8ae6d794" -SRC_URI[md5sum] = "3025b152b4f13fdffd0c46d0be587be6" -SRC_URI[sha256sum] = "d6b3a09ccfe750868e26bd2384900ab5ff0d434f7f40cd272a50eda8aaa1f8bd" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "64048cd15eba3cd9a3d2e3280650391259ebf6b529f2101d1a20f441038c1afe" diff --git a/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.bb b/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.bb deleted file mode 100644 index 8647f038e0..0000000000 --- a/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.bb +++ /dev/null @@ -1,11 +0,0 @@ -require xorg-data-common.inc - -SUMMARY = "Common X11 Bitmaps" -LICENSE = "MIT" -DEPENDS += "libxmu" -RDEPENDS_${PN}-dev = "" - -LIC_FILES_CHKSUM = "file://COPYING;md5=dbd075aaffa4a60a8d00696f2e4b9a8f" - -SRC_URI[md5sum] = "7444bbbd999b53bec6a60608a5301f4c" -SRC_URI[sha256sum] = "3671b034356bbc4d32d052808cf646c940ec8b2d1913adac51b1453e41aa1e9d" diff --git a/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.3.bb b/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.3.bb new file mode 100644 index 0000000000..5f49152972 --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.3.bb @@ -0,0 +1,7 @@ +require xorg-data-common.inc + +SUMMARY = "Common X11 Bitmaps" + +LIC_FILES_CHKSUM = "file://COPYING;md5=dbd075aaffa4a60a8d00696f2e4b9a8f" + +SRC_URI[sha256sum] = "ad6cad54887832a17d86c2ccfc5e52a1dfab090f8307b152c78b0e1529cd0f7a" diff --git a/meta-oe/recipes-graphics/xorg-data/xcursor-themes_1.0.7.bb b/meta-oe/recipes-graphics/xorg-data/xcursor-themes_1.0.7.bb new file mode 100644 index 0000000000..9ebd2d12fd --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-data/xcursor-themes_1.0.7.bb @@ -0,0 +1,11 @@ +require xorg-data-common.inc + +SUMMARY = "Default set of cursor themes for use with libXcursor" + +DEPENDS:append = " libxcursor xcursorgen-native" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8" + +SRC_URI[sha256sum] = "95bae8f48823d894a05bf42dfbf453674ab7dbdeb11e2bc079e8525ad47378c8" + +FILES:${PN} += "${datadir}/icons" diff --git a/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc b/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc index cb6b5ac773..17fe00a9b8 100644 --- a/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc +++ b/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc @@ -1,12 +1,12 @@ HOMEPAGE = "http://www.x.org" SECTION = "x11/data" -LICENSE = "MIT-X" +LICENSE = "MIT" -XORG_PN = "${BPN}" +DEPENDS = "util-macros-native virtual/libx11" -SRC_URI = "${XORG_MIRROR}/individual/data/${BP}.tar.bz2" -S = "${WORKDIR}/${XORG_PN}-${PV}" +SRC_URI_EXT = "xz" +SRC_URI = "${XORG_MIRROR}/individual/data/${BP}.tar.${SRC_URI_EXT}" -inherit distro_features_check autotools pkgconfig +inherit features_check autotools pkgconfig REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc b/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc index f4b8b00de5..042db48acb 100644 --- a/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc +++ b/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc @@ -1,12 +1,13 @@ DESCRIPTION = "X documentation" HOMEPAGE = "http://www.x.org" SECTION = "x11/docs" -LICENSE = "MIT-X" +LICENSE = "MIT" -SRC_URI = "${XORG_MIRROR}/individual/doc/${BPN}-${PV}.tar.bz2" +DEPENDS = "util-macros-native" -S = "${WORKDIR}/${BPN}-${PV}" - -INC_PR = "r1" +SRC_URI_EXT = "bz2" +SRC_URI = "${XORG_MIRROR}/individual/doc/${BPN}-${PV}.tar.${SRC_URI_EXT}" inherit autotools pkgconfig + + diff --git a/meta-oe/recipes-graphics/xorg-doc/xorg-docs_1.7.2.bb b/meta-oe/recipes-graphics/xorg-doc/xorg-docs_1.7.2.bb new file mode 100644 index 0000000000..4cef981bc8 --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-doc/xorg-docs_1.7.2.bb @@ -0,0 +1,7 @@ +require xorg-doc-common.inc + +SUMMARY = "Documentation for the X Window System" + +LIC_FILES_CHKSUM = "file://general/License.xml;md5=f2677c20a4066714e233e9bbd8659aa2" + +SRC_URI[sha256sum] = "2391b8af472626c12d3c3814b5e7a0ea43c3a96eda94255b7ed8bdff0fbf08e3" diff --git a/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.12.bb b/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.12.bb new file mode 100644 index 0000000000..21a0ed74fa --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.12.bb @@ -0,0 +1,11 @@ +require xorg-doc-common.inc + +PE = "1" + +SUMMARY = "SGML entities and XML/CSS stylesheets used in X.Org docs" + +LIC_FILES_CHKSUM = "file://COPYING;md5=c8c6c808cd3c797a07b24e443af1c449" + +SRC_URI[sha256sum] = "65a9fdddedc17bd5e9c0b00d904960f03f047c3a62de5458989d493c29fec806" + +FILES:${PN} += "${datadir}/sgml/X11" diff --git a/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb b/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb deleted file mode 100644 index 80f1f008b5..0000000000 --- a/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb +++ /dev/null @@ -1,12 +0,0 @@ -require xorg-doc-common.inc -PE = "1" -PR = "${INC_PR}.0" - -DEPENDS += "util-macros" - -LIC_FILES_CHKSUM = "file://COPYING;md5=c8c6c808cd3c797a07b24e443af1c449" - -SRC_URI[md5sum] = "2588efb3f49f7fc6ecf41ce42e0b2e5e" -SRC_URI[sha256sum] = "84fd94e5c50556e6f77501485f8a48724cf3c95c6d58480bc280258ba14580c8" - -FILES_${PN} += " /usr/share/sgml/X11" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi deleted file mode 100644 index 906043947e..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<deviceinfo version="0.2"> - <device> - <match key="info.capabilities" contains="input.touchpad"> - <merge key="input.x11_driver" type="string">tslib</merge> - </match> - <match key="info.capabilities" contains="input.touchscreen"> - <merge key="input.x11_driver" type="string">tslib</merge> - </match> - </device> -</deviceinfo> diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch deleted file mode 100644 index 07754731dd..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch +++ /dev/null @@ -1,20 +0,0 @@ -xorg-server-1.7.3/hw/xfree86/common/xf86Helper.c contains this code -causing a double free crash on chvt or exit: - - /* This should *really* be handled in drv->UnInit(dev) call instead, but - * if the driver forgets about it make sure we free it or at least crash - * with flying colors */ - if (pInp->private) - xfree(pInp->private); -Index: xf86-input-tslib-0.0.6/src/tslib.c -=================================================================== ---- xf86-input-tslib-0.0.6.orig/src/tslib.c -+++ xf86-input-tslib-0.0.6/src/tslib.c -@@ -435,6 +435,7 @@ xf86TslibUninit(InputDriverPtr drv, Inpu - xf86TslibControlProc(pInfo->dev, DEVICE_OFF); - ts_close(priv->ts); - xfree(pInfo->private); -+ pInfo->private = NULL; - xf86DeleteInput(pInfo, 0); - } - diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch deleted file mode 100644 index d16b4a53cb..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch +++ /dev/null @@ -1,31 +0,0 @@ -Fixes crash when a touchscreen event is received with xserver 1.12 and later: -X: symbol lookup error: /usr/lib/xorg/modules/input/tslib_drv.so: undefined symbol: xf86XInputSetScreen - -Upstream-Status: Pending - -Taken from Gentoo: -https://bugs.gentoo.org/show_bug.cgi?id=446432 - -diff -ur xf86-input-tslib-0.0.6.orig/src/tslib.c xf86-input-tslib-0.0.6/src/tslib.c ---- xf86-input-tslib-0.0.6.orig/src/tslib.c 2012-12-05 01:12:16.286597071 +0100 -+++ xf86-input-tslib-0.0.6/src/tslib.c 2012-12-05 01:11:02.686598595 +0100 -@@ -75,6 +75,19 @@ - #define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options)) - #endif - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) > 13 -+static void -+xf86XInputSetScreen(InputInfoPtr pInfo, -+ int screen_number, -+ int x, -+ int y) -+{ -+ if (miPointerGetScreen(pInfo->dev) != -+ screenInfo.screens[screen_number]) { -+ miPointerSetScreen(pInfo->dev, screen_number, x, y); -+ } -+} -+#endif - - enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 }; - diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch deleted file mode 100644 index 6a6d5b92c6..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch +++ /dev/null @@ -1,196 +0,0 @@ -Upstream-Status: Pending - -Taken from debian: -http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=627075 - -Index: xf86-input-tslib-trunk/src/tslib.c -=================================================================== ---- xf86-input-tslib-trunk/src/tslib.c (revision 48) -+++ xf86-input-tslib-trunk/src/tslib.c (working copy) -@@ -69,6 +69,13 @@ - #define DEFAULT_HEIGHT 240 - #define DEFAULT_WIDTH 320 - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 -+#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options), NULL) -+#else -+#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options)) -+#endif -+ -+ - enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 }; - - enum button_state { BUTTON_NOT_PRESSED = 0, BUTTON_1_PRESSED = 1, BUTTON_3_CLICK = 3, BUTTON_3_CLICKED=4, BUTTON_EMULATION_OFF=-1 }; -@@ -106,7 +113,7 @@ - } - - static Bool --ConvertProc( LocalDevicePtr local, -+ConvertProc( InputInfoPtr local, - int first, - int num, - int v0, -@@ -135,7 +142,7 @@ - return t; - } - --static void ReadInput (LocalDevicePtr local) -+static void ReadInput (InputInfoPtr local) - { - struct ts_priv *priv = (struct ts_priv *) (local->private); - struct ts_sample samp; -@@ -382,7 +389,11 @@ - axiswidth - 1, /* max val */ - axiswidth, /* resolution */ - 0, /* min_res */ -- axiswidth); /* max_res */ -+ axiswidth /* max_res */ -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12 -+ ,Absolute -+#endif -+ ); - - InitValuatorAxisStruct(device, 1, - #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 -@@ -392,7 +403,11 @@ - axisheight - 1, /* max val */ - axisheight, /* resolution */ - 0, /* min_res */ -- axisheight); /* max_res */ -+ axisheight /* max_res */ -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12 -+ ,Absolute -+#endif -+ ); - - if (InitProximityClassDeviceStruct (device) == FALSE) { - ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n"); -@@ -434,7 +449,7 @@ - ErrorF("%s\n", __FUNCTION__); - xf86TslibControlProc(pInfo->dev, DEVICE_OFF); - ts_close(priv->ts); -- xfree(pInfo->private); -+ free(pInfo->private); - pInfo->private = NULL; - xf86DeleteInput(pInfo, 0); - } -@@ -444,47 +459,57 @@ - * - * called when the module subsection is found in XF86Config - */ -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12 -+static int -+xf86TslibInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) -+#else - static InputInfoPtr - xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags) -+#endif - { - struct ts_priv *priv; - char *s; -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - InputInfoPtr pInfo; -+#endif - -- priv = xcalloc (1, sizeof (struct ts_priv)); -+ priv = calloc (1, sizeof (struct ts_priv)); - if (!priv) -- return NULL; -+ return BadValue; - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - if (!(pInfo = xf86AllocateInput(drv, 0))) { -- xfree(priv); -- return NULL; -+ free(priv); -+ return BadValue; - } - - /* Initialise the InputInfoRec. */ - pInfo->name = dev->identifier; -- pInfo->type_name = XI_TOUCHSCREEN; - pInfo->flags = - XI86_KEYBOARD_CAPABLE | XI86_POINTER_CAPABLE | - XI86_SEND_DRAG_EVENTS; -- pInfo->device_control = xf86TslibControlProc; -- pInfo->read_input = ReadInput; - #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0 - pInfo->motion_history_proc = xf86GetMotionEvents; - pInfo->history_size = 0; - #endif -- pInfo->control_proc = NULL; -+ pInfo->conf_idev = dev; - pInfo->close_proc = NULL; -- pInfo->switch_mode = NULL; - pInfo->conversion_proc = ConvertProc; - pInfo->reverse_conversion_proc = NULL; -- pInfo->dev = NULL; - pInfo->private_flags = 0; - pInfo->always_core_feedback = 0; -- pInfo->conf_idev = dev; -+#endif -+ -+ pInfo->type_name = XI_TOUCHSCREEN; -+ pInfo->control_proc = NULL; -+ pInfo->read_input = ReadInput; -+ pInfo->device_control = xf86TslibControlProc; -+ pInfo->switch_mode = NULL; - pInfo->private = priv; -+ pInfo->dev = NULL; - - /* Collect the options, and process the common options. */ -- xf86CollectInputOptions(pInfo, NULL, NULL); -+ COLLECT_INPUT_OPTIONS(pInfo, NULL); - xf86ProcessCommonOptions(pInfo, pInfo->options); - - priv->screen_num = xf86SetIntOption(pInfo->options, "ScreenNumber", 0 ); -@@ -510,23 +535,31 @@ - priv->rotate = TSLIB_ROTATE_NONE; - } - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - s = xf86CheckStrOption(dev->commonOptions, "path", NULL); -+#else -+ s = xf86CheckStrOption(pInfo->options, "path", NULL); -+#endif - if (!s) -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - s = xf86CheckStrOption(dev->commonOptions, "Device", NULL); -+#else -+ s = xf86CheckStrOption(pInfo->options, "Device", NULL); -+#endif - - priv->ts = ts_open(s, 1); -- xfree(s); -+ free(s); - - if (!priv->ts) { - ErrorF("ts_open failed (device=%s)\n",s); - xf86DeleteInput(pInfo, 0); -- return NULL; -+ return BadValue; - } - - if (ts_config(priv->ts)) { - ErrorF("ts_config failed\n"); - xf86DeleteInput(pInfo, 0); -- return NULL; -+ return BadValue; - } - - pInfo->fd = ts_fd(priv->ts); -@@ -536,11 +569,13 @@ - priv->state = BUTTON_EMULATION_OFF; - } - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - /* Mark the device configured */ - pInfo->flags |= XI86_CONFIGURED; -+#endif - - /* Return the configured device */ -- return (pInfo); -+ return Success; - } - - _X_EXPORT InputDriverRec TSLIB = { diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch deleted file mode 100644 index a1f6ba8f9e..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch +++ /dev/null @@ -1,34 +0,0 @@ -From Grazvydas Ignotas - -At least xserver 1.7.4 crashes on XGetPointerControl request because of xf86-input-tslib: - -Program received signal SIGSEGV, Segmentation fault. -#0 0x000355e0 in ProcGetPointerControl (client=0x4a2e58) at devices.c:2122 -#1 0x00062fa8 in Dispatch () at dispatch.c:439 -#2 0x00022444 in main (argc=4, argv=0xbeebedc4, envp=0xbeebedd8) at main.c:285 - -This happens because ptrfeed field is not set in device structure from tslib. -To fix this, call InitPtrFeedbackClassDeviceStruct() during DEVICE_INIT to get necessary setup done (as done in other input drivers). - ---- -diff -ur xf86-input-tslib-0.0.6/src/tslib.c xf86-input-tslib-0.0.6_/src/tslib.c ---- xf86-input-tslib-0.0.6/src/tslib.c 2010-02-09 12:23:22.000000000 +0200 -+++ xf86-input-tslib-0.0.6_/src/tslib.c 2010-02-09 12:37:33.000000000 +0200 -@@ -103,8 +103,6 @@ - static void - PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl) - { -- ErrorF("%s\n", __FUNCTION__); -- return; - } - - static Bool -@@ -406,6 +404,8 @@ - xf86MotionHistoryAllocate(pInfo); - #endif - -+ if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc)) -+ return !Success; - break; - - case DEVICE_ON: diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb deleted file mode 100644 index 6a3689a2ef..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb +++ /dev/null @@ -1,35 +0,0 @@ -require recipes-graphics/xorg-driver/xorg-driver-input.inc -SUMMARY = "X.Org X server -- tslib input driver" -DEPENDS += "tslib" -RRECOMMENDS_${PN} += "tslib-calibrate" -RSUGGESTS_${PN} += "hal" - -# derived from xf86-input-void, that's why I kept MIT-X, but it's not clear, see COPYING -LIC_FILES_CHKSUM = "file://src/tslib.c;endline=28;md5=bd62eaef222dcf5cd59e490a12bd795e \ - file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94" - -PR = "${INC_PR}.1" - -SRC_URI = "http://www.pengutronix.de/software/xf86-input-tslib/download/xf86-input-tslib-${PV}.tar.bz2 \ - file://double-free-crash.patch \ - file://10-x11-input-tslib.fdi \ - file://xserver-174-XGetPointerControl.patch \ - file://99-xf86-input-tslib.rules \ - file://xf86-input-tslib-port-ABI-12-r48.patch \ - file://xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch \ -" - -SRC_URI[md5sum] = "b7a4d2f11637ee3fcf432e044b1d017f" -SRC_URI[sha256sum] = "5f46fdef095a6e44a69e0f0b57c7d665224b26d990d006611236d8332e85b105" - -do_configure_prepend() { - rm -rf ${S}/m4/ || true -} -do_install_append() { - install -d ${D}/${datadir}/hal/fdi/policy/20thirdparty - install -m 0644 ${WORKDIR}/10-x11-input-tslib.fdi ${D}/${datadir}/hal/fdi/policy/20thirdparty - install -d ${D}${nonarch_base_libdir}/udev/rules.d - install -m 0644 ${WORKDIR}/99-xf86-input-tslib.rules ${D}${nonarch_base_libdir}/udev/rules.d/ -} - -FILES_${PN} += "${datadir}/hal ${nonarch_base_libdir}/udev" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_1.1.1.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_1.1.1.bb new file mode 100644 index 0000000000..8c26bf798c --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_1.1.1.bb @@ -0,0 +1,20 @@ +require recipes-graphics/xorg-driver/xorg-driver-input.inc + +SUMMARY = "X.Org X server -- tslib input driver" +LIC_FILES_CHKSUM = "file://COPYING;md5=f1524518264f7776a9707c19c8affbbf" + +DEPENDS += "tslib" +RRECOMMENDS:${PN} += "tslib-calibrate" + +SRC_URI = "https://github.com/merge/xf86-input-tslib/releases/download/${PV}/xf86-input-tslib-${PV}.tar.xz \ + file://99-xf86-input-tslib.rules \ +" + +SRC_URI[sha256sum] = "b596168c4ed2f1023212dc828ce49cbe82a0bbd1aac3c5e2958154d78870ca88" + +do_install:append() { + install -d ${D}${nonarch_base_libdir}/udev/rules.d + install -m 0644 ${UNPACKDIR}/99-xf86-input-tslib.rules ${D}${nonarch_base_libdir}/udev/rules.d/ +} + +FILES:${PN} += "${nonarch_base_libdir}/udev" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.2.bb index ca0b486346..7a12272491 100644 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.2.bb @@ -1,8 +1,7 @@ require recipes-graphics/xorg-driver/xorg-driver-input.inc SUMMARY = "X.Org X server -- void input driver" -PR = "${INC_PR}.0" LIC_FILES_CHKSUM = "file://COPYING;md5=4be6a915bfbf111cd88706fc6a6f141b" -SRC_URI[md5sum] = "5227013b52b3ca85d6b7ec8adea988d4" -SRC_URI[sha256sum] = "f96e4f0a622821bf43a74bd419f2a18423343996c9d243c7e1430ba2d142339c" +XORG_DRIVER_COMPRESSOR = ".tar.xz" +SRC_URI[sha256sum] = "a211d8e21ce0e2ed8af5b8a2e8d4409d70c9c7e5ee528f5e6002ad279bf07885" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-amdgpu_23.0.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-amdgpu_23.0.0.bb new file mode 100644 index 0000000000..c417e95d0a --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-amdgpu_23.0.0.bb @@ -0,0 +1,23 @@ +require recipes-graphics/xorg-driver/xorg-driver-video.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc" + +SUMMARY = "X.Org X server -- AMD Radeon GPU display driver" + +DESCRIPTION = "Xorg driver for AMD Radeon GPUs using the amdgpu kernel driver" + +SRC_URI[sha256sum] = "08c38287d39b999fd61ecb6e7b23d5079762e2b4b2179b3567973ed9aaf71222" + +XORG_DRIVER_COMPRESSOR = ".tar.gz" +DEPENDS += "virtual/libx11 libdrm virtual/libgbm xorgproto" + +REQUIRED_DISTRO_FEATURES += "opengl" + +PACKAGECONFIG ??= "udev glamor" +PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev" +PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor" + +RRECOMMENDS:${PN} += "linux-firmware-amdgpu" + +FILES:${PN}-config = "${datadir}/X11/xorg.conf.d" +FILES:${PN} += "${datadir}/X11" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb new file mode 100644 index 0000000000..8b4526fc5e --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb @@ -0,0 +1,14 @@ +require recipes-graphics/xorg-driver/xorg-driver-video.inc + +SUMMARY = "X.Org X server -- ARM SOC display driver" +LICENSE = "MIT & GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=10ce5de3b111315ea652a5f74ec0c602" + +DEPENDS += "virtual/libx11 libdrm xorgproto" + +SRCREV = "8bbdb2ae3bb8ef649999a8da33ddbe11a04763b8" +SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-armsoc;branch=master" + +S = "${WORKDIR}/git" + +RDEPENDS:${PN} += "xserver-xorg-module-exa" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_22.0.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_22.0.0.bb new file mode 100644 index 0000000000..57ea9d2d32 --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_22.0.0.bb @@ -0,0 +1,33 @@ +require recipes-graphics/xorg-driver/xorg-driver-video.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc" + +SUMMARY = "X.Org X server -- ATI Radeon video driver" + +DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics" + +DEPENDS += "virtual/libx11 libxvmc drm \ + virtual/libgl xorgproto libpciaccess" + +REQUIRED_DISTRO_FEATURES += "opengl" + +XORG_DRIVER_COMPRESSOR = ".tar.xz" +SRC_URI[sha256sum] = "c8c8bb56d3f6227c97e59c3a3c85a25133584ceb82ab5bc05a902a743ab7bf6d" + +PACKAGECONFIG ??= "udev" +PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev" +PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor" + +RDEPENDS:${PN}:append = "\ + ${@bb.utils.contains('PACKAGECONFIG', 'glamor', 'libegl', '', d)} \ + mesa-megadriver \ + xserver-xorg-extension-glx \ + xserver-xorg-module-exa \ +" + +RRECOMMENDS:${PN} += "linux-firmware-radeon" + +PACKAGES =+ "${PN}-config" + +FILES:${PN}-config = "${datadir}/X11/xorg.conf.d" +FILES:${PN} += "${datadir}/X11" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb deleted file mode 100644 index d409a18630..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb +++ /dev/null @@ -1,23 +0,0 @@ -require recipes-graphics/xorg-driver/xorg-driver-video.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc" - -SUMMARY = "X.Org X server -- ATI Radeon video driver" - -DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics" - -DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \ - virtual/libgl xineramaproto libpciaccess" - -inherit distro_features_check -REQUIRED_DISTRO_FEATURES += "opengl" - -COMPATIBLE_HOST = '(i.86|x86_64).*-linux' - -SRC_URI[md5sum] = "f34d04a755e761e03b459155fa3ddcbb" -SRC_URI[sha256sum] = "401f5de772928f3dc4ce43a885adb0a47a2f61aa4a9e45d2ab3d184136a9d6fa" - -EXTRA_OECONF += "--disable-glamor" - -RDEPENDS_${PN} += "xserver-xorg-module-exa" -RRECOMMENDS_${PN} += "linux-firmware-radeon" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga/checkfile.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga/checkfile.patch deleted file mode 100644 index ceae6dfba2..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga/checkfile.patch +++ /dev/null @@ -1,68 +0,0 @@ -Upstream-Status: Submitted [https://bugs.freedesktop.org/show_bug.cgi?id=57606] -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From c9014a8f3c9b691b5aa7b1f3ec66cf7c84b8211b Mon Sep 17 00:00:00 2001 -From: Ross Burton <ross.burton@intel.com> -Date: Thu, 29 Nov 2012 11:00:43 +0000 -Subject: [PATCH] build: dont use AC_CHECK_FILE when enabling DRI - -Automatically enabling or disabling a feature based on installed files isn't -deterministic, and AC_CHECK_FILE returns an error when cross-compiling. - -Fix this by enabling DRI by default, and removing the explicit file checks as -pkg-config is good enough. - -(#57606) - -Signed-off-by: Ross Burton <ross.burton@intel.com> ---- - configure.ac | 25 ++----------------------- - 1 file changed, 2 insertions(+), 23 deletions(-) - -diff --git a/configure.ac b/configure.ac -index fca1a9c..d2aa2ed 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -55,9 +55,9 @@ AC_ARG_WITH(xorg-module-dir, - [moduledir="$libdir/xorg/modules"]) - - AC_ARG_ENABLE(dri, AS_HELP_STRING([--disable-dri], -- [Disable DRI support [[default=auto]]]), -+ [Disable DRI support [[default=enabled]]]), - [DRI="$enableval"], -- [DRI=auto]) -+ [DRI=yes]) - AC_ARG_ENABLE(exa, - AS_HELP_STRING([--disable-exa], - [Disable EXA support [[default=enabled]]]), -@@ -76,27 +76,6 @@ sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server` - - # Checks for libraries. - --if test "x$DRI" != xno; then -- AC_CHECK_FILE([${sdkdir}/dri.h], -- [have_dri_h="yes"], [have_dri_h="no"]) -- AC_CHECK_FILE([${sdkdir}/sarea.h], -- [have_sarea_h="yes"], [have_sarea_h="no"]) -- AC_CHECK_FILE([${sdkdir}/dristruct.h], -- [have_dristruct_h="yes"], [have_dristruct_h="no"]) --fi -- --AC_MSG_CHECKING([whether to include DRI support]) --if test "x$DRI" = xauto; then -- if test "x$have_dri_h" = xyes && \ -- test "x$have_sarea_h" = xyes && \ -- test "x$have_dristruct_h" = xyes; then -- DRI="yes" -- else -- DRI="no" -- fi --fi --AC_MSG_RESULT([$DRI]) -- - AM_CONDITIONAL(DRI, test "x$DRI" = xyes) - if test "x$DRI" = xyes; then - PKG_CHECK_MODULES(DRI, [libdrm >= 2.0 xf86driproto]) --- -1.7.10.4 - diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb deleted file mode 100644 index cd680597cd..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb +++ /dev/null @@ -1,21 +0,0 @@ -require recipes-graphics/xorg-driver/xorg-driver-video.inc - -SUMMARY = "X.Org X server -- Matrox MGA display driver" - -DESCRIPTION = "mga is an Xorg driver for Matrox video cards" - -LIC_FILES_CHKSUM = "file://COPYING;md5=bc1395d2cd32dfc5d6c57d2d8f83d3fc" - -SRC_URI += "file://checkfile.patch" - -DEPENDS += "virtual/libx11 libpciaccess" - -COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)' - -SRC_URI[md5sum] = "3ee2549247e01de3e7bce52c27483118" -SRC_URI[sha256sum] = "b663cd8e6364f7c4e2637b9fcab9861d0e3971518c73b00d213f6545a1289422" - -PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri', '', d)}" -PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,drm xf86driproto,xserver-xorg-extension-dri" - -RDEPENDS_${PN} = "xserver-xorg-module-exa" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.1.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.1.bb new file mode 100644 index 0000000000..34b3e4cde6 --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.1.bb @@ -0,0 +1,19 @@ +require recipes-graphics/xorg-driver/xorg-driver-video.inc + +SUMMARY = "X.Org X server -- Matrox MGA display driver" + +DESCRIPTION = "mga is an Xorg driver for Matrox video cards" + +LIC_FILES_CHKSUM = "file://COPYING;md5=4aa220f495ce9be5ce4243d21ebac14f" + +DEPENDS += "virtual/libx11 libpciaccess" + +COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)' + +XORG_DRIVER_COMPRESSOR = ".tar.xz" +SRC_URI[sha256sum] = "27a33b70837965bb4a5f27fd260be085ca5bba837a4e62907f093c2f205603ab" + +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri', '', d)}" +PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,drm xorgproto,xserver-xorg-extension-dri" + +RDEPENDS:${PN} = "xserver-xorg-module-exa" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch new file mode 100644 index 0000000000..e49c99574e --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch @@ -0,0 +1,66 @@ +From 7ae2f6ba4cbf29fc3f1b08579b838679a3301cb3 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Mon, 13 Jul 2020 09:20:15 +1000 +Subject: [PATCH] nouveau: fixup driver for new X server ABI + +Upstream-Status: Backport [https://cgit.freedesktop.org/nouveau/xf86-video-nouveau/commit/?id=e80e73ced69b15662103d0fd6837db4ce6c6eb5b] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/compat-api.h | 4 ++++ + src/nouveau_exa.c | 2 +- + src/nv_driver.c | 6 +++--- + 3 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/src/compat-api.h b/src/compat-api.h +index fde2f4b..8a1fcf9 100644 +--- a/src/compat-api.h ++++ b/src/compat-api.h +@@ -102,4 +102,8 @@ + + #endif + ++#if ABI_VIDEODRV_VERSION < SET_ABI_VERSION(25, 2) ++#define secondary_dst slave_dst ++#endif ++ + #endif +diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c +index 55df6f8..db3b112 100644 +--- a/src/nouveau_exa.c ++++ b/src/nouveau_exa.c +@@ -157,7 +157,7 @@ nouveau_exa_destroy_pixmap(ScreenPtr pScreen, void *priv) + + #ifdef NOUVEAU_PIXMAP_SHARING + static Bool +-nouveau_exa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr slave, void **handle_p) ++nouveau_exa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr secondary, void **handle_p) + { + struct nouveau_bo *bo = nouveau_pixmap_bo(ppix); + struct nouveau_pixmap *nvpix = nouveau_pixmap(ppix); +diff --git a/src/nv_driver.c b/src/nv_driver.c +index e72a6b6..f9ab4af 100644 +--- a/src/nv_driver.c ++++ b/src/nv_driver.c +@@ -559,16 +559,16 @@ redisplay_dirty(ScreenPtr screen, PixmapDirtyUpdatePtr dirty) + { + RegionRec pixregion; + +- PixmapRegionInit(&pixregion, dirty->slave_dst); ++ PixmapRegionInit(&pixregion, dirty->secondary_dst); + +- DamageRegionAppend(&dirty->slave_dst->drawable, &pixregion); ++ DamageRegionAppend(&dirty->secondary_dst->drawable, &pixregion); + #ifdef HAS_DIRTYTRACKING_ROTATION + PixmapSyncDirtyHelper(dirty); + #else + PixmapSyncDirtyHelper(dirty, &pixregion); + #endif + +- DamageRegionProcessPending(&dirty->slave_dst->drawable); ++ DamageRegionProcessPending(&dirty->secondary_dst->drawable); + RegionUninit(&pixregion); + } + +-- +2.33.1 + diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb deleted file mode 100644 index 2746821cd2..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb +++ /dev/null @@ -1,20 +0,0 @@ -require recipes-graphics/xorg-driver/xorg-driver-video.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94" - -SUMMARY = "X.Org X server -- nouveau video driver" - -DESCRIPTION = "Open-source X.org graphics driver for NVIDIA graphics" - -DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \ - virtual/libgl xineramaproto libpciaccess" -RDEPENDS_${PN} += "xserver-xorg-module-exa" - -inherit distro_features_check -REQUIRED_DISTRO_FEATURES += "opengl" - -COMPATIBLE_HOST = '(i.86|x86_64).*-linux' - -SRC_URI[md5sum] = "717203cb87029cddcbccf7398f9ad8c3" -SRC_URI[sha256sum] = "aede10fd395610a328697adca3434fb14e9afbd79911d6c8545cfa2c0e541d4c" - diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb new file mode 100644 index 0000000000..fbf6406caf --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb @@ -0,0 +1,21 @@ +require recipes-graphics/xorg-driver/xorg-driver-video.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94" + +SUMMARY = "X.Org X server -- nouveau video driver" + +DESCRIPTION = "Open-source X.org graphics driver for NVIDIA graphics" + +DEPENDS += "virtual/libx11 libxvmc drm xorgproto \ + virtual/libgl libpciaccess" +RDEPENDS:${PN} += "xserver-xorg-module-exa" + +inherit features_check +REQUIRED_DISTRO_FEATURES += "opengl" + +COMPATIBLE_HOST = '(i.86|x86_64).*-linux' + +CFLAGS += "-Wno-error=implicit-function-declaration" + +SRC_URI += "file://0001-nouveau-fixup-driver-for-new-X-server-ABI.patch" +SRC_URI[sha256sum] = "499322e27a55c8183166bf2dd1e47d085eb834143e0d7036baba8427b90c156b" diff --git a/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb b/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb index 29229bb510..36f05b7277 100644 --- a/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb +++ b/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb @@ -7,10 +7,12 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=5dfa0fdf45473b4ca0acf37d854df10e" DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util" -RDEPENDS_${PN} = "encodings font-util" -RDEPENDS_${PN}_class-native = "font-util-native" +RDEPENDS:${PN} = "encodings font-util" +RDEPENDS:${PN}:class-native = "font-util-native" -inherit distro_features_check +UPSTREAM_CHECK_REGEX = "font\-adobe\-100dpi\-(?P<pver>\d+(\.\d+)+).tar.gz" + +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb b/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb index 898850bbca..8b83ba378f 100644 --- a/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb +++ b/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb @@ -7,10 +7,12 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=fa13e704b7241f60ef9105cc041b9732" DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util" -RDEPENDS_${PN} = "encodings font-util" -RDEPENDS_${PN}_class-native = "font-util-native" +RDEPENDS:${PN} = "encodings font-util" +RDEPENDS:${PN}:class-native = "font-util-native" -inherit distro_features_check +UPSTREAM_CHECK_REGEX = "font\-adobe\-utopia\-100dpi\-(?P<pver>\d+(\.\d+)+).tar.gz" + +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb b/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb index 4976e527f2..5d321acc6e 100644 --- a/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb +++ b/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb @@ -7,10 +7,12 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=cffd5e9c4b61b3d74166ca74b99e460e" DEPENDS += "util-macros-native font-util-native bdftopcf-native font-util" -RDEPENDS_${PN} = "encodings font-util" -RDEPENDS_${PN}_class-native = "font-util-native" +RDEPENDS:${PN} = "encodings font-util" +RDEPENDS:${PN}:class-native = "font-util-native" -inherit distro_features_check +UPSTREAM_CHECK_REGEX = "font\-bh\-100dpi\-(?P<pver>\d+(\.\d+)+).tar.gz" + +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb b/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb index 6e0b33ca31..557eeb17bd 100644 --- a/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb +++ b/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb @@ -7,10 +7,12 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=0d221a9cd144806cb469735cc4775939" DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util" -RDEPENDS_${PN} = "encodings font-util" -RDEPENDS_${PN}_class-native = "font-util-native" +RDEPENDS:${PN} = "encodings font-util" +RDEPENDS:${PN}:class-native = "font-util-native" -inherit distro_features_check +UPSTREAM_CHECK_REGEX = "font\-bh\-lucidatypewriter\-100dpi\-(?P<pver>\d+(\.\d+)+).tar.gz" + +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb b/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb index e8cfb615a9..b280a32603 100644 --- a/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb +++ b/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb @@ -7,10 +7,12 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=30330812324ff9d9bd9ea645bb944427" DEPENDS = "util-macros-native font-util-native bdftopcf-native" -RDEPENDS_${PN} = "encodings font-util" -RDEPENDS_${PN}_class-native = "font-util-native" +RDEPENDS:${PN} = "encodings font-util" +RDEPENDS:${PN}:class-native = "font-util-native" -inherit distro_features_check +UPSTREAM_CHECK_REGEX = "font\-bitstream\-100dpi\-(?P<pver>\d+(\.\d+)+).tar.gz" + +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb b/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb index d425ce5157..ba4575bc29 100644 --- a/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb +++ b/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb @@ -7,9 +7,9 @@ LICENSE = "PD" LIC_FILES_CHKSUM = "file://COPYING;md5=8b32ccac3ad25e75e68478deb7780265" DEPENDS = "util-macros-native font-util-native bdftopcf-native" -RDEPENDS_${PN} = "encodings font-util" +RDEPENDS:${PN} = "encodings font-util" -inherit distro_features_check +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb b/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb index e4cd90a7af..852f93602f 100644 --- a/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb +++ b/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb @@ -7,9 +7,9 @@ LICENSE = "PD" LIC_FILES_CHKSUM = "file://COPYING;md5=200c507f595ee97008c7c5c3e94ab9a8" DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util" -RDEPENDS_${PN} = "encodings font-util" +RDEPENDS:${PN} = "encodings font-util" -inherit distro_features_check +inherit features_check # depends on bdftopcf-native -> virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb b/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb index 45e3f7b592..0fe1876c75 100644 --- a/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb +++ b/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb @@ -1,11 +1,11 @@ SUMMARY = "Xorg 100 DPI font set" -LICENSE = "Custom" +LICENSE = "MIT" -inherit packagegroup distro_features_check +inherit packagegroup features_check # rdepends on font recipes with this restriction REQUIRED_DISTRO_FEATURES = "x11" -RDEPENDS_${PN} = "\ +RDEPENDS:${PN} = "\ font-adobe-100dpi \ font-adobe-utopia-100dpi \ font-bh-100dpi \ diff --git a/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch b/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch deleted file mode 100644 index f9f4a6382c..0000000000 --- a/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -uNr liblbxutil-1.1.0.orig/configure.ac liblbxutil-1.1.0/configure.ac ---- liblbxutil-1.1.0.orig/configure.ac 2009-12-04 23:52:04.000000000 +0100 -+++ liblbxutil-1.1.0/configure.ac 2009-12-16 10:45:00.000000000 +0100 -@@ -50,4 +50,5 @@ - - AC_OUTPUT([Makefile - src/Makefile -+ src/image/Makefile - lbxutil.pc]) -diff -uNr liblbxutil-1.1.0.orig/src/image/Makefile.am liblbxutil-1.1.0/src/image/Makefile.am ---- liblbxutil-1.1.0.orig/src/image/Makefile.am 1970-01-01 01:00:00.000000000 +0100 -+++ liblbxutil-1.1.0/src/image/Makefile.am 2009-12-16 10:45:00.000000000 +0100 -@@ -0,0 +1,15 @@ -+# evil hack -+CFLAGS=$(CFLAGS_FOR_BUILD) -+CPPFLAGS=$(CPPFLAGS_FOR_BUILD) -+LDFLAGS=$(LDFLAGS_FOR_BUILD) -+ -+CC=$(CC_FOR_BUILD) -+LIBTOOL = @LIBTOOL@ --tag=CC -+ -+noinst_PROGRAMS = mkg3states -+ -+mkg3states_SOURCES = \ -+ mkg3states.c -+ -+mkg3states_CFLAGS=$(CFLAGS_FOR_BUILD) -+mkg3states_LDFLAGS=$(LDFLAGS_FOR_BUILD) -diff -uNr liblbxutil-1.1.0.orig/src/Makefile.am liblbxutil-1.1.0/src/Makefile.am ---- liblbxutil-1.1.0.orig/src/Makefile.am 2009-12-16 10:48:11.000000000 +0100 -+++ liblbxutil-1.1.0/src/Makefile.am 2009-12-16 10:46:47.000000000 +0100 -@@ -3,10 +3,7 @@ - AM_CFLAGS = $(CWARNFLAGS) $(LBXUTIL_CFLAGS) - INCLUDES = -I$(top_srcdir)/include - --noinst_PROGRAMS = mkg3states -- --mkg3states_SOURCES = \ -- $(srcdir)/image/mkg3states.c -+SUBDIRS = image - - liblbxutil_la_SOURCES = \ - $(srcdir)/lbx_zlib/reqstats.h \ -@@ -38,9 +35,8 @@ - - $(srcdir)/image/dfaxg42d.c: g3states.h - --g3states.h: mkg3states -- -rm -f g3states.h -- $(AM_V_GEN) ./mkg3states -c > g3states.h_ && mv g3states.h_ g3states.h -+g3states.h: image/mkg3states -+ $(AM_V_GEN) ./image/mkg3states -c > g3states.h_ && mv g3states.h_ g3states.h - - liblbxutil_la_LDFLAGS = -version-number 1:0:0 -no-undefined - diff --git a/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb b/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb deleted file mode 100644 index 7d26d141f3..0000000000 --- a/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -require recipes-graphics/xorg-lib/xorg-lib-common.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=b0d5bdc98f7ebab3b6c3791d9bf40907" - -SUMMARY = "XFIXES Extension" -DEPENDS += " xextproto xproto zlib" -PE = "1" -PR = "r11" - -SRC_URI += "file://mkg3states-1.1.patch" -SRC_URI[md5sum] = "273329a78c2e9ea189ac416c7fde94a1" -SRC_URI[sha256sum] = "c6b6ff7858ec619cafa8205debca6bf78c5610a2844a782ed643c7fd017cf8ae" - -export CC_FOR_BUILD = "gcc" diff --git a/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb b/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.16.bb index 8ba5ac354d..ee14cf747d 100644 --- a/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb +++ b/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.16.bb @@ -1,16 +1,16 @@ require recipes-graphics/xorg-lib/xorg-lib-common.inc SUMMARY = "X Athena Widget Set" -DEPENDS += "xproto virtual/libx11 libxext xextproto libxt libxmu libxpm libxau xmlto-native" +DEPENDS += "xorgproto virtual/libx11 libxext libxt libxmu libxpm libxau xmlto-native" LIC_FILES_CHKSUM = "file://COPYING;md5=1c65719d42900bb81b83e8293c20a364" PE = "1" -PR = "r2" -SRC_URI[md5sum] = "e5e06eb14a608b58746bdd1c0bd7b8e3" -SRC_URI[sha256sum] = "8ef8067312571292ccc2bbe94c41109dcf022ea5a4ec71656a83d8cce9edb0cd" +XORG_PN = "libXaw" + +SRC_URI[sha256sum] = "731d572b54c708f81e197a6afa8016918e2e06dfd3025e066ca642a5b8c39c8f" -do_install_append () { +do_install:append () { ln -sf libXaw6.so.6 ${D}${libdir}/libXaw.so.6 ln -sf libXaw7.so.7 ${D}${libdir}/libXaw.so.7 ln -sf libXaw7.so.7 ${D}${libdir}/libXaw.so @@ -18,11 +18,9 @@ do_install_append () { PACKAGES =+ "libxaw6 libxaw7 libxaw8" -FILES_libxaw6 = "${libdir}/libXaw*.so.6*" -FILES_libxaw7 = "${libdir}/libXaw*.so.7*" -FILES_libxaw8 = "${libdir}/libXaw8.so.8*" +FILES:libxaw6 = "${libdir}/libXaw*.so.6*" +FILES:libxaw7 = "${libdir}/libXaw*.so.7*" +FILES:libxaw8 = "${libdir}/libXaw8.so.8*" # Avoid dependency on libxaw as it is not build -RDEPENDS_${PN}-dev = "" - -XORG_PN = "libXaw" +RDEPENDS:${PN}-dev = "" diff --git a/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb b/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb deleted file mode 100644 index 103da1f085..0000000000 --- a/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb +++ /dev/null @@ -1,10 +0,0 @@ -require recipes-graphics/xorg-lib/xorg-lib-common.inc -SUMMARY = "X11 keyboard UI presentation library" -LICENSE = "SGI-1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94" -DEPENDS += "virtual/libx11 libxt libxkbfile" -PE = "1" -PR = "r10" - -SRC_URI[md5sum] = "1143e456f7429e18e88f2eadb2f2b6b1" -SRC_URI[sha256sum] = "20c23101d63234ee5f6d696dfa069b29c6c58e39eff433bcd7705b50b3ffa214" diff --git a/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.1.bb b/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.1.bb new file mode 100644 index 0000000000..3b15153b6b --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.1.bb @@ -0,0 +1,12 @@ +require recipes-graphics/xorg-lib/xorg-lib-common.inc +SUMMARY = "X Athena Widget Set" +DEPENDS += "xorgproto libxfixes libxrandr" + +LIC_FILES_CHKSUM = "file://COPYING;md5=3c1ce42c334a6f5cccb0277556a053e0" + +XORG_EXT = "tar.bz2" + +SRC_URI = "http://xorg.freedesktop.org/archive/individual/lib/libXpresent-${PV}.tar.xz" +SRC_URI[sha256sum] = "b964df9e5a066daa5e08d2dc82692c57ca27d00b8cc257e8e960c9f1cf26231b" + +XORG_PN = "libXpresent" diff --git a/meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch b/meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch new file mode 100644 index 0000000000..1d0d20da2f --- /dev/null +++ b/meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch @@ -0,0 +1,304 @@ +From f2c592352360e52a7c817a1adcc8b09fd92cd941 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 16 Jul 2022 09:58:24 -0700 +Subject: [PATCH 1/2] Tweak app defaults + +Upstream-Status: Inappropriate [OE-Specific] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + driver/XScreenSaver.ad.in | 259 +------------------------------------- + 1 file changed, 6 insertions(+), 253 deletions(-) + +--- a/driver/XScreenSaver.ad.in ++++ b/driver/XScreenSaver.ad.in +@@ -29,7 +29,7 @@ + ! /* (xrdb prevention kludge: whole file) + + *mode: random +-*timeout: 0:10:00 ++*timeout: 0:15:00 + *cycle: 0:10:00 + *lockTimeout: 0:00:00 + *passwdTimeout: 0:00:30 +@@ -38,7 +38,7 @@ + *dpmsStandby: 2:00:00 + *dpmsSuspend: 2:00:00 + *dpmsOff: 4:00:00 +-*grabDesktopImages: True ++*grabDesktopImages: False + *grabVideoFrames: False + *chooseRandomImages: @DEFAULT_IMAGES_P@ + ! This can be a local directory name, or the URL of an RSS or Atom feed. +@@ -47,11 +47,11 @@ + *memoryLimit: 0 + *lock: False + *verbose: False +-*fade: True ++*fade: False + *unfade: True + *fadeSeconds: 0:00:03 + *fadeTicks: 20 +-*splash: True ++*splash: False + *splashDuration: 0:00:05 + *visualID: default + *installColormap: True +@@ -324,256 +324,8 @@ XScreenSaver.bourneShell: /bin/sh + !============================================================================= + + *programs: \ +- maze -root \n\ +-@GL_KLUDGE@ GL: superquadrics -root \n\ +- attraction -root \n\ +- blitspin -root \n\ +- greynetic -root \n\ +- helix -root \n\ +- hopalong -root \n\ +- imsmap -root \n\ +-- noseguy -root \n\ +-- pyro -root \n\ +- qix -root \n\ +-- rocks -root \n\ +- rorschach -root \n\ +- decayscreen -root \n\ +- flame -root \n\ +- halo -root \n\ +- slidescreen -root \n\ +- pedal -root \n\ +- bouboule -root \n\ +-- braid -root \n\ +- coral -root \n\ +- deco -root \n\ +- drift -root \n\ +-- fadeplot -root \n\ +- galaxy -root \n\ +- goop -root \n\ +- grav -root \n\ +- ifs -root \n\ +-@GL_KLUDGE@ GL: jigsaw -root \n\ +- julia -root \n\ +-- kaleidescope -root \n\ +-@GL_KLUDGE@ GL: moebius -root \n\ +- moire -root \n\ +-@GL_KLUDGE@ GL: morph3d -root \n\ +- mountain -root \n\ +- munch -root \n\ +- penrose -root \n\ +-@GL_KLUDGE@ GL: pipes -root \n\ +- rdbomb -root \n\ +-@GL_KLUDGE@ GL: rubik -root \n\ +-- sierpinski -root \n\ +- slip -root \n\ +-@GL_KLUDGE@ GL: sproingies -root \n\ +- starfish -root \n\ +- strange -root \n\ +- swirl -root \n\ +- triangle -root \n\ +- xjack -root \n\ +- xlyap -root \n\ +-@GL_KLUDGE@ GL: atlantis -root \n\ +- bsod -root \n\ +-@GL_KLUDGE@ GL: bubble3d -root \n\ +-@GL_KLUDGE@ GL: cage -root \n\ +-- crystal -root \n\ +- cynosure -root \n\ +- discrete -root \n\ +- distort -root \n\ +- epicycle -root \n\ +- flow -root \n\ +-@GL_KLUDGE@ GL: glplanet -root \n\ +- interference -root \n\ +- kumppa -root \n\ +-@GL_KLUDGE@ GL: lament -root \n\ +- moire2 -root \n\ +-@GL_KLUDGE@ GL: sonar -root \n\ +-@GL_KLUDGE@ GL: stairs -root \n\ +- truchet -root \n\ +-- vidwhacker -root \n\ +- blaster -root \n\ +- bumps -root \n\ +- ccurve -root \n\ +- compass -root \n\ +- deluxe -root \n\ +-- demon -root \n\ +-@GLE_KLUDGE@ GL: extrusion -root \n\ +-- loop -root \n\ +- penetrate -root \n\ +- petri -root \n\ +- phosphor -root \n\ +-@GL_KLUDGE@ GL: pulsar -root \n\ +- ripples -root \n\ +- shadebobs -root \n\ +-@GL_KLUDGE@ GL: sierpinski3d -root \n\ +- spotlight -root \n\ +- squiral -root \n\ +- wander -root \n\ +-- webcollage -root \n\ +- xflame -root \n\ +- xmatrix -root \n\ +-@GL_KLUDGE@ GL: gflux -root \n\ +-- nerverot -root \n\ +- xrayswarm -root \n\ +- xspirograph -root \n\ +-@GL_KLUDGE@ GL: circuit -root \n\ +-@GL_KLUDGE@ GL: dangerball -root \n\ +-- GL: dnalogo -root \n\ +-@GL_KLUDGE@ GL: engine -root \n\ +-@GL_KLUDGE@ GL: flipscreen3d -root \n\ +-@GL_KLUDGE@ GL: gltext -root \n\ +-@GL_KLUDGE@ GL: menger -root \n\ +-@GL_KLUDGE@ GL: molecule -root \n\ +- rotzoomer -root \n\ +- scooter -root \n\ +- speedmine -root \n\ +-@GL_KLUDGE@ GL: starwars -root \n\ +-@GL_KLUDGE@ GL: stonerview -root \n\ +- vermiculate -root \n\ +- whirlwindwarp -root \n\ +- zoom -root \n\ +- anemone -root \n\ +- apollonian -root \n\ +-@GL_KLUDGE@ GL: boxed -root \n\ +-@GL_KLUDGE@ GL: cubenetic -root \n\ +-@GL_KLUDGE@ GL: endgame -root \n\ +- euler2d -root \n\ +- fluidballs -root \n\ +-@GL_KLUDGE@ GL: flurry -root \n\ +-- GL: glblur -root \n\ +-@GL_KLUDGE@ GL: glsnake -root \n\ +- halftone -root \n\ +-@GL_KLUDGE@ GL: juggler3d -root \n\ +-@GL_KLUDGE@ GL: lavalite -root \n\ +-- polyominoes -root \n\ +-@GL_KLUDGE@ GL: queens -root \n\ +-- GL: sballs -root \n\ +-@GL_KLUDGE@ GL: spheremonics -root \n\ +-- thornbird -root \n\ +- twang -root \n\ +-- GL: antspotlight -root \n\ +- apple2 -root \n\ +-@GL_KLUDGE@ GL: atunnel -root \n\ +- barcode -root \n\ +-@GL_KLUDGE@ GL: blinkbox -root \n\ +-@GL_KLUDGE@ GL: blocktube -root \n\ +-@GL_KLUDGE@ GL: bouncingcow -root \n\ +- cloudlife -root \n\ +-@GL_KLUDGE@ GL: cubestorm -root \n\ +- eruption -root \n\ +-@GL_KLUDGE@ GL: flipflop -root \n\ +-@GL_KLUDGE@ GL: flyingtoasters -root \n\ +- fontglide -root \n\ +-@GL_KLUDGE@ GL: gleidescope -root \n\ +-@GL_KLUDGE@ GL: glknots -root \n\ +-@GL_KLUDGE@ GL: glmatrix -root \n\ +-- GL: glslideshow -root \n\ +-@GL_KLUDGE@ GL: hypertorus -root \n\ +-- GL: jigglypuff -root \n\ +- metaballs -root \n\ +-@GL_KLUDGE@ GL: mirrorblob -root \n\ +- piecewise -root \n\ +-@GL_KLUDGE@ GL: polytopes -root \n\ +- pong -root \n\ +- popsquares -root \n\ +-@GL_KLUDGE@ GL: surfaces -root \n\ +- xanalogtv -root \n\ +- abstractile -root \n\ +- anemotaxis -root \n\ +-- GL: antinspect -root \n\ +- fireworkx -root \n\ +- fuzzyflakes -root \n\ +- interaggregate -root \n\ +- intermomentary -root \n\ +- memscroller -root \n\ +-@GL_KLUDGE@ GL: noof -root \n\ +- pacman -root \n\ +-@GL_KLUDGE@ GL: pinion -root \n\ +-@GL_KLUDGE@ GL: polyhedra -root \n\ +-- GL: providence -root \n\ +- substrate -root \n\ +- wormhole -root \n\ +-- GL: antmaze -root \n\ +-@GL_KLUDGE@ GL: boing -root \n\ +- boxfit -root \n\ +-@GL_KLUDGE@ GL: carousel -root \n\ +- celtic -root \n\ +-@GL_KLUDGE@ GL: crackberg -root \n\ +-@GL_KLUDGE@ GL: cube21 -root \n\ +- fiberlamp -root \n\ +-@GL_KLUDGE@ GL: fliptext -root \n\ +-@GL_KLUDGE@ GL: glhanoi -root \n\ +-@GL_KLUDGE@ GL: tangram -root \n\ +-@GL_KLUDGE@ GL: timetunnel -root \n\ +-@GL_KLUDGE@ GL: glschool -root \n\ +-@GL_KLUDGE@ GL: topblock -root \n\ +-@GL_KLUDGE@ GL: cubicgrid -root \n\ +- cwaves -root \n\ +-@GL_KLUDGE@ GL: gears -root \n\ +-@GL_KLUDGE@ GL: glcells -root \n\ +-@GL_KLUDGE@ GL: lockward -root \n\ +- m6502 -root \n\ +-@GL_KLUDGE@ GL: moebiusgears -root \n\ +-@GL_KLUDGE@ GL: voronoi -root \n\ +-@GL_KLUDGE@ GL: hypnowheel -root \n\ +-@GL_KLUDGE@ GL: klein -root \n\ +-- lcdscrub -root \n\ +-@GL_KLUDGE@ GL: photopile -root \n\ +-@GL_KLUDGE@ GL: skytentacles -root \n\ +-@GL_KLUDGE@ GL: rubikblocks -root \n\ +-@GL_KLUDGE@ GL: companioncube -root \n\ +-@GL_KLUDGE@ GL: hilbert -root \n\ +-@GL_KLUDGE@ GL: tronbit -root \n\ +-@GL_KLUDGE@ GL: geodesic -root \n\ +- hexadrop -root \n\ +-@GL_KLUDGE@ GL: kaleidocycle -root \n\ +-@GL_KLUDGE@ GL: quasicrystal -root \n\ +-@GL_KLUDGE@ GL: unknownpleasures -root \n\ +- binaryring -root \n\ +-@GL_KLUDGE@ GL: cityflow -root \n\ +-@GL_KLUDGE@ GL: geodesicgears -root \n\ +-@GL_KLUDGE@ GL: projectiveplane -root \n\ +-@GL_KLUDGE@ GL: romanboy -root \n\ +- tessellimage -root \n\ +-@GL_KLUDGE@ GL: winduprobot -root \n\ +-@GL_KLUDGE@ GL: splitflap -root \n\ +-@GL_KLUDGE@ GL: cubestack -root \n\ +-@GL_KLUDGE@ GL: cubetwist -root \n\ +-@GL_KLUDGE@ GL: discoball -root \n\ +-@GL_KLUDGE@ GL: dymaxionmap -root \n\ +-@GL_KLUDGE@ GL: energystream -root \n\ +-@GL_KLUDGE@ GL: hexstrut -root \n\ +-@GL_KLUDGE@ GL: hydrostat -root \n\ +-@GL_KLUDGE@ GL: raverhoop -root \n\ +-@GL_KLUDGE@ GL: splodesic -root \n\ +-@GL_KLUDGE@ GL: unicrud -root \n\ +-@GL_KLUDGE@ GL: esper -root \n\ +-@GL_KLUDGE@ GL: vigilance -root \n\ +-@GL_KLUDGE@ GL: crumbler -root \n\ +- filmleader -root \n\ +- glitchpeg -root \n\ +-@GL_KLUDGE@ GL: handsy -root \n\ +-@GL_KLUDGE@ GL: maze3d -root \n\ +-@GL_KLUDGE@ GL: peepers -root \n\ +-@GL_KLUDGE@ GL: razzledazzle -root \n\ +- vfeedback -root \n\ +-@GL_KLUDGE@ GL: deepstars -root \n\ +-@GL_KLUDGE@ GL: gravitywell -root \n\ +-@GL_KLUDGE@ GL: beats -root \n\ +-@GL_KLUDGE@ GL: covid19 -root \n\ +-@GL_KLUDGE@ GL: etruscanvenus -root \n\ +-@GL_KLUDGE@ GL: gibson -root \n\ +-@GL_KLUDGE@ GL: headroom -root \n\ +-@GL_KLUDGE@ GL: sphereeversion -root \n\ +- binaryhorizon -root \n\ +- marbling -root \n\ +-@GL_KLUDGE@ GL: chompytower -root \n\ +-@GL_KLUDGE@ GL: mapscroller -root \n\ +-@GL_KLUDGE@ GL: nakagin -root \n\ +-@GL_KLUDGE@ GL: squirtorus -root \n +- +- ++- fontglide -root -program "date +'%F %H:%M %z'" ++ gifview --window $XSCREENSAVER_WINDOW /usr/share/logo/bosch-black.gif + + !============================================================================= + ! diff --git a/meta-oe/recipes-graphics/xscreensaver/files/0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch b/meta-oe/recipes-graphics/xscreensaver/files/0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch new file mode 100644 index 0000000000..ea3f25a2f2 --- /dev/null +++ b/meta-oe/recipes-graphics/xscreensaver/files/0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch @@ -0,0 +1,47 @@ +From 516fbcdcfe6343b1d64d35957ddb768346713ff6 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 17 Jul 2022 09:47:35 -0700 +Subject: [PATCH] configure: Ignore CONF_STATUS for gtk and openGL needs + +These are just warnings + +Upstream-Status: Inappropriate [OE-Specific] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c4fd38f..d7463cf 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4522,7 +4522,6 @@ fi + if test "$gtk_halfassed" != no ; then + warnL "GTK was found, but $gtk_halfassed_lib was not, so GTK" + warn2 "can't be used." +- CONF_STATUS=1 + + if ( echo $gtk_halfassed_lib | grep -qi pixbuf-xlib ); then + echo '' +@@ -4549,7 +4548,6 @@ if test "$have_motif" = no -a "$have_gtk" = no; then + else + warnL "The GTK libraries do not seem to be available; the" + warn2 "\`xscreensaver-settings' program requires them." +- CONF_STATUS=1 + # echo '' + # warn2 'You can use Motif or Lesstif instead of GTK (use the' + # warn2 "\`--with-motif' option) but that is NOT recommended." +@@ -4735,10 +4733,8 @@ if test "$have_gl" = no ; then + CONF_STATUS=1 + elif test "$with_gl_req" = no ; then + noteL 'The OpenGL 3D library is not being used.' +- CONF_STATUS=1 + else + noteL 'The OpenGL 3D library was not found.' +- CONF_STATUS=1 + fi + + if test "$gl_halfassed" = yes ; then +-- +2.37.1 + diff --git a/meta-oe/recipes-graphics/xscreensaver/files/0002-build-Do-not-build-po-files.patch b/meta-oe/recipes-graphics/xscreensaver/files/0002-build-Do-not-build-po-files.patch new file mode 100644 index 0000000000..0ceba7be02 --- /dev/null +++ b/meta-oe/recipes-graphics/xscreensaver/files/0002-build-Do-not-build-po-files.patch @@ -0,0 +1,53 @@ +From 6b5d022f6dd9848a2d5ca08a1968929b8c140981 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 16 Jul 2022 09:59:40 -0700 +Subject: [PATCH 2/2] build: Do not build po files + +Fixes +| make[1]: Entering directory '/mnt/b/yoe/master/build/tmp/work/cortexa57-yoe-linux/xscreensaver/6.01-r0/xscreensaver-6.01/po' +| make[1]: *** No rule to make target 'default'. Stop. + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile.in | 5 ++--- + driver/Makefile.in | 2 +- + 2 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 9de79b2..1c1d16c 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -6,8 +6,8 @@ srcdir = @srcdir@ + VPATH = @srcdir@ + + SHELL = /bin/sh +-SUBDIRS = utils jwxyz hacks/images hacks hacks/glx hacks/fonts \ +- driver po ++SUBDIRS = utils jwxyz hacks/images hacks hacks/fonts \ ++ driver + SUBDIRS2 = $(SUBDIRS) OSX android + TARFILES = README README.hacking INSTALL \ + configure configure.ac Makefile.in config.h.in \ +@@ -461,4 +461,3 @@ cerebrum:: + --include 'ad2c' \ + --include '*/' \ + --exclude '*' +- +diff --git a/driver/Makefile.in b/driver/Makefile.in +index e1fa1b2..feca6fc 100644 +--- a/driver/Makefile.in ++++ b/driver/Makefile.in +@@ -211,7 +211,7 @@ TEST_EXES = test-passwd test-uid test-xdpms test-grab \ + xdpyinfo test-screens test-yarandom test-xinput \ + test-xkb + +-EXES = xscreensaver xscreensaver-command xscreensaver-settings ++EXES = xscreensaver xscreensaver-command + UTIL_EXES = xscreensaver-gfx @EXES_SYSTEMD@ + SETUID_EXES = xscreensaver-auth + DEMO_EXES = @ALL_DEMO_PROGRAMS@ +-- +2.37.1 + diff --git a/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service b/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service new file mode 100755 index 0000000000..17dfe75ef1 --- /dev/null +++ b/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service @@ -0,0 +1,14 @@ +[Unit] +Description=Xscreensaver service +PartOf=xserver-nodm.service +After=xserver-nodm.service + +[Service] +ExecStart=/usr/bin/xscreensaver +Environment="DISPLAY=:0" +User=xuser +Restart=always +RestartSec=1 + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb b/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb new file mode 100644 index 0000000000..c06c9e96b3 --- /dev/null +++ b/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb @@ -0,0 +1,62 @@ +SUMMARY = "X screen saver and locker" +HOMEPAGE = "https://www.jwz.org/xscreensaver/" +LICENSE = "0BSD" +LIC_FILES_CHKSUM = "file://driver/xscreensaver.h;endline=10;md5=c3ce41cdff745eb1dc9d4fcfbffb4d51" + +SRC_URI = "https://www.jwz.org/${BPN}/${BP}.tar.gz \ + file://xscreensaver.service \ + file://0001-Tweak-app-defaults.patch \ + file://0002-build-Do-not-build-po-files.patch \ + file://0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch \ +" +MIRRORS += "https://www.jwz.org/${BPN} https://ftp.osuosl.org/pub/blfs/conglomeration/${BPN}" + +SRC_URI[sha256sum] = "787014b29f0c5793ecc2d93e1109a049ff48ab0c29b851dab34f683ceef6b152" + +DEPENDS = "intltool-native libx11 libxext libxt libxft libxi glib-2.0-native bc-native libpam jpeg" +# These are only needed as part of the stopgap screensaver implementation: +RDEPENDS:${PN} = " \ + liberation-fonts \ + xuser-account \ +" + +inherit systemd perlnative pkgconfig gettext autotools-brokensep features_check + + +EXTRA_OECONF += "--with-app-defaults=${datadir}/X11/app-defaults --libdir=${STAGING_LIBDIR} \ + --includedir=${STAGING_INCDIR} --with-pam --with-login-manager" + +EXTRA_OEMAKE += "install_prefix=${D} GTK_DATADIR=${datadir}" +REQUIRED_DISTRO_FEATURES = "x11 pam" + +PACKAGECONFIG = "png ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}" + +PACKAGECONFIG[systemd] = "--with-systemd=yes,--with-systemd=no,systemd" +PACKAGECONFIG[png] = "--with-png=yes,--with-png=no,libpng" + +CONFIGUREOPTS:remove = "--disable-silent-rules --disable-dependency-tracking ${@append_libtool_sysroot(d)}" +EXTRA_OECONF:remove = "--disable-static" + +do_install:append() { + install -D ${UNPACKDIR}/xscreensaver.service ${D}${systemd_unitdir}/system/xscreensaver.service + for f in xscreensaver-getimage-file xscreensaver-getimage-video webcollage xscreensaver-text vidwhacker + do + sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl|/usr/bin/perl|g" ${D}/${libexecdir}/${PN}/$f + done +} + +PACKAGES =+ "${PN}-perl" + +FILES:${PN}-perl = "\ + ${libexecdir}/${PN}/xscreensaver-getimage-file \ + ${libexecdir}/${PN}/xscreensaver-getimage-video \ + ${libexecdir}/${PN}/webcollage \ + ${libexecdir}/${PN}/xscreensaver-text \ + ${libexecdir}/${PN}/vidwhacker \ + " +FILES:${PN} += "${datadir}/X11/app-defaults/XScreenSaver ${datadir}/fonts" +SYSTEMD_SERVICE:${PN} = "xscreensaver.service" + +RDEPENDS:${PN}-perl = "perl" + +CLEANBROKEN = "1" diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch index 2bfe85b285..6f738e7376 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch @@ -11,6 +11,8 @@ Signed-off-by: Yu Ke <ke.yu@intel.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- +Upstream-Status: Pending + COPYING | 339 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 339 insertions(+) create mode 100644 COPYING diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch index 0ed12d106f..ea7c7d6a94 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch @@ -10,6 +10,8 @@ be used as before. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> --- +Upstream-Status: Pending + Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch index 0be3fa5b39..b408234ecb 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch @@ -6,6 +6,8 @@ Subject: [PATCH] add setdpi Xinit.d script Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- +Upstream-Status: Pending + X11/Xinit.d/50setdpi | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 X11/Xinit.d/50setdpi diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch index 53a283feae..4a9342c934 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch @@ -6,6 +6,8 @@ Subject: [PATCH] add support for /etc/X11/xserver-system Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- +Upstream-Status: Pending + X11/xserver-common | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch index 94a35407af..ba35d1cf6c 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch @@ -8,6 +8,8 @@ Subject: [PATCH] use own functions file instead /etc/init.d/functions Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- +Upstream-Status: Pending + Makefile | 1 + X11/Xinit.d/11zaurus | 2 +- X11/Xinit.d/12keymap | 2 +- diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch index 90d0f25843..a04e563f82 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch @@ -7,6 +7,8 @@ Subject: [PATCH] xserver-common: add dpi and nocursor params for gta01 and Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- +Upstream-Status: Pending + X11/xserver-common | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch index 8fb69b3561..993b320154 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch @@ -6,6 +6,8 @@ Subject: [PATCH] xserver-common: add support for n900 alias nokia_rx-51_board Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- +Upstream-Status: Pending + X11/xserver-common | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch index d30c7bbdcb..2948cd611b 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch @@ -6,6 +6,8 @@ Subject: [PATCH] xserver-common: add support for nexus S alias herring Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- +Upstream-Status: Pending + X11/xserver-common | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch index 23e17f0988..342d49becd 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch @@ -6,6 +6,8 @@ Subject: [PATCH] xserver-common: add support for nexus one alias mahimahi Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- +Upstream-Status: Pending + X11/xserver-common | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch index 5e794f6b31..94f9d2ca6f 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch @@ -6,6 +6,8 @@ Subject: [PATCH] xserver-common: add support for gta04 alias OpenPhoenux Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- +Upstream-Status: Pending + X11/xserver-common | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch index 78d2e40297..c023b583b0 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch @@ -6,6 +6,8 @@ Subject: [PATCH] xserver-common: add support for tuna alias Galaxy Nexus Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- +Upstream-Status: Pending + X11/xserver-common | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb b/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb index a5ed21d458..3f577bfa05 100644 --- a/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb +++ b/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb @@ -1,18 +1,17 @@ SUMMARY = "Common X11 scripts and support files" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -PR = "r9" # we are using a gpe-style Makefile -inherit distro_features_check gpe +inherit features_check gpe REQUIRED_DISTRO_FEATURES = "x11" SRC_URI[md5sum] = "82f2f84cd96610e8f7b92c700cd31c14" SRC_URI[sha256sum] = "cd04c33418f776b1e13fcc7af3d6bd0c7cccd03fbabd7dbcd97f88166cc34210" -SRC_URI_append = " \ +SRC_URI:append = " \ file://0001-COPYING-add-GPLv2-license-file.patch \ file://0002-add-setdpi-Xinit.d-script.patch \ file://0006-add-support-for-etc-X11-xserver-system.patch \ @@ -27,7 +26,7 @@ SRC_URI_append = " \ file://0001-Don-t-install-Xsession-or-Xserver.patch \ " -do_install_append() { +do_install:append() { sed -i 's:^BINDIR=.*$:BINDIR=${bindir}:' ${D}/etc/X11/xserver-common # Rename all Xsession files not ending with .sh # Unfortunatelly when xinput-calibrator was moved to oe-core @@ -38,8 +37,8 @@ do_install_append() { done } -RDEPENDS_${PN} = "xmodmap xrandr xdpyinfo fbset xinput-calibrator" +RDEPENDS:${PN} = "xmodmap xrandr xdpyinfo fbset xinput-calibrator" -RCONFLICTS_${PN} = "xserver-kdrive-common x11-common" -RREPLACES_${PN} = "xserver-kdrive-common x11-common" +RCONFLICTS:${PN} = "xserver-kdrive-common x11-common" +RREPLACES:${PN} = "xserver-kdrive-common x11-common" diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh b/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh deleted file mode 100644 index fa43617bd2..0000000000 --- a/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -. /etc/formfactor/config - -if [ "$HAVE_TOUCHSCREEN" = "1" ]; then - n=1 - while [ ! -z $TSLIB_TSDEVICE ] && [ ! -f /etc/pointercal ] && [ $n -le 5 ] - do - /usr/bin/xtscal - sleep 1 - n=$(($n+1)) - done -fi diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch b/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch deleted file mode 100644 index 1da7717869..0000000000 --- a/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch +++ /dev/null @@ -1,18 +0,0 @@ -Upstream-Status: Pending - ---- tmp/main.c.orig 2007-01-02 15:39:54.000000000 +0000 -+++ tmp/main.c 2007-01-02 15:39:54.000000000 +0000 -@@ -131,9 +131,10 @@ - { - XRenderFillRectangles (dpy, PictOpSrc, pict, &rect_color, rectangles, 2); - -- XFillArc (dpy, crosshair_w, crosshair_gc, (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1, -- (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1, -- WIDTH + 1, WIDTH + 1, 0, 360 * 64); -+ XFillRectangle (dpy, crosshair_w, crosshair_gc, -+ (CROSSHAIR_SIZE / 2) - (WIDTH / 2), -+ (CROSSHAIR_SIZE / 2) - (WIDTH / 2), -+ WIDTH, WIDTH); - } - - void diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch b/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch deleted file mode 100644 index f7b0854c34..0000000000 --- a/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch +++ /dev/null @@ -1,621 +0,0 @@ ---- - Makefile.am | 9 -- - configure.ac | 3 - gpe-dist.am | 12 --- - h3600_ts.h | 216 ----------------------------------------------------------- - main.c | 210 ++------------------------------------------------------- - xtscal.in | 19 ----- - 6 files changed, 14 insertions(+), 455 deletions(-) - -Upstream-Status: Pending - -Index: xtscal-0.6.3/xtscal.in -=================================================================== ---- xtscal-0.6.3.orig/xtscal.in 2004-09-10 20:10:36.000000000 +0100 -+++ /dev/null 1970-01-01 00:00:00.000000000 +0000 -@@ -1,19 +0,0 @@ --#!/bin/sh -- --module_id() { -- # Get model name -- echo `grep "^Hardware" /proc/cpuinfo | sed -e "s/.*: *//" | tr a-z A-Z` --} -- --case `module_id` in -- "HP IPAQ H3100" | "HP IPAQ H3800" ) -- ARGS="-rotate 90" ;; -- "HP IPAQ H3600" | "HP IPAQ H3700" | "HP IPAQ H3900" | *COLLIE | *POODLE) -- ARGS="-rotate 270" ;; -- # H2200: works without rotation --esac -- --# the things we do for autoconf --prefix=@prefix@ --exec_prefix=@exec_prefix@ --exec @libexecdir@/xtscal.bin $ARGS $* -Index: xtscal-0.6.3/main.c -=================================================================== ---- xtscal-0.6.3.orig/main.c 2007-07-01 01:12:52.000000000 +0100 -+++ xtscal-0.6.3/main.c 2007-07-01 01:12:55.000000000 +0100 -@@ -22,12 +22,10 @@ - #include <X11/Xlib.h> - - #include <X11/extensions/Xrender.h> --#include <X11/extensions/Xrandr.h> - #include <X11/Xft/Xft.h> - #include <X11/extensions/xcalibrate.h> - #include <X11/keysym.h> - --#include "h3600_ts.h" - #include "calibrate.h" - - Display *dpy; -@@ -45,15 +43,11 @@ XftColor xftcol; - XftDraw *xftdraw; - XftFont *xftfont; - int screen_x, screen_y; --int ts_fd; - int samples; - Pixmap bg_pixmap; - int flag_debug; --int rotation = 0; - int error_base, event_base; - --int using_xcalibrate; -- - int moving; - - #define CROSSHAIR_SIZE 25 -@@ -63,7 +57,6 @@ int moving; - #define ENOUGH 5 - #define MAX_SAMPLES 40 - --#define RAW_DEVICE "/dev/h3600_tsraw" - #define FONTNAME "sans-10" - - struct point -@@ -287,12 +280,8 @@ sort_by_y (const void* a, const void *b) - void - set_calibration (calibration *cal) - { -- TS_CAL tc; -- int xtrans, ytrans, xscale, yscale, xyscale, yxscale; - calibration ocal = *cal; - -- if (using_xcalibrate) -- { - FILE *fp; - if (flag_debug) - printf ("constants are: %d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]); -@@ -304,29 +293,6 @@ set_calibration (calibration *cal) - } - fprintf (fp, "%d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]); - fclose (fp); -- return; -- } -- -- xtrans = cal->a[0] / cal->a[6]; -- ytrans = cal->a[3] / cal->a[6]; -- xscale = cal->a[1] * 256 / cal->a[6]; -- yscale = cal->a[5] * 256 / cal->a[6]; -- xyscale = cal->a[2] * 256 / cal->a[6]; -- yxscale = cal->a[4] * 256 / cal->a[6]; -- -- tc.xtrans = xtrans; -- tc.ytrans = ytrans; -- tc.xscale = xscale; -- tc.yscale = yscale; -- tc.xyswap = 0; -- -- printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap); -- -- if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0) -- { -- perror ("TS_SET_CAL"); -- exit (1); -- } - } - - void -@@ -398,80 +364,13 @@ handle_ts_event (int x, int y, int press - } - - void --read_ts (void) --{ -- TS_EVENT ts_ev; -- int r; -- -- r = read (ts_fd, &ts_ev, sizeof (ts_ev)); -- if (r == sizeof (ts_ev)) -- handle_ts_event (ts_ev.x, ts_ev.y, ts_ev.pressure); --} -- --void --do_cal (char **args) --{ -- TS_CAL tc; -- -- tc.xscale = atoi (args[0]); -- tc.xtrans = atoi (args[1]); -- tc.yscale = atoi (args[2]); -- tc.ytrans = atoi (args[3]); -- tc.xyswap = atoi (args[4]); -- -- if (flag_debug) -- fprintf (stderr, "setting: %d %d %d %d %d\n", -- tc.xtrans, tc.ytrans, tc.xscale, tc.yscale, tc.xyswap); -- -- if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0) -- { -- perror ("TS_SET_CAL"); -- exit (1); -- } -- -- exit (0); --} -- --void --show_cal (void) --{ -- TS_CAL tc; -- -- if (ioctl (ts_fd, TS_GET_CAL, (void *)&tc) != 0) -- { -- perror ("TS_GET_CAL"); -- exit (1); -- } -- -- printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap); --} -- --void - usage (const char *name) - { -- fprintf (stderr, "usage: %s -view\n", name); -- fprintf (stderr, " %s [-rotate <0 | 90 | 180 | 270>]\n", name); -- fprintf (stderr, " %s -cal <xs> <xt> <ys> <yt> <xyswap>\n", name); -- -+ fprintf (stderr, "usage: %s [-debug]\n", name); - exit (1); - } - - int --xrr_supported (void) --{ -- int xrr_event_base, xrr_error_base; -- int xrr_major, xrr_minor; -- -- if (XRRQueryExtension (dpy, &xrr_event_base, &xrr_error_base) == False -- || XRRQueryVersion (dpy, &xrr_major, &xrr_minor) == 0 -- || xrr_major != 1 -- || xrr_minor < 1) -- return 0; -- -- return 1; --} -- --int - main (int argc, char *argv[]) - { - XSetWindowAttributes attributes; -@@ -480,31 +379,11 @@ main (int argc, char *argv[]) - int max_fd; - GC bg_gc; - int i; -- int have_xrandr; - - for (i = 1; i < argc; i++) - { -- if (!strcmp (argv[i], "-view")) -- { -- show_cal (); -- exit (0); -- } -- else if (!strcmp (argv[i], "-debug")) -+ if (!strcmp (argv[i], "-debug")) - flag_debug = 1; -- else if (!strcmp (argv[i], "-cal")) -- { -- if (argc > (i + 5)) -- do_cal (argv + i + 1); -- else -- usage (argv[0]); -- } -- else if (!strcmp (argv[i], "-rotate")) -- { -- if (argc > (i + 1)) -- rotation = atoi (argv[++i]); -- else -- usage (argv[0]); -- } - else - usage (argv[0]); - } -@@ -531,48 +410,11 @@ main (int argc, char *argv[]) - fprintf (stderr, "failed to set raw mode: error %d\n", r); - exit (1); - } -- -- using_xcalibrate = 1; -- } -- -- have_xrandr = xrr_supported (); -- if (have_xrandr) -- { -- XRRScreenConfiguration *rr_screen; -- Rotation current_rotation; -- -- if (flag_debug) -- fprintf (stderr, "XRANDR is supported\n"); -- -- rr_screen = XRRGetScreenInfo (dpy, RootWindow (dpy, screen)); -- -- XRRRotations (dpy, screen, ¤t_rotation); -- -- XRRFreeScreenConfigInfo (rr_screen); -- -- if (flag_debug) -- fprintf (stderr, "Current RANDR rotation is %d\n", current_rotation); -- -- switch (current_rotation) -- { -- case RR_Rotate_270: -- rotation += 90; -- case RR_Rotate_180: -- rotation += 90; -- case RR_Rotate_90: -- rotation += 90; -- rotation %= 360; -- case RR_Rotate_0: -- break; -- default: -- fprintf (stderr, "Unknown RANDR rotation: %d\n", current_rotation); -- break; -- } - } - else - { -- if (flag_debug) -- fprintf (stderr, "XRANDR not supported\n"); -+ perror ("XCALIBRATE extension missing"); -+ exit (1); - } - - attributes.override_redirect = flag_debug ? False : True; -@@ -666,45 +508,17 @@ main (int argc, char *argv[]) - - for (i = 0; i < NR_POINTS; i++) - { -- switch (rotation) -- { -- case 0: -- cal.xfb[i] = cal.xscr[i]; -- cal.yfb[i] = cal.yscr[i]; -- break; -- case 90: -- cal.xfb[i] = cal.yscr[i]; -- cal.yfb[i] = screen_x - cal.xscr[i]; -- break; -- case 180: -- cal.xfb[i] = screen_x - cal.xscr[i]; -- cal.yfb[i] = screen_y - cal.yscr[i]; -- break; -- case 270: -- cal.xfb[i] = screen_y - cal.yscr[i]; -- cal.yfb[i] = cal.xscr[i]; -- break; -- } -+ cal.xfb[i] = cal.xscr[i]; -+ cal.yfb[i] = cal.yscr[i]; -+ XCalibrateScreenToCoord (dpy, &cal.xfb[i], &cal.yfb[i]); - - if (flag_debug) -- printf ("rotation %d: (%d,%d) -> (%d,%d)\n", rotation, -+ printf ("rotation conversion: (%d,%d) -> (%d,%d)\n", - cal.xscr[i], cal.yscr[i], cal.xfb[i], cal.yfb[i]); - } - - next_event (); - -- if (!using_xcalibrate) -- { -- ts_fd = open (RAW_DEVICE, O_RDONLY); -- if (ts_fd < 0) -- { -- perror (RAW_DEVICE); -- exit (1); -- } -- } -- -- max_fd = (xfd > ts_fd) ? xfd : ts_fd; -- - for (;;) - { - fd_set fds; -@@ -713,12 +527,8 @@ main (int argc, char *argv[]) - - FD_ZERO (&fds); - FD_SET (xfd, &fds); -- if (ts_fd != -1) -- FD_SET (ts_fd, &fds); - -- select (max_fd + 1, &fds, NULL, NULL, NULL); -- -- if (ts_fd != -1 && FD_ISSET (ts_fd, &fds)) -- read_ts (); -+ select (xfd + 1, &fds, NULL, NULL, NULL); - } - } -+ -Index: xtscal-0.6.3/configure.ac -=================================================================== ---- xtscal-0.6.3.orig/configure.ac 2004-09-10 20:11:12.000000000 +0100 -+++ xtscal-0.6.3/configure.ac 2007-07-01 01:12:55.000000000 +0100 -@@ -9,8 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2]) - # Checks for programs. - AC_PROG_CC - --PKG_CHECK_MODULES(XTSCAL, x11 xft xext xrandr xcalibrate) -+PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate) - - AC_CONFIG_FILES([Makefile]) --AC_CONFIG_FILES([xtscal]) - AC_OUTPUT -Index: xtscal-0.6.3/gpe-dist.am -=================================================================== ---- xtscal-0.6.3.orig/gpe-dist.am 2004-06-02 23:07:13.000000000 +0100 -+++ /dev/null 1970-01-01 00:00:00.000000000 +0000 -@@ -1,12 +0,0 @@ --CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_]) -- --dist-upload: dist -- scp $(PACKAGE)-$(VERSION).tar.bz2 $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/ -- --tag: -- cvs tag $(CVSTAG) -- --retag: -- cvs tag -F $(CVSTAG) -- --source: tag dist-upload -Index: xtscal-0.6.3/h3600_ts.h -=================================================================== ---- xtscal-0.6.3.orig/h3600_ts.h 2003-07-05 17:27:10.000000000 +0100 -+++ /dev/null 1970-01-01 00:00:00.000000000 +0000 -@@ -1,216 +0,0 @@ --/* --* --* Driver for the H3600 Touch Screen and other Atmel controlled devices. --* --* Copyright 2000 Compaq Computer Corporation. --* --* Use consistent with the GNU GPL is permitted, --* provided that this copyright notice is --* preserved in its entirety in all copies and derived works. --* --* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED, --* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS --* FITNESS FOR ANY PARTICULAR PURPOSE. --* --* Author: Charles Flynn. --* --*/ -- -- --#ifndef __H3600_TS_H__ --#define __H3600_TS_H__ -- --#include <linux/ioctl.h> -- --enum h3600_ts_minor_devices { -- TS_MINOR = 0, -- TSRAW_MINOR = 1, -- KEY_MINOR = 2 --}; -- --typedef struct h3600_ts_calibration { -- int xscale; -- int xtrans; -- int yscale; -- int ytrans; -- int xyswap; --} TS_CAL; -- --typedef struct h3600_ts_event { -- unsigned short pressure; -- unsigned short x; -- unsigned short y; -- unsigned short pad; --} TS_EVENT; -- --/* Deprecated - do not use */ --typedef struct h3600_ts_return { -- unsigned short pressure; -- unsigned short x; -- unsigned short y; -- unsigned short pad; --} TS_RET; -- --enum power_button_mode { -- PBM_SUSPEND = 0, -- PBM_GENERATE_KEYPRESS = 1 --}; -- -- --/* ++++++++++++++ +++++++++++++++++++++++++++++++++++++ */ -- --typedef struct therm_dev { -- short data; --} THERM_DEV; -- --#define H3600_BATT_CHEM_ALKALINE 0x01 --#define H3600_BATT_CHEM_NICD 0x02 --#define H3600_BATT_CHEM_NIMH 0x03 --#define H3600_BATT_CHEM_LION 0x04 --#define H3600_BATT_CHEM_LIPOLY 0x05 --#define H3600_BATT_CHEM_NOT_INSTALLED 0x06 --#define H3600_BATT_CHEM_UNKNOWN 0xff -- --/* These should match the apm_bios.h definitions */ --#define H3600_AC_STATUS_AC_OFFLINE 0x00 --#define H3600_AC_STATUS_AC_ONLINE 0x01 --#define H3600_AC_STATUS_AC_BACKUP 0x02 /* What does this mean? */ --#define H3600_AC_STATUS_AC_UNKNOWN 0xff -- --/* These bitfields are rarely "or'd" together */ --#define H3600_BATT_STATUS_HIGH 0x01 --#define H3600_BATT_STATUS_LOW 0x02 --#define H3600_BATT_STATUS_CRITICAL 0x04 --#define H3600_BATT_STATUS_CHARGING 0x08 --#define H3600_BATT_STATUS_CHARGE_MAIN 0x10 --#define H3600_BATT_STATUS_DEAD 0x20 /* Battery will not charge */ --#define H3600_BATT_NOT_INSTALLED 0x20 /* For expansion pack batteries */ --#define H3600_BATT_STATUS_FULL 0x40 /* Battery fully charged (and connected to AC) */ --#define H3600_BATT_STATUS_NOBATT 0x80 --#define H3600_BATT_STATUS_UNKNOWN 0xff -- --struct battery_data { -- unsigned char chemistry; -- unsigned char status; -- unsigned short voltage; /* Voltage for battery #0; unknown for battery #1 */ -- unsigned short percentage; /* Percentage of full charge */ -- unsigned short life; /* Life remaining in minutes */ --}; -- --struct h3600_battery { -- unsigned char ac_status; -- unsigned char battery_count; /* How many batteries we have */ -- struct battery_data battery[2]; --}; -- --/* -------- EEPROM and SPI Interfaces ---------------*/ -- --#define EEPROM_RD_BUFSIZ 6 /* EEPROM reads are 16 bits */ --#define EEPROM_WR_BUFSIZ 5 /* Allow room for 8bit 'addr' field in buffer*/ --#define SPI_RD_BUFSIZ 16 /* SPI reads are 8 bits */ --#define SPI_WR_BUFSIZ 7 -- --/* The EEPROM is where internal programs are stored on the Amtel. -- You probably don't want to read or write these values */ -- --typedef struct h3600_eeprom_read_request { -- unsigned char addr; /* 8bit Address Offset 0-255 */ -- unsigned char len; /* Number of 16bit words to read 0-128 */ -- unsigned short buff[EEPROM_RD_BUFSIZ]; --} EEPROM_READ; -- --typedef struct h3600_eeprom_write_request { -- unsigned char len; /* used only to compute the number of bytes to send */ -- unsigned char addr; /* 0-128 */ -- unsigned short buff[EEPROM_WR_BUFSIZ]; --} EEPROM_WRITE; -- --/* The SPI bus connects to EEPROMs located on sleeves plugged into -- the iPAQ. You may want to read these values */ -- --typedef struct h3600_spi_read_request { -- unsigned short addr; /* 16bit Address Offset 0-128 */ -- unsigned char len; /* Number of bytes to read */ -- unsigned char buff[SPI_RD_BUFSIZ]; --} SPI_READ; -- --#define SPI_READ_STATUS_BYTE 0xffff /* Use this address to read the status byte */ -- --typedef struct h3600_spi_write_request { -- unsigned short len; /* used only to compute the number of bytes to send */ -- unsigned short addr; /* this 16bit address accesses a single byte */ -- unsigned char buff[SPI_WR_BUFSIZ]; --} SPI_WRITE; -- -- --/* -------- end of EEPROM and SPI Interfaces ---------------*/ -- --/* User space structures for IOCTL calls */ -- --typedef struct h3600_ts_version { -- unsigned char host_version[8]; /* ascii "x.yy" */ -- unsigned char pack_version[8]; /* ascii "x.yy" */ -- unsigned char boot_type; /* TODO ?? */ --} VER_RET; -- --typedef struct h3600_ts_led { -- unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */ -- unsigned char TotalTime; /* Units of 5 seconds */ -- unsigned char OnTime; /* units of 100m/s */ -- unsigned char OffTime; /* units of 100m/s */ --} LED_IN; -- --enum flite_mode { -- FLITE_MODE1 = 1, -- FLITE_AUTO_MODE = 1, /* for reference only */ -- FLITE_MANUAL_MODE = 2, /* Use this normally? */ -- FLITE_GET_LIGHT_SENSOR = 3 /* Returns light reading in "brightness" field */ --}; --enum flite_pwr { -- FLITE_PWR_OFF = 0, -- FLITE_PWR_ON = 1 --}; -- --typedef struct h3600_ts_flite { -- unsigned char mode; -- unsigned char pwr; -- unsigned char brightness; --} FLITE_IN; -- --/*************************** Updated "universal" structures *******************/ -- --/* Sets backlight for both H3100 and H3600 models - technically "frontlight" for H3600 */ --struct h3600_ts_backlight { -- enum flite_pwr power; /* 0 = off, 1 = on */ -- unsigned char brightness; /* 0 - 255 */ --}; -- --struct h3600_ts_contrast { /* Only useful on H3100 model */ -- unsigned char contrast; /* 0 - 255 */ --}; -- --/* IOCTL cmds user or kernel space */ -- --/* Use 'f' as magic number */ --#define IOC_H3600_TS_MAGIC 'f' -- --/* TODO: Some of these IOWR values are just plain wrong */ --#define GET_VERSION _IOR(IOC_H3600_TS_MAGIC, 1, struct h3600_ts_version ) --#define READ_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 2, struct h3600_eeprom_read_request) --#define WRITE_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 3, struct h3600_eeprom_write_request) --#define GET_THERMAL _IOR(IOC_H3600_TS_MAGIC, 4, struct therm_dev) --#define LED_ON _IOW(IOC_H3600_TS_MAGIC, 5, struct h3600_ts_led) --#define GET_BATTERY_STATUS _IOR(IOC_H3600_TS_MAGIC, 6, struct h3600_battery) --#define FLITE_ON _IOW(IOC_H3600_TS_MAGIC, 7, struct h3600_ts_flite) --#define READ_SPI _IOWR(IOC_H3600_TS_MAGIC, 8, struct h3600_spi_read_request) --#define WRITE_SPI _IOWR(IOC_H3600_TS_MAGIC, 9, struct h3600_spi_write_request) --#define TS_GET_CAL _IOR(IOC_H3600_TS_MAGIC, 10, struct h3600_ts_calibration) --#define TS_SET_CAL _IOW(IOC_H3600_TS_MAGIC, 11, struct h3600_ts_calibration) -- --/* New IOCTL interfaces - defined to be more user friendly */ --#define TS_GET_BACKLIGHT _IOR(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight) --#define TS_SET_BACKLIGHT _IOW(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight) --#define TS_GET_CONTRAST _IOR(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast) --#define TS_SET_CONTRAST _IOW(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast) -- --#endif -Index: xtscal-0.6.3/Makefile.am -=================================================================== ---- xtscal-0.6.3.orig/Makefile.am 2004-06-02 23:07:13.000000000 +0100 -+++ xtscal-0.6.3/Makefile.am 2007-07-02 12:51:02.000000000 +0100 -@@ -1,11 +1,8 @@ --libexec_PROGRAMS = xtscal.bin --bin_SCRIPTS = xtscal -+bin_PROGRAMS = xtscal - --xtscal_bin_SOURCES = main.c calibrate.c calibrate.h h3600_ts.h -+xtscal_SOURCES = main.c calibrate.c calibrate.h - --xtscal_bin_LDADD = @XTSCAL_LIBS@ -+xtscal_LDADD = @XTSCAL_LIBS@ - - INCLUDES = @XTSCAL_CFLAGS@ -DNR_POINTS=5 - --include gpe-dist.am -- diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch b/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch deleted file mode 100644 index 3e4533f785..0000000000 --- a/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch +++ /dev/null @@ -1,27 +0,0 @@ -after gcc linking has changed, all the libraries must be explicitely specified -This patch avoids this linking error: - -| ccache i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o xtscal main.o calibrate.o -lX11 -lXft -lXext -lXcalibrate^M -| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: ^?: invalid DSO for symbol `XRenderChangePicture' definition^M -| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libXrender.so.1: could not read symbols: Bad value^M -| collect2: ld returned 1 exit status^M -| make: *** [xtscal] Error 1 - -Nitin A Kamble <nitin.a.kamble@intel.com> -Date: 2011/01/11 - -Upstream-Status: Pending - -Index: xtscal-0.6.3/configure.ac -=================================================================== ---- xtscal-0.6.3.orig/configure.ac -+++ xtscal-0.6.3/configure.ac -@@ -9,7 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2]) - # Checks for programs. - AC_PROG_CC - --PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate) -+PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate xrender) - - AC_CONFIG_FILES([Makefile]) - AC_OUTPUT diff --git a/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb b/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb deleted file mode 100644 index 4bfddf06b5..0000000000 --- a/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "Touchscreen calibration utility" - -DESCRIPTION = "Basic touchscreen calibration utility" - -HOMEPAGE = "http://gpe.linuxtogo.org" -BUGTRACKER = "http://bugs.linuxtogo.org" -LICENSE = "GPLv2 & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://main.c;endline=10;md5=8721bcb08ae9f24e5fe4c82941873c87" - -SECTION = "x11/base" - -DEPENDS = "virtual/libx11 libxft libxcalibrate" - -PR = "r13" - -SRC_URI = "${GPE_MIRROR}/xtscal-${PV}.tar.bz2 \ - file://change-cross.patch \ - file://cleanup.patch \ - file://dso_linking_change_build_fix.patch \ - file://30xTs_Calibrate.sh" - -SRC_URI[md5sum] = "9bcab80b474d5454477d1ca166a68c34" -SRC_URI[sha256sum] = "27b9dc2203de9b1706ca39fa6ca80ecab8807909ec901c4a345b8e41178800a1" - -inherit autotools pkgconfig distro_features_check -# depends on virtual/libx11 -REQUIRED_DISTRO_FEATURES = "x11" - -do_install_append() { - install -d ${D}${sysconfdir}/X11/Xsession.d/ - install -m 0755 ${WORKDIR}/30xTs_Calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/ -} diff --git a/meta-oe/recipes-graphics/yad/yad_6.0.bb b/meta-oe/recipes-graphics/yad/yad_6.0.bb new file mode 100644 index 0000000000..9e46215fd8 --- /dev/null +++ b/meta-oe/recipes-graphics/yad/yad_6.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "Yet Another Dialog" +DESCRIPTION = "Program allowing you to display GTK+ dialog boxes from command line or shell scripts." + +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "git://github.com/v1cont/yad.git;branch=master;protocol=https" +SRCREV = "a5b1a7a3867bc7dffbbc539f586f301687b6ec02" + +inherit autotools gsettings features_check pkgconfig + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS = "gtk+3 glib-2.0-native intltool-native" + +S = "${WORKDIR}/git" + +FILES:${PN} += "${datadir}/icons/" diff --git a/meta-oe/recipes-graphics/ydotool/ydotool_git.bb b/meta-oe/recipes-graphics/ydotool/ydotool_git.bb new file mode 100644 index 0000000000..3acf70235e --- /dev/null +++ b/meta-oe/recipes-graphics/ydotool/ydotool_git.bb @@ -0,0 +1,26 @@ +SUMMARY = "Generic Linux command-line automation tool (no X!)" +DESCRIPTION = "ydotool is not limited to Wayland. You can use it on anything as long as it accepts keyboard/mouse/whatever input." +LICENSE = "AGPL-3.0-or-later" +LIC_FILES_CHKSUM = "file://LICENSE;md5=eb1e647870add0502f8f010b19de32af" + +PV = "1.0.4+git" + +SRC_URI = "git://github.com/ReimuNotMoe/ydotool;protocol=https;branch=master" +SRCREV = "0c295346d55afcc6aebaaee564333b3e1efabcbd" + +S = "${WORKDIR}/git" + +inherit cmake systemd + +EXTRA_OECMAKE = "\ + -DBUILD_DOCS=OFF \ +" + +do_install:append() { + if ! ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + rm -rf ${D}${systemd_user_unitdir} + rmdir ${D}${nonarch_libdir}/systemd ${D}${nonarch_libdir} + fi +} +SYSTEMD_SERVICE:${PN} = "ydotoold.service" +SYSTEMD_AUTO_ENABLE = "disable" |