diff options
Diffstat (limited to 'meta-oe/recipes-graphics')
368 files changed, 9503 insertions, 32527 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.4.bb b/meta-oe/recipes-graphics/cglm/cglm_0.9.4.bb new file mode 100644 index 0000000000..6fcc07d92b --- /dev/null +++ b/meta-oe/recipes-graphics/cglm/cglm_0.9.4.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 = "1796cc5ce298235b615dc7a4750b8c3ba56a05dd" + +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/deqp-runner/deqp-runner-crates.inc b/meta-oe/recipes-graphics/deqp-runner/deqp-runner-crates.inc new file mode 100644 index 0000000000..09a3f675a6 --- /dev/null +++ b/meta-oe/recipes-graphics/deqp-runner/deqp-runner-crates.inc @@ -0,0 +1,268 @@ +# Autogenerated with 'bitbake -c update_crates deqp-runner' + +# from Cargo.lock +SRC_URI += " \ + crate://crates.io/adler/1.0.2 \ + crate://crates.io/aho-corasick/1.0.5 \ + crate://crates.io/android-tzdata/0.1.1 \ + crate://crates.io/android_system_properties/0.1.5 \ + crate://crates.io/ansi_term/0.12.1 \ + crate://crates.io/anyhow/1.0.75 \ + crate://crates.io/atty/0.2.14 \ + crate://crates.io/autocfg/1.1.0 \ + crate://crates.io/bitflags/1.3.2 \ + crate://crates.io/bitflags/2.4.0 \ + crate://crates.io/bumpalo/3.13.0 \ + crate://crates.io/cast/0.3.0 \ + crate://crates.io/cc/1.0.83 \ + crate://crates.io/cfg-if/1.0.0 \ + crate://crates.io/chrono/0.4.30 \ + crate://crates.io/clap/2.34.0 \ + crate://crates.io/core-foundation-sys/0.8.4 \ + crate://crates.io/crc32fast/1.3.2 \ + crate://crates.io/criterion/0.3.6 \ + crate://crates.io/criterion-plot/0.4.5 \ + crate://crates.io/crossbeam-channel/0.5.8 \ + crate://crates.io/crossbeam-deque/0.8.3 \ + crate://crates.io/crossbeam-epoch/0.9.15 \ + crate://crates.io/crossbeam-utils/0.8.16 \ + crate://crates.io/csv/1.2.2 \ + crate://crates.io/csv-core/0.1.10 \ + crate://crates.io/derive-getters/0.1.1 \ + crate://crates.io/either/1.9.0 \ + crate://crates.io/errno/0.3.3 \ + crate://crates.io/errno-dragonfly/0.1.2 \ + crate://crates.io/fastrand/2.0.0 \ + crate://crates.io/flate2/1.0.27 \ + crate://crates.io/getrandom/0.1.16 \ + crate://crates.io/half/1.8.2 \ + crate://crates.io/hashbrown/0.12.3 \ + crate://crates.io/heck/0.3.3 \ + crate://crates.io/hermit-abi/0.1.19 \ + crate://crates.io/hermit-abi/0.3.2 \ + crate://crates.io/iana-time-zone/0.1.57 \ + crate://crates.io/iana-time-zone-haiku/0.1.2 \ + crate://crates.io/indexmap/1.9.3 \ + crate://crates.io/itertools/0.10.5 \ + crate://crates.io/itoa/1.0.9 \ + crate://crates.io/js-sys/0.3.64 \ + crate://crates.io/junit-report/0.4.0 \ + crate://crates.io/lazy_static/1.4.0 \ + crate://crates.io/libc/0.2.147 \ + crate://crates.io/linux-raw-sys/0.4.7 \ + crate://crates.io/log/0.4.20 \ + crate://crates.io/memchr/2.6.3 \ + crate://crates.io/memoffset/0.9.0 \ + crate://crates.io/miniz_oxide/0.7.1 \ + crate://crates.io/mio/0.8.8 \ + crate://crates.io/num-traits/0.2.16 \ + crate://crates.io/num_cpus/1.16.0 \ + crate://crates.io/once_cell/1.18.0 \ + crate://crates.io/oorandom/11.1.3 \ + crate://crates.io/plotters/0.3.5 \ + crate://crates.io/plotters-backend/0.3.5 \ + crate://crates.io/plotters-svg/0.3.5 \ + crate://crates.io/ppv-lite86/0.2.17 \ + crate://crates.io/proc-macro-error/1.0.4 \ + crate://crates.io/proc-macro-error-attr/1.0.4 \ + crate://crates.io/proc-macro2/1.0.66 \ + crate://crates.io/quote/1.0.33 \ + crate://crates.io/rand/0.7.3 \ + crate://crates.io/rand_chacha/0.2.2 \ + crate://crates.io/rand_core/0.5.1 \ + crate://crates.io/rand_hc/0.2.0 \ + crate://crates.io/rayon/1.7.0 \ + crate://crates.io/rayon-core/1.11.0 \ + crate://crates.io/redox_syscall/0.3.5 \ + crate://crates.io/regex/1.9.5 \ + crate://crates.io/regex-automata/0.3.8 \ + crate://crates.io/regex-syntax/0.7.5 \ + crate://crates.io/roxmltree/0.13.1 \ + crate://crates.io/rustix/0.38.13 \ + crate://crates.io/ryu/1.0.15 \ + crate://crates.io/same-file/1.0.6 \ + crate://crates.io/scopeguard/1.2.0 \ + crate://crates.io/serde/1.0.188 \ + crate://crates.io/serde-tuple-vec-map/1.0.1 \ + crate://crates.io/serde_cbor/0.11.2 \ + crate://crates.io/serde_derive/1.0.188 \ + crate://crates.io/serde_json/1.0.106 \ + crate://crates.io/serde_yaml/0.9.21 \ + crate://crates.io/stderrlog/0.5.4 \ + crate://crates.io/strsim/0.8.0 \ + crate://crates.io/structopt/0.3.26 \ + crate://crates.io/structopt-derive/0.4.18 \ + crate://crates.io/syn/1.0.109 \ + crate://crates.io/syn/2.0.32 \ + crate://crates.io/tempfile/3.8.0 \ + crate://crates.io/termcolor/1.1.3 \ + crate://crates.io/textwrap/0.11.0 \ + crate://crates.io/thiserror/1.0.48 \ + crate://crates.io/thiserror-impl/1.0.48 \ + crate://crates.io/thread_local/1.1.7 \ + crate://crates.io/tinytemplate/1.2.1 \ + crate://crates.io/toml/0.5.11 \ + crate://crates.io/unicode-ident/1.0.11 \ + crate://crates.io/unicode-segmentation/1.10.1 \ + crate://crates.io/unicode-width/0.1.10 \ + crate://crates.io/unsafe-libyaml/0.2.9 \ + crate://crates.io/vec_map/0.8.2 \ + crate://crates.io/version_check/0.9.4 \ + crate://crates.io/walkdir/2.4.0 \ + crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \ + crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \ + crate://crates.io/wasm-bindgen/0.2.87 \ + crate://crates.io/wasm-bindgen-backend/0.2.87 \ + crate://crates.io/wasm-bindgen-macro/0.2.87 \ + crate://crates.io/wasm-bindgen-macro-support/0.2.87 \ + crate://crates.io/wasm-bindgen-shared/0.2.87 \ + crate://crates.io/web-sys/0.3.64 \ + crate://crates.io/winapi/0.3.9 \ + crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ + crate://crates.io/winapi-util/0.1.5 \ + crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \ + crate://crates.io/windows/0.48.0 \ + crate://crates.io/windows-sys/0.48.0 \ + crate://crates.io/windows-targets/0.48.5 \ + crate://crates.io/windows_aarch64_gnullvm/0.48.5 \ + crate://crates.io/windows_aarch64_msvc/0.48.5 \ + crate://crates.io/windows_i686_gnu/0.48.5 \ + crate://crates.io/windows_i686_msvc/0.48.5 \ + crate://crates.io/windows_x86_64_gnu/0.48.5 \ + crate://crates.io/windows_x86_64_gnullvm/0.48.5 \ + crate://crates.io/windows_x86_64_msvc/0.48.5 \ + crate://crates.io/xml-rs/0.8.18 \ + crate://crates.io/xmlparser/0.13.5 \ +" + +SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +SRC_URI[aho-corasick-1.0.5.sha256sum] = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783" +SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" +SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +SRC_URI[ansi_term-0.12.1.sha256sum] = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +SRC_URI[anyhow-1.0.75.sha256sum] = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +SRC_URI[bitflags-2.4.0.sha256sum] = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +SRC_URI[bumpalo-3.13.0.sha256sum] = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +SRC_URI[cast-0.3.0.sha256sum] = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" +SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +SRC_URI[chrono-0.4.30.sha256sum] = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877" +SRC_URI[clap-2.34.0.sha256sum] = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +SRC_URI[core-foundation-sys-0.8.4.sha256sum] = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +SRC_URI[criterion-0.3.6.sha256sum] = "b01d6de93b2b6c65e17c634a26653a29d107b3c98c607c765bf38d041531cd8f" +SRC_URI[criterion-plot-0.4.5.sha256sum] = "2673cc8207403546f45f5fd319a974b1e6983ad1a3ee7e6041650013be041876" +SRC_URI[crossbeam-channel-0.5.8.sha256sum] = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +SRC_URI[crossbeam-deque-0.8.3.sha256sum] = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +SRC_URI[crossbeam-epoch-0.9.15.sha256sum] = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +SRC_URI[crossbeam-utils-0.8.16.sha256sum] = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +SRC_URI[csv-1.2.2.sha256sum] = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086" +SRC_URI[csv-core-0.1.10.sha256sum] = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +SRC_URI[derive-getters-0.1.1.sha256sum] = "16dc4e2517f08ca167440ccb11023c1308ee19a4022d7b03c0e652f971171869" +SRC_URI[either-1.9.0.sha256sum] = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +SRC_URI[errno-0.3.3.sha256sum] = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" +SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +SRC_URI[fastrand-2.0.0.sha256sum] = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +SRC_URI[flate2-1.0.27.sha256sum] = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" +SRC_URI[getrandom-0.1.16.sha256sum] = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +SRC_URI[half-1.8.2.sha256sum] = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" +SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +SRC_URI[iana-time-zone-0.1.57.sha256sum] = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +SRC_URI[itoa-1.0.9.sha256sum] = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +SRC_URI[js-sys-0.3.64.sha256sum] = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +SRC_URI[junit-report-0.4.0.sha256sum] = "e4e00ad2de771fc4988af88b02cbd618c08c17920208c35c4bbfe67ccfab31eb" +SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +SRC_URI[linux-raw-sys-0.4.7.sha256sum] = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" +SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +SRC_URI[memchr-2.6.3.sha256sum] = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +SRC_URI[mio-0.8.8.sha256sum] = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +SRC_URI[num-traits-0.2.16.sha256sum] = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +SRC_URI[oorandom-11.1.3.sha256sum] = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" +SRC_URI[plotters-0.3.5.sha256sum] = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" +SRC_URI[plotters-backend-0.3.5.sha256sum] = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" +SRC_URI[plotters-svg-0.3.5.sha256sum] = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +SRC_URI[proc-macro2-1.0.66.sha256sum] = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +SRC_URI[quote-1.0.33.sha256sum] = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +SRC_URI[rand-0.7.3.sha256sum] = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +SRC_URI[rand_chacha-0.2.2.sha256sum] = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +SRC_URI[rand_core-0.5.1.sha256sum] = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +SRC_URI[rand_hc-0.2.0.sha256sum] = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +SRC_URI[rayon-1.7.0.sha256sum] = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +SRC_URI[rayon-core-1.11.0.sha256sum] = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +SRC_URI[regex-1.9.5.sha256sum] = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +SRC_URI[regex-automata-0.3.8.sha256sum] = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +SRC_URI[regex-syntax-0.7.5.sha256sum] = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" +SRC_URI[roxmltree-0.13.1.sha256sum] = "dbf7d7b1ea646d380d0e8153158063a6da7efe30ddbf3184042848e3f8a6f671" +SRC_URI[rustix-0.38.13.sha256sum] = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662" +SRC_URI[ryu-1.0.15.sha256sum] = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +SRC_URI[serde-1.0.188.sha256sum] = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +SRC_URI[serde-tuple-vec-map-1.0.1.sha256sum] = "a04d0ebe0de77d7d445bb729a895dcb0a288854b267ca85f030ce51cdc578c82" +SRC_URI[serde_cbor-0.11.2.sha256sum] = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" +SRC_URI[serde_derive-1.0.188.sha256sum] = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +SRC_URI[serde_json-1.0.106.sha256sum] = "2cc66a619ed80bf7a0f6b17dd063a84b88f6dea1813737cf469aef1d081142c2" +SRC_URI[serde_yaml-0.9.21.sha256sum] = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" +SRC_URI[stderrlog-0.5.4.sha256sum] = "69a26bbf6de627d389164afa9783739b56746c6c72c4ed16539f4ff54170327b" +SRC_URI[strsim-0.8.0.sha256sum] = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" +SRC_URI[structopt-0.3.26.sha256sum] = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +SRC_URI[structopt-derive-0.4.18.sha256sum] = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +SRC_URI[syn-2.0.32.sha256sum] = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2" +SRC_URI[tempfile-3.8.0.sha256sum] = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +SRC_URI[termcolor-1.1.3.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +SRC_URI[thiserror-1.0.48.sha256sum] = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" +SRC_URI[thiserror-impl-1.0.48.sha256sum] = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" +SRC_URI[thread_local-1.1.7.sha256sum] = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +SRC_URI[unsafe-libyaml-0.2.9.sha256sum] = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" +SRC_URI[vec_map-0.8.2.sha256sum] = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" +SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +SRC_URI[walkdir-2.4.0.sha256sum] = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +SRC_URI[wasi-0.9.0+wasi-snapshot-preview1.sha256sum] = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +SRC_URI[wasm-bindgen-0.2.87.sha256sum] = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +SRC_URI[wasm-bindgen-backend-0.2.87.sha256sum] = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +SRC_URI[wasm-bindgen-macro-0.2.87.sha256sum] = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +SRC_URI[wasm-bindgen-macro-support-0.2.87.sha256sum] = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +SRC_URI[wasm-bindgen-shared-0.2.87.sha256sum] = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +SRC_URI[web-sys-0.3.64.sha256sum] = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +SRC_URI[windows-0.48.0.sha256sum] = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +SRC_URI[xml-rs-0.8.18.sha256sum] = "bab77e97b50aee93da431f2cee7cd0f43b4d1da3c408042f2d7d164187774f0a" +SRC_URI[xmlparser-0.13.5.sha256sum] = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" diff --git a/meta-oe/recipes-graphics/deqp-runner/deqp-runner/0001-deqp-runner-drop-zstd-support.patch b/meta-oe/recipes-graphics/deqp-runner/deqp-runner/0001-deqp-runner-drop-zstd-support.patch new file mode 100644 index 0000000000..e29b78fde3 --- /dev/null +++ b/meta-oe/recipes-graphics/deqp-runner/deqp-runner/0001-deqp-runner-drop-zstd-support.patch @@ -0,0 +1,172 @@ +From f453ec77fa9e6fd961a1f5f0b221260a5a21bba2 Mon Sep 17 00:00:00 2001 +From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> +Date: Tue, 27 Aug 2024 14:08:47 +0300 +Subject: [PATCH] deqp-runner: drop zstd support + +Building zstd-sys results in the "foo contains reference to TMPDIR" QA +error. Revert commit 1adddf3aa89f21b472d8046347ccdfa4612f141b to drop +zstd dependency. + +Upstream-Status: Inappropriate [oe specific] +Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> +--- + Cargo.lock | 45 --------------------------------------------- + Cargo.toml | 3 --- + src/lib.rs | 31 +++++++------------------------ + 3 files changed, 7 insertions(+), 72 deletions(-) + +diff --git a/Cargo.lock b/Cargo.lock +index 8443695e2bd5..50924576a8e3 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -94,7 +94,6 @@ version = "1.0.83" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" + dependencies = [ +- "jobserver", + "libc", + ] + +@@ -271,7 +270,6 @@ dependencies = [ + "structopt", + "tempfile", + "toml", +- "zstd", + ] + + [[package]] +@@ -423,15 +421,6 @@ version = "1.0.9" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +-[[package]] +-name = "jobserver" +-version = "0.1.31" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +-dependencies = [ +- "libc", +-] +- + [[package]] + name = "js-sys" + version = "0.3.64" +@@ -544,12 +533,6 @@ version = "11.1.3" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +-[[package]] +-name = "pkg-config" +-version = "0.3.30" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +- + [[package]] + name = "plotters" + version = "0.3.5" +@@ -1217,31 +1200,3 @@ name = "xmlparser" + version = "0.13.5" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" +- +-[[package]] +-name = "zstd" +-version = "0.13.1" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" +-dependencies = [ +- "zstd-safe", +-] +- +-[[package]] +-name = "zstd-safe" +-version = "7.1.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" +-dependencies = [ +- "zstd-sys", +-] +- +-[[package]] +-name = "zstd-sys" +-version = "2.0.11+zstd.1.5.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "75652c55c0b6f3e6f12eb786fe1bc960396bf05a1eb3bf1f3691c3610ac2e6d4" +-dependencies = [ +- "cc", +- "pkg-config", +-] +diff --git a/Cargo.toml b/Cargo.toml +index ac6295763e87..1fa1344a3105 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -120,9 +120,6 @@ version = "3.2" + [dependencies.toml] + version = "0.5" + +-[dependencies.zstd] +-version = "0.13.0" +- + [dev-dependencies.criterion] + version = "0.3.0" + +diff --git a/src/lib.rs b/src/lib.rs +index e7095267f1cd..ff7bc4f5d025 100644 +--- a/src/lib.rs ++++ b/src/lib.rs +@@ -63,7 +63,6 @@ use rayon::prelude::*; + use regex::RegexSet; + use serde::Deserialize; + use std::collections::HashMap; +-use std::ffi::OsStr; + use std::fs::File; + use std::io::prelude::*; + use std::io::BufReader; +@@ -76,7 +75,6 @@ use std::time::Duration; + use std::time::Instant; + use structopt::StructOpt; + use timeout::{TimeoutChildExt, TimeoutChildStdout, Timer}; +-use zstd::stream::read::Decoder; + + fn parse_key_val<T, U>(s: &str) -> Result<(T, U), Box<dyn std::error::Error>> + where +@@ -1082,32 +1080,17 @@ pub fn read_lines<I: IntoIterator<Item = impl AsRef<Path>>>(files: I) -> Result< + let mut lines: Vec<String> = Vec::new(); + + for path in files { +- let mut path: &Path = path.as_ref(); +- let mut path_compressed: PathBuf = path.to_path_buf(); +- +- // always try append zst extension (and keep existing one, e.g. .txt) +- let ext = if let Some(file_ext) = path.extension().and_then(|ext| ext.to_str()) { +- format!("{}.zst", file_ext) +- } else { +- (".zst").to_string() +- }; +- +- path_compressed.set_extension(ext); +- if path_compressed.exists() { +- path = path_compressed.as_ref(); +- } +- let file = File::open(path).with_context(|| format!("opening path: {}", path.display()))?; +- let reader: Box<dyn Read> = match path.extension().and_then(OsStr::to_str) { +- Some("zst") => Box::new(Decoder::new(file).unwrap()), +- _ => Box::new(file), +- }; +- +- for line in BufReader::new(reader).lines() { ++ let path = path.as_ref(); ++ for line in BufReader::new( ++ File::open(path).with_context(|| format!("opening path: {}", path.display()))?, ++ ) ++ .lines() ++ { + let line = line.with_context(|| format!("reading line from {}", path.display()))?; + // In newer dEQP, vk-master.txt just contains a list of .txt + // caselist files relative to its current path, so recursively read + // thoseand append their contents. +- if line.ends_with(".txt") || line.ends_with(".txt.zst") { ++ if line.ends_with(".txt") { + let sub_path = path.parent().context("Getting path parent dir")?.join(line); + + lines.extend_from_slice( diff --git a/meta-oe/recipes-graphics/deqp-runner/deqp-runner_0.20.0.bb b/meta-oe/recipes-graphics/deqp-runner/deqp-runner_0.20.0.bb new file mode 100644 index 0000000000..04de074d24 --- /dev/null +++ b/meta-oe/recipes-graphics/deqp-runner/deqp-runner_0.20.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "A VK-GL-CTS/dEQP wrapper program to parallelize it across CPUs and report results against a baseline." +HOMEPAGE = "https://gitlab.freedesktop.org/mesa/deqp-runner" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=4f59d6446bf2e004e80df1a0937129fa\ +" + +inherit cargo cargo-update-recipe-crates + +SRC_URI += " \ + crate://crates.io/deqp-runner/0.20.0 \ + file://0001-deqp-runner-drop-zstd-support.patch \ +" + +SRC_URI[deqp-runner-0.20.0.sha256sum] = "a3f4fab1179a01cbbdbe4b93e0a040f74de7b9086498d91976d93844a31439dd" + +require deqp-runner-crates.inc 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 96aa31117f..59796cc65f 100644 --- a/meta-oe/recipes-graphics/directfb/directfb.inc +++ b/meta-oe/recipes-graphics/directfb/directfb.inc @@ -5,11 +5,11 @@ 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" -DEPENDS = "jpeg libpng freetype zlib sysfsutils" +DEPENDS = "jpeg libpng sysfsutils" SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/DirectFB-${PV}.tar.gz \ file://configurefix.patch \ @@ -21,34 +21,41 @@ SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/DirectFB-${PV}.tar.g 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 \ + file://0001-libdirect-remove-use-of-keyword-register.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" inherit autotools binconfig-disabled pkgconfig -PACKAGECONFIG ??= "linuxinput" -PACKAGECONFIG[jpeg2000] = "--enable-jpeg2000,--disable-jpeg2000,jasper" +PACKAGECONFIG ??= "freetype linuxinput zlib" PACKAGECONFIG[drmkms] = "--enable-drmkms,--disable-drmkms,libdrm" -PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff" -PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" -PACKAGECONFIG[tslib] = "--with-inputdrivers=tslib,,tslib" +PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype,freetype" +PACKAGECONFIG[jpeg2000] = "--enable-jpeg2000,--disable-jpeg2000,jasper" +PACKAGECONFIG[mesa] = "--enable-mesa,--disable-mesa,virtual/mesa," PACKAGECONFIG[linuxinput] = "--with-inputdrivers=linuxinput,," PACKAGECONFIG[noinput] = "--with-inputdrivers=none,," -PACKAGECONFIG[mesa] = "--enable-mesa,--disable-mesa,virtual/mesa," +PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff" +PACKAGECONFIG[tslib] = "--with-inputdrivers=tslib,,tslib" +PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,xserver-xorg," +PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" EXTRA_OECONF = "\ --with-gfxdrivers=none \ - --enable-freetype=yes \ - --enable-zlib \ --disable-imlib2 \ --disable-sdl \ --disable-vnc \ @@ -58,18 +65,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 \ @@ -77,7 +84,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-libdirect-remove-use-of-keyword-register.patch b/meta-oe/recipes-graphics/directfb/directfb/0001-libdirect-remove-use-of-keyword-register.patch new file mode 100644 index 0000000000..24d977f4dc --- /dev/null +++ b/meta-oe/recipes-graphics/directfb/directfb/0001-libdirect-remove-use-of-keyword-register.patch @@ -0,0 +1,44 @@ +From f6cdb9f1c3dbef8ef695703a2a5fb4e92b2dd8a0 Mon Sep 17 00:00:00 2001 +From: Simon Barth <simon.barth@gmx.de> +Date: Mon, 5 Aug 2024 19:35:16 +0200 +Subject: [PATCH] libdirect: remove use of keyword 'register' + +The 'register' keyword was removed in C++17 and is now unused and +reserved. When compiling code that uses DirecthFB with C++17, +compilation fails. + +Since modern compilers likely don't produce different code whether the +'register' keyword is used or not, there shouldn't be any performance +impact introduced by this change. + +Signed-off-by: Simon Barth <simon.barth@gmx.de> + +Upstream-Status: Submitted [https://github.com/deniskropp/DirectFB/pull/25] +--- + lib/direct/util.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/direct/util.h b/lib/direct/util.h +index 2109b6ca1..734645796 100644 +--- a/lib/direct/util.h ++++ b/lib/direct/util.h +@@ -220,7 +220,7 @@ void DIRECT_API direct_md5_sum( void *dst, const void *src, const int len ); + static __inline__ int + direct_util_count_bits( unsigned int mask ) + { +- register int ret = 0; ++ int ret = 0; + + while (mask) { + ret += mask & 1; +@@ -325,7 +325,7 @@ D_ICEIL(float f) + static __inline__ int + direct_log2( int val ) + { +- register int ret = 0; ++ int ret = 0; + + while (val >> ++ret); + +-- +2.25.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/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..6c06748499 --- /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 = "${@bb.utils.contains('PACKAGECONFIG', 'pdf', 'opengl', '', d)}" + +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.3.bb b/meta-oe/recipes-graphics/feh/feh_3.10.3.bb new file mode 100644 index 0000000000..5ab333c60d --- /dev/null +++ b/meta-oe/recipes-graphics/feh/feh_3.10.3.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] = "5426e2799770217af1e01c2e8c182d9ca8687d84613321d8ab4a66fe4041e9c8" + +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 947d36eb97..0000000000 --- a/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb +++ /dev/null @@ -1,61 +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" - -RPROVIDES_${PN}-dbg += "${PN}-python-dbg" - -FILES_${PN} += " \ - ${datadir}/mime \ - ${datadir}/icons \ -" - -FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR} ${datadir}/${PN}/python" -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_20240903.bb b/meta-oe/recipes-graphics/fontforge/libspiro_20240903.bb new file mode 100644 index 0000000000..7e07906e17 --- /dev/null +++ b/meta-oe/recipes-graphics/fontforge/libspiro_20240903.bb @@ -0,0 +1,17 @@ +# 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] = "1412a21b943c6e1db834ee2d74145aad20b3f62b12152d475613b8241d9cde10" + +UPSTREAM_CHECK_URI = "https://github.com/fontforge/libspiro/releases" +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+)" + +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-Fix-type-mismatch-with-latest-FreeType.patch b/meta-oe/recipes-graphics/ftgl/ftgl/0001-Fix-type-mismatch-with-latest-FreeType.patch new file mode 100644 index 0000000000..9c91b5be19 --- /dev/null +++ b/meta-oe/recipes-graphics/ftgl/ftgl/0001-Fix-type-mismatch-with-latest-FreeType.patch @@ -0,0 +1,33 @@ +From d11219b681a080c71e33c51c9404c28b134e1745 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 21 Aug 2024 13:50:34 -0700 +Subject: [PATCH] Fix type mismatch with latest FreeType + +This change is intrumented due to a type change in freetype [1] with release 2.13.3 + +Fixes +| ../../git/src/FTVectoriser.cpp:171:15: error: cannot initialize a variable of type 'char *' with an rvalue of type 'unsigned char *' +| 171 | char* tagList = &outline.tags[startIndex]; +| | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ + +[1] https://gitlab.freedesktop.org/freetype/freetype/-/commit/044d142be7b6a93b6940367a1bc5847451ff4775 + +Upstream-Status: Submitted [https://github.com/HamzaM3/ftgl/pull/1] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/FTVectoriser.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/FTVectoriser.cpp b/src/FTVectoriser.cpp +index 26e7da8..3610215 100644 +--- a/src/FTVectoriser.cpp ++++ b/src/FTVectoriser.cpp +@@ -168,7 +168,7 @@ void FTVectoriser::ProcessContours() + for(int i = 0; i < ftContourCount; ++i) + { + FT_Vector* pointList = &outline.points[startIndex]; +- char* tagList = &outline.tags[startIndex]; ++ char* tagList = (char*)&outline.tags[startIndex]; + + endIndex = outline.contours[i]; + contourLength = (endIndex - startIndex) + 1; diff --git a/meta-oe/recipes-graphics/ftgl/ftgl_2.4.0.bb b/meta-oe/recipes-graphics/ftgl/ftgl_2.4.0.bb new file mode 100644 index 0000000000..4db453bc66 --- /dev/null +++ b/meta-oe/recipes-graphics/ftgl/ftgl_2.4.0.bb @@ -0,0 +1,20 @@ +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 \ +" +SRCREV = "b787042cc1d1e4861337d5f9a6727e4c6900a4f2" +PV .= "+git" + +SRC_URI = "git://github.com/HamzaM3/ftgl;protocol=https;branch=master \ + file://0001-Fix-type-mismatch-with-latest-FreeType.patch" + +S = "${WORKDIR}/git" 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..fcf1bd9cae 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 \ @@ -74,41 +72,58 @@ EXTRA_OECONF = " \ --without-xpm-library \ ac_cv_func_mkstemp=no \ has_safety_mkstemp=yes \ + ac_cv_path_FVWM_CPP=cpp \ + ac_cv_path_PERL=perl \ " # show the exact commands in the log file 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 + sed -i -e 's:${WORKDIR}::g' ${D}${bindir}/fvwm-bug } # 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 7f16708edb..0000000000 --- a/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb +++ /dev/null @@ -1,26 +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" - -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..aba590aa02 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 @@ -20,3 +19,8 @@ EXTRA_OECONF += "--with-jpeg-prefix=${STAGING_INCDIR} \ --without-cdk \ " +INSANE_SKIP:${PN} = "already-stripped" + +do_install:append() { + sed -i -e 's#${RECIPE_SYSROOT}##g' ${D}${bindir}/gphoto2 +} 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/fix-build-with-gcc-14.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/fix-build-with-gcc-14.patch new file mode 100644 index 0000000000..0c2a8d4bd0 --- /dev/null +++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/fix-build-with-gcc-14.patch @@ -0,0 +1,36 @@ +From 721f7f8c3ec8058d504607873e4c317aac0c99c5 Mon Sep 17 00:00:00 2001 +From: Marcus Meissner <marcus@jet.franken.de> +Date: Mon, 4 Dec 2023 13:26:08 +0100 +Subject: [PATCH] align outlen length with jpeg jeaders. fixes + https://github.com/gphoto/libgphoto2/issues/941 + +--- +Upstream-Status: Backport [https://github.com/gphoto/libgphoto2/commit/721f7f8c3ec8058d504607873e4c317aac0c99c5] + + camlibs/ptp2/chdk.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/camlibs/ptp2/chdk.c b/camlibs/ptp2/chdk.c +index e1d898f378..e775ea1d4b 100644 +--- a/camlibs/ptp2/chdk.c ++++ b/camlibs/ptp2/chdk.c +@@ -1150,7 +1150,7 @@ static void yuv_live_to_jpeg(unsigned char *p_yuv, + struct jpeg_error_mgr jerr; + JSAMPROW row_ptr[1]; + uint8_t *outbuf = NULL, *tmprowbuf = NULL; +- uint64_t outlen = 0; ++ unsigned long outlen = 0; + unsigned int row_inc; + int sshift, dshift, xshift, skip; + +@@ -1161,8 +1161,8 @@ static void yuv_live_to_jpeg(unsigned char *p_yuv, + sshift = 6; + dshift = (width/height > 2) ? 6 : 12; + xshift = 4; +- /* Digic 6 cameras: 8 bit per element UYVY, +- * 4 bytes used to encode 2 pixels, need 6 bytes raw YUV data for jpeg encoding */ ++ /* Digic 6 cameras: 8 bit per element UYVY, ++ * 4 bytes used to encode 2 pixels, need 6 bytes raw YUV data for jpeg encoding */ + } else { + row_inc = buf_width*2; + sshift = 4; diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.bb b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.31.bb index 91c5ed2116..57c9d199eb 100644 --- a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.17.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,12 @@ 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 \ + file://fix-build-with-gcc-14.patch \ " - -SRC_URI[libgphoto2.md5sum] = "ae78e7a7936a6962c3a22b256bee1869" -SRC_URI[libgphoto2.sha256sum] = "417464f0a313fa937e8a71cdf18a371cf01e750830195cd63ae31da0d092b555" +SRC_URI[libgphoto2.sha256sum] = "4f81c34c0b812bee67afd5f144940fbcbe01a2055586a6a1fa2d0626024a545b" inherit autotools pkgconfig gettext lib_package @@ -27,28 +25,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..7548e976f1 --- /dev/null +++ b/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb @@ -0,0 +1,124 @@ +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" + +UPSTREAM_CHECK_URI = "https://graphviz.org/download/" +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)" + +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..a5c8de8f61 100644 --- a/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb +++ b/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb @@ -1,32 +1,37 @@ 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" SRC_URI[sha256sum] = "9704344e732038eecbd007dd996a56293a6b027b5b76f3f036273a3fae1ab27b" +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/gtkperf/files/gtkperf/" +UPSTREAM_CHECK_REGEX = "${BPN}_(?P<pver>\d+(\.\d+)+)" + 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.120.bb b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.120.bb new file mode 100644 index 0000000000..b7807c8853 --- /dev/null +++ b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.120.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] = "5da94863fb2e5d88cc019e2bfdc676022398113894b585d864e11ca8341b24d8" +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..8e5febd7a1 --- /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.3" +SRCREV = "143c60194c0948aac484d37bb23c59edea2ccf19" + +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.84.1.bb index 91fa00cc96..89a35116c3 100644 --- a/meta-oe/recipes-graphics/leptonica/leptonica_1.74.4.bb +++ b/meta-oe/recipes-graphics/leptonica/leptonica_1.84.1.bb @@ -1,11 +1,13 @@ 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" +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)" + +SRC_URI = "http://www.leptonica.org/source/leptonica-${PV}.tar.gz" +SRC_URI[sha256sum] = "2b3e1254b1cca381e77c819b59ca99774ff43530209b9aeb511e1d46588a64f6" 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..db648ec8c2 --- /dev/null +++ b/meta-oe/recipes-graphics/libforms/libforms_1.2.5pre1.bb @@ -0,0 +1,31 @@ +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" + +do_compile:append() { + sed -i -e 's|${B}|.|' ${B}/fd2ps/fd2ps + sed -i -e 's|${B}|.|' ${B}/fdesign/fdesign +} 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/libmng/libmng_2.0.3.bb b/meta-oe/recipes-graphics/libmng/libmng_2.0.3.bb index ba928d281d..f9d3496d90 100644 --- a/meta-oe/recipes-graphics/libmng/libmng_2.0.3.bb +++ b/meta-oe/recipes-graphics/libmng/libmng_2.0.3.bb @@ -13,6 +13,9 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz" SRC_URI[md5sum] = "7e9a12ba2a99dff7e736902ea07383d4" SRC_URI[sha256sum] = "cf112a1fb02f5b1c0fce5cab11ea8243852c139e669c44014125874b14b7dfaa" +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/libmng/files/libmng-devel/" +UPSTREAM_CHECK_REGEX = "libmng-devel/(?P<pver>\d+(\.\d+)+)" + inherit autotools-brokensep pkgconfig PACKAGECONFIG ??= "jpeg" 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.27.bb index b077a0bdf8..4f702029d9 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb +++ b/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.27.bb @@ -3,11 +3,12 @@ SECTION = "libs" LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://LICENSE;md5=5d1de21f0b70830e299905eac3419084" -DEPENDS = "virtual/libsdl" +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" +SRC_URI[sha256sum] = "dfb15ac5f8ce7a4952dc12d2aed9747518c5e6b335c0e31636d23f93c630f419" + +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/sdlgfx/files/" S = "${WORKDIR}/SDL_gfx-${PV}" 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 index 5299d378eb..102cec7288 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch +++ b/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch @@ -1,3 +1,5 @@ +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 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 index ea8e9eaa30..01137bb0ca 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb +++ b/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb @@ -4,11 +4,11 @@ SECTION = "libs" LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://COPYING;md5=613734b7586e1580ef944961c6d62227" -DEPENDS = "tiff zlib libpng jpeg virtual/libsdl" +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[md5sum] = "a0f9098ebe5400f0bdc9b62e60797ecb" SRC_URI[sha256sum] = "0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699" S = "${WORKDIR}/SDL_image-${PV}" @@ -20,7 +20,7 @@ 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() { +do_configure:prepend() { # Removing these files fixes a libtool version mismatch. rm -f ${S}/acinclude/libtool.m4 rm -f ${S}/acinclude/sdl.m4 diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch b/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch index 4c9e8d094c..7330ef61aa 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch +++ b/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch @@ -1,3 +1,5 @@ +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 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 index c83fcc8daa..a470ee81d0 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl-mixer_1.2.12.bb +++ b/meta-oe/recipes-graphics/libsdl/libsdl-mixer_1.2.12.bb @@ -1,6 +1,6 @@ SUMMARY = "Simple DirectMedia Layer mixer library" SECTION = "libs" -DEPENDS = "virtual/libsdl flac libmikmod libvorbis" +DEPENDS = "libsdl flac libmikmod libvorbis" LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://COPYING;md5=a37a47a0e579e461474cd03b9e05199d" diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch b/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch index fb3ff7e689..7911a2aa75 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch +++ b/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch @@ -1,3 +1,5 @@ +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 diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch b/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch index 9718a3b94a..e491c1abce 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch +++ b/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch @@ -3,6 +3,8 @@ 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/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb b/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb index b021e565ef..49b1ef2879 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb +++ b/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=9cf3de2d872bf510f88eb20d06d700b5" inherit autotools pkgconfig -DEPENDS = "virtual/libsdl" +DEPENDS = "libsdl" SRC_URI = " \ https://www.libsdl.org/projects/SDL_net/release/SDL_net-${PV}.tar.gz \ 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 index 1116c34d07..d174d7ab5c 100644 --- 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 @@ -8,6 +8,8 @@ commit 5870bd272b0b077d0826fb900b251884c1c05061 binconfig-disabled: Add class and use --- +Upstream-Status: Pending + configure.in | 38 +++++--------------------------------- 1 file changed, 5 insertions(+), 33 deletions(-) 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 index d8b378f2cd..797c38d8e1 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl-ttf_2.0.11.bb +++ b/meta-oe/recipes-graphics/libsdl/libsdl-ttf_2.0.11.bb @@ -1,6 +1,6 @@ SUMMARY = "Simple DirectMedia Layer truetype font library" SECTION = "libs" -DEPENDS = "virtual/libsdl freetype" +DEPENDS = "libsdl freetype" LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://COPYING;md5=22800d1b3701377aae0b61ee36f5c303" @@ -16,7 +16,7 @@ inherit autotools pkgconfig LDFLAGS += "-lm" -do_configure_prepend() { +do_configure:prepend() { # make autoreconf happy touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.3.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.2.bb index 6deb352e65..267311853a 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.3.bb +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.2.bb @@ -2,13 +2,12 @@ SUMMARY = "Simple DirectMedia Layer image library v2" SECTION = "libs" LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=a855a9eb5507fc556e672080c4b428ca" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2f6d9e01c97958aa851954ed5acf82ee" -DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp" +DEPENDS = "tiff zlib libpng jpeg libsdl2 libwebp" SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz" -SRC_URI[md5sum] = "c6baf6dfa80fa8a66853661a36a6034e" -SRC_URI[sha256sum] = "3510c25da735ffcd8ce3b65073150ff4f7f9493b866e85b83738083b556d2368" +SRC_URI[sha256sum] = "8f486bbfbcf8464dd58c9e5d93394ab0255ce68b51c5a966a918244820a76ddc" S = "${WORKDIR}/SDL2_image-${PV}" @@ -17,7 +16,7 @@ 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() { +do_configure:prepend() { # make autoreconf happy touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog # Removing these files fixes a libtool version mismatch. 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.2.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb index 718f3f5fde..dbcb2a193b 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.2.bb +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb @@ -1,24 +1,24 @@ SUMMARY = "Simple DirectMedia Layer mixer library V2" SECTION = "libs" -DEPENDS = "virtual/libsdl2 flac libmikmod libvorbis" +DEPENDS = "libsdl2 flac libmikmod libvorbis" LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=95e0c3cf63f71b950911e698a54b7fc5" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=516daf7a177ad4c8874bb9efa1a69c1f" -SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${PV}.tar.gz" - -SRC_URI[md5sum] = "aaa0551393993c14a13f72b339c0ed6c" -SRC_URI[sha256sum] = "4e615e27efca4f439df9af6aa2c6de84150d17cbfd12174b54868c12f19c83bb" +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_AUTORECONF += "--include=acinclude" -EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}" +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 () { +do_configure:prepend () { # Remove old libtool macros. MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" for i in ${MACROS}; do 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 index 0ea96fe1b8..35369e8731 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb @@ -10,12 +10,12 @@ S = "${WORKDIR}/SDL2_net-${PV}" inherit autotools pkgconfig -DEPENDS = "virtual/libsdl2" +DEPENDS = "libsdl2" SRC_URI[md5sum] = "5c1d9d1cfa63301b141cb5c0de2ea7c4" SRC_URI[sha256sum] = "15ce8a7e5a23dafe8177c8df6e6c79b6749a03fff1e8196742d3571657609d21" -do_configure_prepend() { +do_configure:prepend() { # create dummy files which autotools consider as mandatory touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog 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 index 871e6e94ef..bc9371553f 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch @@ -1,16 +1,18 @@ -From f9c4ad3a171d676e3818b8f6897f325ccf0b2203 Mon Sep 17 00:00:00 2001 +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 8166d91..8e05e49 100644 +index 8568dd2..5efc91e 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -2,6 +2,8 @@ +@@ -3,6 +3,8 @@ ACLOCAL_AMFLAGS = -I acinclude lib_LTLIBRARIES = libSDL2_ttf.la diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/use.pkg-config.for.freetype2.patch b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/use.pkg-config.for.freetype2.patch deleted file mode 100644 index 1dfbec6edd..0000000000 --- a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/use.pkg-config.for.freetype2.patch +++ /dev/null @@ -1,62 +0,0 @@ -From e6d2c0e130811c15b5f5cc10221fae182cb8609e 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 - ---- - configure.in | 38 +++++--------------------------------- - 1 file changed, 5 insertions(+), 33 deletions(-) - -diff --git a/configure.in b/configure.in -index 9b36e15..f300cae 100644 ---- a/configure.in -+++ b/configure.in -@@ -86,39 +86,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=2.0.0 diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb deleted file mode 100644 index 4601593ad8..0000000000 --- a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.0.14.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "Simple DirectMedia Layer truetype font library" -SECTION = "libs" -DEPENDS = "virtual/libsdl2 freetype virtual/libgl" -LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=cb33e7c4df9fbde389f149ad6bc93ce5" - -SRC_URI = " \ - http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PV}.tar.gz \ - file://use.pkg-config.for.freetype2.patch \ - file://automake_foreign.patch \ -" -SRC_URI[md5sum] = "e53c05e1e7f1382c316afd6c763388b1" -SRC_URI[sha256sum] = "34db5e20bcf64e7071fe9ae25acaa7d72bdc4f11ab3ce59acc768ab62fe39276" - -S = "${WORKDIR}/SDL2_ttf-${PV}" - -inherit autotools pkgconfig distro_features_check - -# links to libGL.so -REQUIRED_DISTRO_FEATURES += "x11 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/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.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/libvncserver/libvncserver_git.bb b/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb deleted file mode 100644 index 25917756fc..0000000000 --- a/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb +++ /dev/null @@ -1,23 +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" - -PACKAGECONFIG ??= "gcrypt gnutls jpeg png ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)} sdl zlib" -PACKAGECONFIG[gcrypt] = ",,libgcrypt,libgcrypt" -PACKAGECONFIG[gnutls] = ",,gnutls" -PACKAGECONFIG[jpeg] = ",-DWITH_JPEG=OFF,jpeg" -PACKAGECONFIG[openssl] = ",,openssl" -PACKAGECONFIG[png] = ",-DWITH_PNG=OFF,libpng,libpng" -PACKAGECONFIG[systemd] = ",,systemd" -PACKAGECONFIG[sdl] = ",,libsdl2" -PACKAGECONFIG[zlib] = ",,zlib" - -inherit cmake - -SRC_URI = "git://github.com/LibVNC/libvncserver" -SRCREV = "f997b5a75fa171d79c5e568b7157fba83c8d8355" - -S = "${WORKDIR}/git" 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-Use-override-consistently.patch b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Use-override-consistently.patch deleted file mode 100644 index 6d4bdc2ab6..0000000000 --- a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Use-override-consistently.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 0acfb67f99fd8d6af323311fee8c08116295b148 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Wed, 5 Sep 2018 18:21:19 -0700 -Subject: [PATCH 1/2] Use override consistently - -Make clang++ happy -error: 'setApplicationTitle' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-over ride] - -Upstream-Status: Submitted [https://github.com/libyui/libyui-ncurses/pull/69] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/NCApplication.h | 46 ++++++++++++++++++++++----------------------- - 1 file changed, 23 insertions(+), 23 deletions(-) - -diff --git a/src/NCApplication.h b/src/NCApplication.h -index e24c3eb..09e4708 100644 ---- a/src/NCApplication.h -+++ b/src/NCApplication.h -@@ -60,7 +60,7 @@ public: - * Reimplemented from YApplication. - **/ - virtual void setLanguage( const std::string & language, -- const std::string & encoding = std::string() ); -+ const std::string & encoding = std::string() ) override; - - /** - * Open a directory selection box and prompt the user for an existing -@@ -77,7 +77,7 @@ public: - * Implemented from YApplication. - **/ - virtual std::string askForExistingDirectory( const std::string & startDir, -- const std::string & headline ); -+ const std::string & headline ) override; - - /** - * Open a file selection box and prompt the user for an existing file. -@@ -97,7 +97,7 @@ public: - **/ - virtual std::string askForExistingFile( const std::string & startWith, - const std::string & filter, -- const std::string & headline ); -+ const std::string & headline ) override; - - /** - * Open a file selection box and prompt the user for a file to save data -@@ -119,28 +119,28 @@ public: - **/ - virtual std::string askForSaveFileName( const std::string & startWith, - const std::string & filter, -- const std::string & headline ); -+ const std::string & headline ) override; - - /** - * Beep. - * - * Reimplemented from YApplication. - **/ -- virtual void beep(); -+ virtual void beep() override; - - /** - * Redraw the screen. - * - * Reimplemented from YApplication. - **/ -- virtual void redrawScreen(); -+ virtual void redrawScreen() override; - - /** - * Initialize the (text) console keyboard. - * - * Reimplemented from YApplication. - **/ -- virtual void initConsoleKeyboard(); -+ virtual void initConsoleKeyboard() override; - - /** - * Set the (text) console font according to the current encoding etc. -@@ -152,7 +152,7 @@ public: - const std::string & font, - const std::string & screen_map, - const std::string & unicode_map, -- const std::string & language ); -+ const std::string & language ) override; - - /** - * Run a shell command (typically an interactive program using NCurses) -@@ -165,7 +165,7 @@ public: - * - * Reimplemented from YApplication. - **/ -- virtual int runInTerminal( const std::string & command ); -+ virtual int runInTerminal( const std::string & command ) override; - - - /// @{ -@@ -183,33 +183,33 @@ public: - // - // All implemented from YApplication. - -- virtual int displayWidth(); -- virtual int displayHeight(); -- virtual int displayDepth(); -- virtual long displayColors(); -+ virtual int displayWidth() override; -+ virtual int displayHeight() override; -+ virtual int displayDepth() override; -+ virtual long displayColors() override; - -- virtual int defaultWidth(); -- virtual int defaultHeight(); -+ virtual int defaultWidth() override; -+ virtual int defaultHeight() override; - -- virtual bool isTextMode() { return true; } -+ virtual bool isTextMode() override { return true; } - -- virtual bool hasImageSupport() { return false; } -+ virtual bool hasImageSupport() override { return false; } - -- virtual bool hasIconSupport() { return false; } -+ virtual bool hasIconSupport() override { return false; } - -- virtual bool hasAnimationSupport() { return false; } -+ virtual bool hasAnimationSupport() override { return false; } - -- virtual bool hasFullUtf8Support(); -- virtual bool richTextSupportsTable() { return false; } -+ virtual bool hasFullUtf8Support() override; -+ virtual bool richTextSupportsTable() override { return false; } - -- virtual bool leftHandedMouse() { return false; } -+ virtual bool leftHandedMouse() override { return false; } - - /** - * Set the application title - * - * Reimplemented from YApplication. - **/ -- virtual void setApplicationTitle(const std::string& title); -+ virtual void setApplicationTitle(const std::string& title) override; - }; - - --- -2.18.0 - diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch deleted file mode 100644 index f65cbe6679..0000000000 --- a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 162a0899f1dacd83007c4e82b9034f55610d8c20 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Wed, 5 Sep 2018 19:01:51 -0700 -Subject: [PATCH 2/2] Define own resize in NCPad and fix param type of - SetLabel() - -Explicitly override resize() to avoid conflicts from NCursesWindow -definition since there is another resize definition as well - -Fixes -src/NCPad.h:164:18: error: 'NCPad::resize' hides overloaded virtual function [-Werror,-Woverloaded-virtual] - -NCTablePad.h:132:18: error: 'NCTableTag::SetLabel' hides overloaded virtual function [-Werror,-Woverloaded-virtual] - -Upstream-Status: Submitted [https://github.com/libyui/libyui-ncurses/pull/69] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/NCPad.h | 1 + - src/NCTablePad.h | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/NCPad.h b/src/NCPad.h -index 328c4aa..d8fb324 100644 ---- a/src/NCPad.h -+++ b/src/NCPad.h -@@ -162,6 +162,7 @@ public: - virtual void Destwin( NCursesWindow * dwin ); - - virtual void resize( wsze nsze ); -+ virtual int resize( int lines, int columns ) { return NCursesWindow::resize(lines, columns );} - virtual void wRecoded(); - virtual void setDirty() { dirty = true; } - -diff --git a/src/NCTablePad.h b/src/NCTablePad.h -index c450529..3756796 100644 ---- a/src/NCTablePad.h -+++ b/src/NCTablePad.h -@@ -129,7 +129,7 @@ public: - - virtual ~NCTableTag() {} - -- virtual void SetLabel( const NCstring & ) { /*NOOP*/; } -+ virtual void SetLabel( const NClabel & ) { /*NOOP*/; } - - virtual void DrawAt( NCursesWindow & w, const wrect at, - NCTableStyle & tableStyle, --- -2.18.0 - diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0003-Simplify-ncurses-finding-module.patch b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0003-Simplify-ncurses-finding-module.patch deleted file mode 100644 index 2520ac46fe..0000000000 --- a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0003-Simplify-ncurses-finding-module.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c2291fe28dc5682f81804941512431642975cf21 Mon Sep 17 00:00:00 2001 -From: Pascal Bach <pascal.bach@siemens.com> -Date: Mon, 29 Oct 2018 18:17:32 +0100 -Subject: [PATCH] Simplify ncurses finding module - -CMake will automatically look in the right locations, there is no need to -re-implement the logic with a for loop and NO_DEFAULT_PATH. - -It is already done like this to file the headers. - -Upstream-Status: Submitted [https://github.com/libyui/libyui-ncurses/pull/73] -Signed-off-by: Pascal Bach <pascal.bach@siemens.com> ---- - cmake/Modules/FindCurses6.cmake | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git a/cmake/Modules/FindCurses6.cmake b/cmake/Modules/FindCurses6.cmake -index 0bf02c3..e298d5d 100644 ---- a/cmake/Modules/FindCurses6.cmake -+++ b/cmake/Modules/FindCurses6.cmake -@@ -5,11 +5,9 @@ - # CURSES6_LIBRARIES - The libraries needed to use Curses6 - # CURSES6_DEFINITIONS - Compiler switches required for using Curses6 - --FOREACH(path ${CMAKE_LIBRARY_PATH} /usr/${LIB_DIR}) -- FIND_LIBRARY(CURSES6_NCURSESW_LIBRARY NAMES ncursesw PATHS ${path}/ncurses6 ${path} NO_DEFAULT_PATH) -- FIND_LIBRARY(CURSES6_PANELW_LIBRARY NAMES panelw PATHS ${path}/ncurses6 ${path} NO_DEFAULT_PATH) -- FIND_LIBRARY(CURSES6_TINFO_LIBRARY NAMES tinfo PATHS ${path}/ncurses6 ${path} NO_DEFAULT_PATH) --ENDFOREACH() -+FIND_LIBRARY(CURSES6_NCURSESW_LIBRARY NAMES ncursesw PATH_SUFFIXES ncurses6) -+FIND_LIBRARY(CURSES6_PANELW_LIBRARY NAMES panelw PATH_SUFFIXES ncurses6) -+FIND_LIBRARY(CURSES6_TINFO_LIBRARY NAMES tinfo PATH_SUFFIXES ncurses6) - - SET(CURSES6_LIBRARIES ${CURSES6_NCURSESW_LIBRARY} ${CURSES6_PANELW_LIBRARY}) - # tinfo is optional (in 12.1 is not there) diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.6.2.bb b/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.6.2.bb new file mode 100644 index 0000000000..4196449f3a --- /dev/null +++ b/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.6.2.bb @@ -0,0 +1,56 @@ +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 \ + " + +SRC_URI:append:class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch" + +SRCREV = "e691b563262306a40a61bbf228839fa06e4f0516" + +S = "${WORKDIR}/git/libyui-ncurses" + +inherit cmake gettext pkgconfig + +DEPENDS += "boost libyui ncurses" + +BBCLASSEXTEND = "nativesdk" + +EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release -DWERROR=OFF -DCMAKE_SKIP_RPATH=1" + +# TODO: Check with newer GCC, it works ok with GCC +# GCC-14 causes buildpaths QA error +# WARNING: libyui-ncurses-4.6.2-r0 do_package_qa: QA Issue: File /usr/lib/yui/.debug/libyui-ncurses.so.16.0.0 in package libyui-ncurses-dbg contains reference to TMPDIR [buildpaths + +DEBUG_LEVELFLAG = "" + +CXXFLAGS += "-DNCURSES_WIDECHAR" +LDFLAGS += "-L${B}/src" + +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 18ea2e8285..0000000000 --- a/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb +++ /dev/null @@ -1,51 +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-override-consistently.patch \ - file://0002-Define-own-resize-in-NCPad-and-fix-param-type-of-Set.patch \ - file://0003-Simplify-ncurses-finding-module.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 = "c941b32246e8b2952fce4fd5743f8e318222ab98" - -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 -e "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt - sed -i -e "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 index 4269018192..d3463ca056 100644 --- 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 @@ -65,8 +65,6 @@ Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/123] src/YWizard.h | 2 +- 47 files changed, 48 insertions(+), 48 deletions(-) -diff --git a/src/YAlignment.h b/src/YAlignment.h -index d716c77..7276944 100644 --- a/src/YAlignment.h +++ b/src/YAlignment.h @@ -28,7 +28,7 @@ @@ -78,8 +76,6 @@ index d716c77..7276944 100644 /** * Implementation of all the alignment widgets: -diff --git a/src/YBarGraph.h b/src/YBarGraph.h -index 29f7f26..d7eaad2 100644 --- a/src/YBarGraph.h +++ b/src/YBarGraph.h @@ -29,7 +29,7 @@ @@ -91,8 +87,6 @@ index 29f7f26..d7eaad2 100644 class YBarGraphSegment; /** -diff --git a/src/YBusyIndicator.h b/src/YBusyIndicator.h -index 9530fa5..75297d8 100644 --- a/src/YBusyIndicator.h +++ b/src/YBusyIndicator.h @@ -27,7 +27,7 @@ @@ -104,8 +98,6 @@ index 9530fa5..75297d8 100644 /** -diff --git a/src/YButtonBox.h b/src/YButtonBox.h -index 84f8dbb..ca51f57 100644 --- a/src/YButtonBox.h +++ b/src/YButtonBox.h @@ -30,7 +30,7 @@ @@ -126,8 +118,6 @@ index 84f8dbb..ca51f57 100644 protected: /** -diff --git a/src/YCheckBox.h b/src/YCheckBox.h -index 793cc77..03f3faa 100644 --- a/src/YCheckBox.h +++ b/src/YCheckBox.h @@ -30,7 +30,7 @@ @@ -139,8 +129,6 @@ index 793cc77..03f3faa 100644 enum YCheckBoxState { -diff --git a/src/YCheckBoxFrame.h b/src/YCheckBoxFrame.h -index 243f1a0..7017110 100644 --- a/src/YCheckBoxFrame.h +++ b/src/YCheckBoxFrame.h @@ -29,7 +29,7 @@ @@ -152,8 +140,6 @@ index 243f1a0..7017110 100644 /** -diff --git a/src/YComboBox.h b/src/YComboBox.h -index 416359a..ad0e550 100644 --- a/src/YComboBox.h +++ b/src/YComboBox.h @@ -27,7 +27,7 @@ @@ -165,8 +151,6 @@ index 416359a..ad0e550 100644 /** -diff --git a/src/YCommandLine.h b/src/YCommandLine.h -index 70cb4fe..f344a3b 100644 --- a/src/YCommandLine.h +++ b/src/YCommandLine.h @@ -28,7 +28,7 @@ @@ -178,8 +162,6 @@ index 70cb4fe..f344a3b 100644 /** -diff --git a/src/YContextMenu.h b/src/YContextMenu.h -index a4acb1c..1253002 100644 --- a/src/YContextMenu.h +++ b/src/YContextMenu.h @@ -29,7 +29,7 @@ @@ -191,8 +173,6 @@ index a4acb1c..1253002 100644 /** -diff --git a/src/YDateField.h b/src/YDateField.h -index e5a468d..6164fba 100644 --- a/src/YDateField.h +++ b/src/YDateField.h @@ -27,7 +27,7 @@ @@ -204,8 +184,6 @@ index e5a468d..6164fba 100644 /** * Input field for entering a date. -diff --git a/src/YDialog.h b/src/YDialog.h -index 66c25c0..371209b 100644 --- a/src/YDialog.h +++ b/src/YDialog.h @@ -32,7 +32,7 @@ @@ -217,8 +195,6 @@ index 66c25c0..371209b 100644 class YEvent; class YEventFilter; -diff --git a/src/YDownloadProgress.h b/src/YDownloadProgress.h -index c47ec4f..fe09a9d 100644 --- a/src/YDownloadProgress.h +++ b/src/YDownloadProgress.h @@ -28,7 +28,7 @@ @@ -230,8 +206,6 @@ index c47ec4f..fe09a9d 100644 /** * DownloadProgress: A progress bar that monitors downloading a file by -diff --git a/src/YDumbTab.h b/src/YDumbTab.h -index aec17a3..f8fb250 100644 --- a/src/YDumbTab.h +++ b/src/YDumbTab.h @@ -27,7 +27,7 @@ @@ -243,8 +217,6 @@ index aec17a3..f8fb250 100644 /** * DumbTab: A very simple tab widget that can display and switch between a -diff --git a/src/YEmpty.h b/src/YEmpty.h -index 9a3cb36..9b88fbc 100644 --- a/src/YEmpty.h +++ b/src/YEmpty.h @@ -29,7 +29,7 @@ @@ -256,8 +228,6 @@ index 9a3cb36..9b88fbc 100644 /** * A widget with zero size, useful as a placeholder. -diff --git a/src/YEventFilter.h b/src/YEventFilter.h -index 3dc1803..74aa62d 100644 --- a/src/YEventFilter.h +++ b/src/YEventFilter.h @@ -32,7 +32,7 @@ @@ -269,8 +239,6 @@ index 3dc1803..74aa62d 100644 /** -diff --git a/src/YFrame.h b/src/YFrame.h -index 111e8ec..4f8c61e 100644 --- a/src/YFrame.h +++ b/src/YFrame.h @@ -29,7 +29,7 @@ @@ -282,8 +250,6 @@ index 111e8ec..4f8c61e 100644 /** -diff --git a/src/YGraph.h b/src/YGraph.h -index d90d1ae..287d800 100644 --- a/src/YGraph.h +++ b/src/YGraph.h @@ -37,7 +37,7 @@ @@ -295,8 +261,6 @@ index d90d1ae..287d800 100644 /** * A graph with nodes and edges, rendered with Graphviz. -diff --git a/src/YImage.h b/src/YImage.h -index 17bea21..84eb674 100644 --- a/src/YImage.h +++ b/src/YImage.h @@ -29,7 +29,7 @@ @@ -308,8 +272,6 @@ index 17bea21..84eb674 100644 /** * A picture, possibly animated, loaded from a file. -diff --git a/src/YInputField.h b/src/YInputField.h -index 70641ce..fa29b42 100644 --- a/src/YInputField.h +++ b/src/YInputField.h @@ -28,7 +28,7 @@ @@ -321,8 +283,6 @@ index 70641ce..fa29b42 100644 -diff --git a/src/YIntField.h b/src/YIntField.h -index 9da0537..8ad2949 100644 --- a/src/YIntField.h +++ b/src/YIntField.h @@ -27,7 +27,7 @@ @@ -334,8 +294,6 @@ index 9da0537..8ad2949 100644 -diff --git a/src/YLabel.h b/src/YLabel.h -index d2fff61..bf06d8b 100644 --- a/src/YLabel.h +++ b/src/YLabel.h @@ -30,7 +30,7 @@ @@ -347,8 +305,6 @@ index d2fff61..bf06d8b 100644 /** * Implementation of the Label, Heading and OutputField widgets -diff --git a/src/YLayoutBox.h b/src/YLayoutBox.h -index e652a45..070eaff 100644 --- a/src/YLayoutBox.h +++ b/src/YLayoutBox.h @@ -29,7 +29,7 @@ @@ -360,8 +316,6 @@ index e652a45..070eaff 100644 /** * A vertical or horizontal stacking of widgets, implementing HBox and VBox. -diff --git a/src/YLogView.h b/src/YLogView.h -index 53fb9ee..5b44229 100644 --- a/src/YLogView.h +++ b/src/YLogView.h @@ -27,7 +27,7 @@ @@ -373,21 +327,17 @@ index 53fb9ee..5b44229 100644 /** -diff --git a/src/YMenuButton.h b/src/YMenuButton.h -index 205e730..5df7efb 100644 --- a/src/YMenuButton.h +++ b/src/YMenuButton.h -@@ -29,7 +29,7 @@ +@@ -28,7 +28,7 @@ + #include "YMenuWidget.h" #include "YMenuItem.h" - class YMenuItem; -class YMenuButtonPrivate; +struct YMenuButtonPrivate; /** -diff --git a/src/YMultiLineEdit.h b/src/YMultiLineEdit.h -index c52a6ae..1f792f8 100644 --- a/src/YMultiLineEdit.h +++ b/src/YMultiLineEdit.h @@ -27,7 +27,7 @@ @@ -399,8 +349,6 @@ index c52a6ae..1f792f8 100644 /** * A multi-line plain-text area -diff --git a/src/YMultiProgressMeter.h b/src/YMultiProgressMeter.h -index 57c758d..f6bec91 100644 --- a/src/YMultiProgressMeter.h +++ b/src/YMultiProgressMeter.h @@ -28,7 +28,7 @@ @@ -412,8 +360,6 @@ index 57c758d..f6bec91 100644 /** -diff --git a/src/YMultiSelectionBox.h b/src/YMultiSelectionBox.h -index bbe5a20..f3a2947 100644 --- a/src/YMultiSelectionBox.h +++ b/src/YMultiSelectionBox.h @@ -27,7 +27,7 @@ @@ -425,8 +371,6 @@ index bbe5a20..f3a2947 100644 /** -diff --git a/src/YPartitionSplitter.h b/src/YPartitionSplitter.h -index 2839bbc..9de1174 100644 --- a/src/YPartitionSplitter.h +++ b/src/YPartitionSplitter.h @@ -28,7 +28,7 @@ @@ -438,8 +382,6 @@ index 2839bbc..9de1174 100644 /** -diff --git a/src/YProgressBar.h b/src/YProgressBar.h -index 718352f..baab662 100644 --- a/src/YProgressBar.h +++ b/src/YProgressBar.h @@ -27,7 +27,7 @@ @@ -451,8 +393,6 @@ index 718352f..baab662 100644 /** -diff --git a/src/YPushButton.h b/src/YPushButton.h -index 5b65c98..e288252 100644 --- a/src/YPushButton.h +++ b/src/YPushButton.h @@ -27,7 +27,7 @@ @@ -464,8 +404,6 @@ index 5b65c98..e288252 100644 -diff --git a/src/YRadioButton.h b/src/YRadioButton.h -index 9dc62de..5a7c0dd 100644 --- a/src/YRadioButton.h +++ b/src/YRadioButton.h @@ -28,7 +28,7 @@ @@ -477,8 +415,6 @@ index 9dc62de..5a7c0dd 100644 /** -diff --git a/src/YRadioButtonGroup.h b/src/YRadioButtonGroup.h -index 063a52e..671a257 100644 --- a/src/YRadioButtonGroup.h +++ b/src/YRadioButtonGroup.h @@ -28,7 +28,7 @@ @@ -490,11 +426,9 @@ index 063a52e..671a257 100644 typedef std::list<YRadioButton *> YRadioButtonList; typedef YRadioButtonList::iterator YRadioButtonListIterator; -diff --git a/src/YRichText.h b/src/YRichText.h -index 149bfb3..86b3f80 100644 --- a/src/YRichText.h +++ b/src/YRichText.h -@@ -30,7 +30,7 @@ +@@ -31,7 +31,7 @@ #include "ImplPtr.h" @@ -503,8 +437,6 @@ index 149bfb3..86b3f80 100644 /** -diff --git a/src/YSelectionBox.h b/src/YSelectionBox.h -index 7fc4fb8..9bbf9f3 100644 --- a/src/YSelectionBox.h +++ b/src/YSelectionBox.h @@ -27,7 +27,7 @@ @@ -516,8 +448,6 @@ index 7fc4fb8..9bbf9f3 100644 /** -diff --git a/src/YSelectionWidget.h b/src/YSelectionWidget.h -index abbdfb4..cf05afd 100644 --- a/src/YSelectionWidget.h +++ b/src/YSelectionWidget.h @@ -29,7 +29,7 @@ @@ -529,8 +459,6 @@ index abbdfb4..cf05afd 100644 /** * Base class for various kinds of multi-value widgets. -diff --git a/src/YSimpleInputField.h b/src/YSimpleInputField.h -index 6d926d4..b93fe6b 100644 --- a/src/YSimpleInputField.h +++ b/src/YSimpleInputField.h @@ -27,7 +27,7 @@ @@ -542,8 +470,6 @@ index 6d926d4..b93fe6b 100644 /** -diff --git a/src/YSlider.h b/src/YSlider.h -index d29f6b8..4bcd7d3 100644 --- a/src/YSlider.h +++ b/src/YSlider.h @@ -27,7 +27,7 @@ @@ -555,8 +481,6 @@ index d29f6b8..4bcd7d3 100644 /** -diff --git a/src/YSpacing.h b/src/YSpacing.h -index e8aafd3..066cd68 100644 --- a/src/YSpacing.h +++ b/src/YSpacing.h @@ -28,7 +28,7 @@ @@ -568,8 +492,6 @@ index e8aafd3..066cd68 100644 /** -diff --git a/src/YSquash.h b/src/YSquash.h -index 4bd0fb6..3804cc4 100644 --- a/src/YSquash.h +++ b/src/YSquash.h @@ -29,7 +29,7 @@ @@ -581,8 +503,6 @@ index 4bd0fb6..3804cc4 100644 /** * HSquash, VSquash HVSquash: reduce child to its preferred size. -diff --git a/src/YTable.h b/src/YTable.h -index 6694f10..469b8ca 100644 --- a/src/YTable.h +++ b/src/YTable.h @@ -30,7 +30,7 @@ @@ -594,8 +514,6 @@ index 6694f10..469b8ca 100644 -diff --git a/src/YTableHeader.h b/src/YTableHeader.h -index 70166c2..4ae99b4 100644 --- a/src/YTableHeader.h +++ b/src/YTableHeader.h @@ -31,7 +31,7 @@ @@ -607,8 +525,6 @@ index 70166c2..4ae99b4 100644 /** * Helper class for YTable for table column properties: -diff --git a/src/YTimeField.h b/src/YTimeField.h -index ab2f9a3..f3a7b94 100644 --- a/src/YTimeField.h +++ b/src/YTimeField.h @@ -27,7 +27,7 @@ @@ -620,11 +536,9 @@ index ab2f9a3..f3a7b94 100644 /** -diff --git a/src/YTimezoneSelector.cc b/src/YTimezoneSelector.cc -index 9259b64..e2f9b6f 100644 --- a/src/YTimezoneSelector.cc +++ b/src/YTimezoneSelector.cc -@@ -32,7 +32,7 @@ +@@ -34,7 +34,7 @@ using std::string; class YTimezoneSelectorPrivate { @@ -633,8 +547,6 @@ index 9259b64..e2f9b6f 100644 }; -diff --git a/src/YTree.h b/src/YTree.h -index 14fa279..70e1364 100644 --- a/src/YTree.h +++ b/src/YTree.h @@ -28,7 +28,7 @@ @@ -646,11 +558,9 @@ index 14fa279..70e1364 100644 /** -diff --git a/src/YUILog.h b/src/YUILog.h -index 0890bc5..4a927a7 100644 --- a/src/YUILog.h +++ b/src/YUILog.h -@@ -64,7 +64,7 @@ +@@ -66,7 +66,7 @@ using std::endl; @@ -659,11 +569,9 @@ index 0890bc5..4a927a7 100644 enum YUILogLevel_t { -diff --git a/src/YWidget.h b/src/YWidget.h -index 5b285d0..636a41b 100644 --- a/src/YWidget.h +++ b/src/YWidget.h -@@ -45,7 +45,7 @@ typedef YChildrenManager<YWidget> YWidgetChildrenManager; +@@ -45,7 +45,7 @@ typedef YChildrenManager<YWidget> YWidge typedef YSingleChildManager<YWidget> YSingleWidgetChildManager; typedef YChildrenRejector<YWidget> YWidgetChildrenRejector; @@ -672,8 +580,6 @@ index 5b285d0..636a41b 100644 /** -diff --git a/src/YWizard.h b/src/YWizard.h -index 7671cbf..975b597 100644 --- a/src/YWizard.h +++ b/src/YWizard.h @@ -28,7 +28,7 @@ diff --git a/meta-oe/recipes-graphics/libyui/libyui/0001-Use-curly-braces-for-MAKE-variable.patch b/meta-oe/recipes-graphics/libyui/libyui/0001-Use-curly-braces-for-MAKE-variable.patch deleted file mode 100644 index dbe241709a..0000000000 --- a/meta-oe/recipes-graphics/libyui/libyui/0001-Use-curly-braces-for-MAKE-variable.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 4eed37b1a61458fc8e5251f7cb7c6d64e8e9da8d Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Wed, 5 Sep 2018 17:48:09 -0700 -Subject: [PATCH] Use curly braces for MAKE variable - -Fixes errors with ninja -| ninja: error: build.ninja:142: bad $-escape (literal $ must be written as $$) - -Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/137] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - buildtools/LibyuiCommon.cmake | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/buildtools/LibyuiCommon.cmake b/buildtools/LibyuiCommon.cmake -index cb93307..e6fbefd 100644 ---- a/buildtools/LibyuiCommon.cmake -+++ b/buildtools/LibyuiCommon.cmake -@@ -122,8 +122,8 @@ MACRO( SET_BUILD_FLAGS ) # setup compiler-flags depending on CMAKE_BUILD_TYPE - ENABLE_TESTING() - # add a wrapper "tests" target, the builtin "test" cannot be extended :-( - ADD_CUSTOM_TARGET(tests -- $(MAKE) -- COMMAND $(MAKE) test -+ ${MAKE} -+ COMMAND ${MAKE} test - ) - ENDIF ( ENABLE_TESTS OR ENABLE_CODE_COVERAGE) - --- -2.18.0 - 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 index 11a1678a4b..fc7f819d32 100644 --- 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 @@ -16,13 +16,13 @@ _PREFIX variants. Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/140] Signed-off-by: Pascal Bach <pascal.bach@siemens.com> --- - buildtools/LibyuiCommon.cmake | 35 ++++++++++++++--------------------- + legacy-buildtools/LibyuiCommon.cmake | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) -diff --git a/buildtools/LibyuiCommon.cmake b/buildtools/LibyuiCommon.cmake +diff --git a/legacy-buildtools/LibyuiCommon.cmake b/legacy-buildtools/LibyuiCommon.cmake index e6fbefd..5e2fc0d 100644 ---- a/buildtools/LibyuiCommon.cmake -+++ b/buildtools/LibyuiCommon.cmake +--- 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}" ) diff --git a/meta-oe/recipes-graphics/libyui/libyui_4.6.2.bb b/meta-oe/recipes-graphics/libyui/libyui_4.6.2.bb new file mode 100644 index 0000000000..419a9522a4 --- /dev/null +++ b/meta-oe/recipes-graphics/libyui/libyui_4.6.2.bb @@ -0,0 +1,37 @@ +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 = "e691b563262306a40a61bbf228839fa06e4f0516" + +S = "${WORKDIR}/git/libyui" + +inherit cmake gettext pkgconfig + +DEPENDS += "boost" + +EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RELWITHDEBINFO -DWERROR=OFF" + +LDFLAGS += "-L${B}/src" +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 d313fb02d7..0000000000 --- a/meta-oe/recipes-graphics/libyui/libyui_git.bb +++ /dev/null @@ -1,42 +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 \ - file://0001-Fix-build-with-clang.patch \ - file://0001-Use-curly-braces-for-MAKE-variable.patch \ - file://0001-Use-relative-install-paths-for-CMake.patch \ - " - -PV = "3.3.3+git" -SRCREV = "50672da835ec9d52766320a44a2677e08a24c99c" -SRCREV_FORMAT = "default" -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..0bfc3f3e79 --- /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: Backport [b339e67581864b2fb6bb8897735a1e110c324ddc] +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..7e542bcfbc --- /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: Backport [a0f03515bd7417a0d100058b133c3e8d69be9451] +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..6843af0aab --- /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: Backport [a0f03515bd7417a0d100058b133c3e8d69be9451] +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..2d2c4c60f1 --- /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: Backport [a0f03515bd7417a0d100058b133c3e8d69be9451] +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..cfb6c6e817 --- /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: Backport [a0f03515bd7417a0d100058b133c3e8d69be9451] +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..f5d39396fc --- /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.1.0 and includes symlink with major +ABI version, i.e. liblvgl.so.9 . + +Upstream-Status: Backport [2c469279f53f9dee63d71295c6058749bc87ce73] +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.1.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..5cafb41d56 --- /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: Backport [29662d1c357c15135d076a2a924b9ef056c82120] +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..9186015537 --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/lv-conf.inc @@ -0,0 +1,81 @@ +PACKAGECONFIG ??= "drm" + +PACKAGECONFIG[drm] = ",,libdrm" +PACKAGECONFIG[fbdev] = ",," +PACKAGECONFIG[gridnav] = ",," +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_USE_GRIDNAV = "${@bb.utils.contains('PACKAGECONFIG', 'gridnav', '1', '0', d)}" + +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_USE_GRIDNAV[[:space:]]).*|\1${LVGL_CONFIG_LV_USE_GRIDNAV}|" \ + -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..63c810d74d --- /dev/null +++ b/meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb @@ -0,0 +1,28 @@ +# 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 -m 0644 "${S}/lv_conf.h" "${D}${includedir}/${BPN}/lv_conf.h" +} 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/0003-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/0003-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 index afe11f3536..d232f6913e 100644 --- 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 @@ -3,9 +3,7 @@ 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: Applied [1] - -[1] https://git.lxde.org/gitweb/?p=lxde/lxdm.git;a=patch;h=72812894cfd9454d70e4b0753531e46580416771 +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/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 701266bccd..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,6 +1,6 @@ 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 \ @@ -9,6 +9,17 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}%20${PV}/${BPN}-${PV}.tar. file://0002-let-autotools-create-lxdm.conf.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" @@ -17,28 +28,28 @@ PE = "1" 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=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' \ @@ -48,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` @@ -73,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.1.bb b/meta-oe/recipes-graphics/neatvnc/neatvnc_0.8.1.bb new file mode 100644 index 0000000000..9065050c62 --- /dev/null +++ b/meta-oe/recipes-graphics/neatvnc/neatvnc_0.8.1.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=v0.8;protocol=https" + +SRCREV = "07081567ab21a2b099ceb41ae8cab872a31cbb9a" + +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-Fix-list-traversal-issue-in-client_calc_layer.patch b/meta-oe/recipes-graphics/openbox/files/0001-Fix-list-traversal-issue-in-client_calc_layer.patch new file mode 100644 index 0000000000..8bc2b80f68 --- /dev/null +++ b/meta-oe/recipes-graphics/openbox/files/0001-Fix-list-traversal-issue-in-client_calc_layer.patch @@ -0,0 +1,56 @@ +From d41128e5a1002af41c976c8860f8299cfcd3cd72 Mon Sep 17 00:00:00 2001 +From: pldubouilh <pldubouilh@gmail.com> +Date: Fri, 17 Mar 2023 18:23:47 +0100 +Subject: [PATCH] Fix list traversal issue in client_calc_layer + +The calls to client_calc_layer_internal can modify stacking_list, which +can cause us to follow dangling ->next pointers (either by the pointer +itself already being freed, or it pointing to a freed area). Avoid this +by copying the list first, the goal is to visit every client in the list +once so this should be fine. + +Upstream-Status: Backport [http://git.openbox.org/?p=mikachu/openbox.git;a=commit;h=d41128e5a1002af41c976c8860f8299cfcd3cd72] +Signed-off-by: Alexandre Videgrain <alexandre.videgrain@smile.fr> +--- + openbox/client.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/openbox/client.c b/openbox/client.c +index 7168b240..b8264587 100644 +--- a/openbox/client.c ++++ b/openbox/client.c +@@ -2742,9 +2742,12 @@ static void client_calc_layer_internal(ObClient *self) + void client_calc_layer(ObClient *self) + { + GList *it; ++ /* the client_calc_layer_internal calls below modify stacking_list, ++ so we have to make a copy to iterate over */ ++ GList *list = g_list_copy(stacking_list); + + /* skip over stuff above fullscreen layer */ +- for (it = stacking_list; it; it = g_list_next(it)) ++ for (it = list; it; it = g_list_next(it)) + if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break; + + /* find the windows in the fullscreen layer, and mark them not-visited */ +@@ -2757,7 +2760,7 @@ void client_calc_layer(ObClient *self) + client_calc_layer_internal(self); + + /* skip over stuff above fullscreen layer */ +- for (it = stacking_list; it; it = g_list_next(it)) ++ for (it = list; it; it = g_list_next(it)) + if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break; + + /* now recalc any windows in the fullscreen layer which have not +@@ -2768,6 +2771,8 @@ void client_calc_layer(ObClient *self) + !WINDOW_AS_CLIENT(it->data)->visited) + client_calc_layer_internal(it->data); + } ++ ++ g_list_free(it); + } + + gboolean client_should_show(ObClient *self) +-- +2.34.1 + 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 f4d21b8f9f..50231602dc 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,27 @@ 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 \ + file://0001-Fix-list-traversal-issue-in-client_calc_layer.patch \ " SRC_URI[md5sum] = "b72794996c6a3ad94634727b95f9d204" SRC_URI[sha256sum] = "8b4ac0760018c77c0044fab06a4f0c510ba87eae934d9983b10878483bde7ef7" -inherit autotools gettext update-alternatives pkgconfig distro_features_check +UPSTREAM_CHECK_URI = "https://github.com/Mikachu/openbox/tags" +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)" + +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,25 +38,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) } -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 python pyxdg" +RDEPENDS:${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks python3 python3-shell pyxdg" 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/0001-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch index 0ba13cf88f..2e25ecc7ef 100644 --- 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/0001-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch @@ -1,4 +1,4 @@ -From 4681de07e21f17aa28710d3a51fabe7da60463f9 Mon Sep 17 00:00:00 2001 +From 805ce4d40c5aaae12aa73452ff07babe8eb43a62 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 @@ -15,17 +15,17 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> 1 file changed, 1 deletion(-) diff --git a/src/bin/jp2/CMakeLists.txt b/src/bin/jp2/CMakeLists.txt -index 4324c36d..2c11fe02 100644 +index 26156bcb..9eff04aa 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) +@@ -64,7 +64,6 @@ foreach(exe opj_decompress opj_compress opj_dump) endif() # Install exe install(TARGETS ${exe} - EXPORT OpenJPEGTargets - DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications + DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications ) if(OPJ_USE_DSYMUTIL) -- -2.14.4 +2.25.1 diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg/0001-Ensure-cmake-files-are-installed-at-common-location.patch b/meta-oe/recipes-graphics/openjpeg/openjpeg/0001-Ensure-cmake-files-are-installed-at-common-location.patch deleted file mode 100644 index 5c5fe64f2d..0000000000 --- a/meta-oe/recipes-graphics/openjpeg/openjpeg/0001-Ensure-cmake-files-are-installed-at-common-location.patch +++ /dev/null @@ -1,48 +0,0 @@ -From fe491c0919f5adc8d626cb98c5ec19d0b99dfe20 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> -Date: Thu, 27 Sep 2018 23:45:04 +0200 -Subject: [PATCH] Ensure cmake files are installed at common location -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* Otherwise recent poppler is not able to find them -* Include path needs adjustment with this change - -Upstream-Status: Inappropriate [Configuration] - -Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> ---- - CMakeLists.txt | 2 +- - cmake/OpenJPEGConfig.cmake.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ff70a06f..23d2fac4 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -150,7 +150,7 @@ if(NOT OPENJPEG_INSTALL_PACKAGE_DIR) - # We could install *.cmake files in share/ however those files contains - # hardcoded path to libraries on a multi-arch system (fedora/debian) those - # path will be different (lib/i386-linux-gnu vs lib/x86_64-linux-gnu) -- set(OPENJPEG_INSTALL_PACKAGE_DIR "${OPENJPEG_INSTALL_LIB_DIR}/${OPENJPEG_INSTALL_SUBDIR}") -+ set(OPENJPEG_INSTALL_PACKAGE_DIR "${OPENJPEG_INSTALL_LIB_DIR}/cmake/${OPENJPEG_INSTALL_SUBDIR}") - endif() - - if (APPLE) -diff --git a/cmake/OpenJPEGConfig.cmake.in b/cmake/OpenJPEGConfig.cmake.in -index b20294ca..6a2f4baf 100644 ---- a/cmake/OpenJPEGConfig.cmake.in -+++ b/cmake/OpenJPEGConfig.cmake.in -@@ -26,7 +26,7 @@ get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) - if(EXISTS ${SELF_DIR}/OpenJPEGTargets.cmake) - # This is an install tree - include(${SELF_DIR}/OpenJPEGTargets.cmake) -- get_filename_component(OPENJPEG_INCLUDE_ROOT "${SELF_DIR}/../../@OPENJPEG_INSTALL_INCLUDE_DIR@" ABSOLUTE) -+ get_filename_component(OPENJPEG_INCLUDE_ROOT "${SELF_DIR}/../../../@OPENJPEG_INSTALL_INCLUDE_DIR@" ABSOLUTE) - set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG_INCLUDE_ROOT}) - - else() --- -2.14.4 - diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.0.bb b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.0.bb deleted file mode 100644 index c50d55e4b0..0000000000 --- a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.0.bb +++ /dev/null @@ -1,16 +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" - -DEPENDS = "libpng tiff lcms zlib" - -SRC_URI = " \ - git://github.com/uclouvain/openjpeg.git \ - file://0001-Ensure-cmake-files-are-installed-at-common-location.patch \ - file://0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \ -" -SRCREV = "081de4b15f54cb4482035b7bf5e3fb443e4bc84b" -S = "${WORKDIR}/git" - -inherit cmake diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.2.bb b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.2.bb new file mode 100644 index 0000000000..45f1b5ef42 --- /dev/null +++ b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.2.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://0001-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \ + " +SRCREV = "39e8c50a2f9bdcf36810ee3d41bcbf1cc78968ae" +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.52.0.bb b/meta-oe/recipes-graphics/pango/pangomm-2.48_2.52.0.bb new file mode 100644 index 0000000000..3b0fbd3e76 --- /dev/null +++ b/meta-oe/recipes-graphics/pango/pangomm-2.48_2.52.0.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] = "34a134126a6484ff12f774358c36ecc44d0e9df094e1b83796d9774bb7d24947" +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.42.0.bb b/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb deleted file mode 100644 index 8a85db4754..0000000000 --- a/meta-oe/recipes-graphics/pango/pangomm_2.42.0.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] = "6cffedf2225c4e72645a7d757fb5b832" -SRC_URI[sha256sum] = "ca6da067ff93a6445780c0b4b226eb84f484ab104b8391fb744a45cbc7edbf56" - -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/0001-jpeg-compressor-Reorder-stdio.h-include-location.patch b/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-jpeg-compressor-Reorder-stdio.h-include-location.patch new file mode 100644 index 0000000000..1c714f84dc --- /dev/null +++ b/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-jpeg-compressor-Reorder-stdio.h-include-location.patch @@ -0,0 +1,43 @@ +From 4eb26927eebebfc4df8789ba69f60f3c28b8ba33 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 2 Jul 2024 23:36:23 -0700 +Subject: [PATCH] jpeg-compressor: Reorder stdio.h include location + +Current, location ends up with compile errors with clang and glibc 2.40 +fortified headers + +| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/renderdoc/1.33/recipe-sysroot/usr/include/bits/stdio2.h:128:13: error: use of undeclared identifier '__builtin___vfprintf_chk'; did you mean '__builtin___sprintf_chk'? +| 128 | int __r = __builtin___vfprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, +| | ^ +| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/renderdoc/1.33/recipe-sysroot/usr/include/bits/stdio2.h:128:39: error: cannot initialize a parameter of type 'char *' with an lvalue of type 'FILE *const __restrict' (aka 'jpge::_IO_FILE *const __restrict') +| 128 | int __r = __builtin___vfprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, +| | ^~~~~~~~ + +This re-ordering ensures that fortified function prototypes are used correctly. + +Upstream-Status: Submitted [https://github.com/baldurk/renderdoc/pull/3369] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + renderdoc/3rdparty/jpeg-compressor/jpge.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/renderdoc/3rdparty/jpeg-compressor/jpge.cpp b/renderdoc/3rdparty/jpeg-compressor/jpge.cpp +index 74d9d1006..d58e41664 100644 +--- a/renderdoc/3rdparty/jpeg-compressor/jpge.cpp ++++ b/renderdoc/3rdparty/jpeg-compressor/jpge.cpp +@@ -10,6 +10,7 @@ + + #include "jpge.h" + ++#include <stdio.h> + #include <stdlib.h> + #include <string.h> + +@@ -897,7 +898,6 @@ bool jpeg_encoder::process_scanline(const void* pScanline) + } + + // Higher level wrappers/examples (optional). +-#include <stdio.h> + + class cfile_stream : public output_stream + { diff --git a/meta-oe/recipes-graphics/renderdoc/renderdoc_1.33.bb b/meta-oe/recipes-graphics/renderdoc/renderdoc_1.33.bb new file mode 100644 index 0000000000..833845b5a3 --- /dev/null +++ b/meta-oe/recipes-graphics/renderdoc/renderdoc_1.33.bb @@ -0,0 +1,39 @@ +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=5536c2b72eeed14bafaf4d2a6c032b87" + +SRCREV = "cae289323847ce0a84a0deca4958183567eee17e" +SRC_URI = " \ + git://github.com/baldurk/${BPN}.git;protocol=https;branch=v1.x \ + file://0001-jpeg-compressor-Reorder-stdio.h-include-location.patch \ +" +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..f2ffee64fe --- /dev/null +++ b/meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb @@ -0,0 +1,18 @@ +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" + +UPSTREAM_CHECK_REGEX = "files/v(?P<pver>\d+(\.\d+)+)" + +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.4.1.bb b/meta-oe/recipes-graphics/tesseract/tesseract_5.4.1.bb new file mode 100644 index 0000000000..1177e34cdf --- /dev/null +++ b/meta-oe/recipes-graphics/tesseract/tesseract_5.4.1.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 = "b5f279ec7582dc57f6464557ed938558791f200d" +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 f0056d6561..0000000000 --- a/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 47f175618a0b0817714ea557c9e93f22f327421e Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Tue, 31 Jul 2018 16:39:52 +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 470424b..ee18bf9 100644 ---- a/unix/xserver/hw/vnc/Makefile.am -+++ b/unix/xserver/hw/vnc/Makefile.am -@@ -23,7 +23,7 @@ libvnccommon_la_SOURCES = $(HDRS) \ - - libvnccommon_la_CPPFLAGS = -DVENDOR_RELEASE="$(VENDOR_RELEASE)" -I$(TIGERVNC_SRCDIR)/unix/common \ - -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 -@@ -43,7 +43,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$(TIGERVNC_SRCDIR)/unix/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 -@@ -64,7 +64,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/tigervnc_1.9.0.bb b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb index f3dc89972c..668ca79ddd 100644 --- a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.9.0.bb +++ b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb @@ -1,24 +1,23 @@ 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 = "6f2301d08e64a965ad36b401ec8dc2b24bc47075" +SRCREV = "540bfc3278e396321124d4b18a798ac2bc18b6ca" -SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.9-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 \ @@ -26,11 +25,11 @@ SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.9-branch \ # Keep sync with xorg-server in oe-core XORG_PN ?= "xorg-server" -XORG_PV ?= "1.19.6" +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] = "3e47777ff034a331aed2322b078694a8" -SRC_URI[xorg.sha256sum] = "a732502f1db000cf36a376cd0c010ffdbf32ecdd7f1fa08ba7f5bdf9601cc197" +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. @@ -58,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 } @@ -84,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} @@ -105,7 +106,7 @@ do_configure_append () { cd $olddir } -do_compile_append () { +do_compile:append () { olddir=`pwd` cd ${XSERVER_SOURCE_DIR} @@ -114,7 +115,7 @@ do_compile_append () { cd $olddir } -do_install_append() { +do_install:append() { olddir=`pwd` cd ${XSERVER_SOURCE_DIR}/hw/vnc @@ -123,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.16.bb b/meta-oe/recipes-graphics/tslib/tslib_1.23.bb index 8d23bd5eb8..299aa2a273 100644 --- a/meta-oe/recipes-graphics/tslib/tslib_1.16.bb +++ b/meta-oe/recipes-graphics/tslib/tslib_1.23.bb @@ -5,9 +5,8 @@ Tslib is generally used on embedded devices to provide a common user \ space interface to touchscreen functionality." HOMEPAGE = "http://tslib.org/" -AUTHOR = "Martin Kepplinger <martink@posteo.de>" SECTION = "base" -LICENSE = "LGPLv2+ & GPLv2+" +LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later" LIC_FILES_CHKSUM = "\ file://COPYING;md5=fc178bcd425090939a8b634d1d6a9594 \ file://tests/COPYING;md5=a23a74b3f4caf9616230789d94217acb \ @@ -16,17 +15,17 @@ LIC_FILES_CHKSUM = "\ 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] = "254a022fc8aa89d164840fe8869c2441" -SRC_URI[sha256sum] = "c9a54651337a701a66b074c603c313225579995a7910e519bbc7b1dcdab9a755" + " +SRC_URI[sha256sum] = "9b489a54d48006201f2fe955a88c3f857535ac93b6cf8e5a16c7b166c8991dac" UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases" inherit autotools pkgconfig -PACKAGECONFIG ??= "debounce dejitter iir linear median pthres skip lowpass invert variance input touchkit waveshare" +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" @@ -50,33 +49,36 @@ 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 ${WORKDIR}/ts.conf ${S}/etc/ts.conf +do_install:prepend() { + install -m 0644 ${UNPACKDIR}/ts.conf ${S}/etc/ts.conf } -do_install_append() { +do_install:append() { install -d ${D}${sysconfdir}/profile.d/ - install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/ + install -m 0755 ${UNPACKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/ } -RPROVIDES_tslib-conf = "libts-0.0-conf" +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" +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" -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_${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" -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" +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..15449b216a --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb @@ -0,0 +1,32 @@ +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" + +UPSTREAM_CHECK_URI = "https://github.com/adobe-fonts/source-code-pro/tags" +UPSTREAM_CHECK_REGEX = "releases/tag/(?P<pver>\d+\.\d+)R" + +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.201.bb index ce003e922b..1253cf8834 100644 --- a/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_1.500.bb +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_2.201.bb @@ -3,15 +3,15 @@ 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=347eaa34fdf555aaf6b2144a5ccca45b" 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" +UPSTREAM_CHECK_URI = "https://software.sil.org/abyssinica/download/" -FONT_PACKAGES = "${PN}" -FILES_${PN} = "${datadir}" +SRC_URI[sha256sum] = "961259a1d9ace083f737eb1e55cec40c9a56f4855866d7474bf212d2a4366ab8" +FONT_PACKAGES = "${PN}" +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..43b4614f0b 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,24 @@ 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 = "${WORKDIR}/sources" +UNPACKDIR = "${S}" -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..0c29a20cdd --- /dev/null +++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb @@ -0,0 +1,25 @@ +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" + +UPSTREAM_CHECK_URI = "https://repology.org/project/fonts:ubuntu/packages" +UPSTREAM_CHECK_REGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)" + +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..e2925b6c95 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,18 +1,20 @@ 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" SRC_URI[md5sum] = "4c6c3f4e902dd5ee0a121e8c41d040bd" SRC_URI[sha256sum] = "e4b7e306475bf9427d1757578f0e4528930c84c44eaa3f167d4c42f110ee75d6" +UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/wqy/files/wqy-zenhei/" +UPSTREAM_CHECK_REGEX = "wqy-zenhei/(?P<pver>\d+(\.\d+)+)" + 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 +26,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 b79a562c8e..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 xorgproto" - -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/vdpau/vdpauinfo_1.5.bb b/meta-oe/recipes-graphics/vdpau/vdpauinfo_1.5.bb new file mode 100644 index 0000000000..3f44e537a4 --- /dev/null +++ b/meta-oe/recipes-graphics/vdpau/vdpauinfo_1.5.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Tool to query the capabilities of a VDPAU implementation" +HOMEPAGE = "https://gitlab.freedesktop.org/vdpau/vdpauinfo" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=5b6e110c362fe46168199f3490e52c3c" + +DEPENDS = "libvdpau" + +# libvdpau is available only with x11 +inherit features_check +REQUIRED_DISTRO_FEATURES = "x11" + +RDEPENDS:${PN} = "libvdpau" + +SRCREV = "d3c5bd63bf8878d59b22d618d2bb5116db392d28" +SRC_URI = "git://anongit.freedesktop.org/vdpau/vdpauinfo;branch=master" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig 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..9eef9a702e --- /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 +@@ -83,8 +83,9 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) + configure_file(${WAYLAND_XDG_SHELL_SRC_DIR}/xdg-shell.c ${DEQP_XDG_SHELL_GEN_OUTPUTS_DIR}/xdg-shell.c COPYONLY) + configure_file(${WAYLAND_XDG_SHELL_SRC_DIR}/xdg-shell.h ${DEQP_XDG_SHELL_GEN_OUTPUTS_DIR}/xdg-shell.h COPYONLY) + else () +- pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir) +- ++ if (NOT WAYLAND_PROTOCOL_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-use-library-sonames-for-linking.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-use-library-sonames-for-linking.patch new file mode 100644 index 0000000000..774b7aefee --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-use-library-sonames-for-linking.patch @@ -0,0 +1,123 @@ +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: Denied [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 +@@ -145,7 +145,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 +@@ -56,7 +56,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) +@@ -223,7 +223,7 @@ class VulkanLibrary : public vk::Library + { + public: + VulkanLibrary(const char *libraryPath) +- : m_library(libraryPath != DE_NULL ? libraryPath : "libvulkan.so") ++ : m_library(libraryPath != DE_NULL ? libraryPath : "libvulkan.so.1") + , m_driver(m_library) + { + } +--- a/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp ++++ b/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp +@@ -77,7 +77,7 @@ using tcu::TextureLevel; + class Library : public eglw::DefaultLibrary + { + public: +- Library(void) : eglw::DefaultLibrary("libEGL.so") ++ Library(void) : eglw::DefaultLibrary("libEGL.so.1") + { + } + +--- a/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp ++++ b/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp +@@ -64,7 +64,7 @@ public: + Display(MovePtr<wayland::Display> waylandDisplay) + : NativeDisplay(CAPABILITIES, EGL_PLATFORM_WAYLAND_KHR, "EGL_KHR_platform_wayland") + , m_display(waylandDisplay) +- , m_library("libEGL.so") ++ , m_library("libEGL.so.1") + { + } + +--- 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) +@@ -258,7 +258,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/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..af59dd3e61 --- /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 +@@ -245,8 +245,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..717d489786 --- /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 +@@ -41,6 +41,7 @@ if (DE_OS_IS_UNIX) + if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") + add_definitions(-D__BSD_VISIBLE) + 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/khronos-cts.inc b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc new file mode 100644 index 0000000000..0322ef453a --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc @@ -0,0 +1,90 @@ +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;nobranch=1 \ + git://github.com/KhronosGroup/glslang.git;protocol=https;destsuffix=git/external/glslang/src;name=glslang;nobranch=1 \ + git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/external/spirv-headers/src;name=spirv-headers;nobranch=1 \ + git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/external/spirv-tools/src;name=spirv-tools;nobranch=1 \ + git://github.com/open-source-parsers/jsoncpp.git;protocol=https;destsuffix=git/external/jsoncpp/src;name=jsoncpp;nobranch=1 \ + git://github.com/KhronosGroup/Vulkan-Docs.git;protocol=https;destsuffix=git/external/vulkan-docs/src;name=vulkan-docs;nobranch=1 \ + git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;protocol=https;destsuffix=git/external/vulkan-validationlayers/src;name=vulkan-validationlayers;nobranch=1 \ + git://github.com/Igalia/ESExtractor.git;protocol=https;destsuffix=git/external/ESExtractor/src;name=ESExtractor;nobranch=1 \ + git://github.com/Igalia/vk_video_samples.git;protocol=https;destsuffix=git/external/nvidia-video-samples/src;name=video-parser;nobranch=1 \ + https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h;subdir=git/external/renderdoc/src;name=renderdoc \ +" + +SRCREV_FORMAT = "vk-gl-cts_amber_glslang_spirv-headers_spirv-tools_jsoncpp_video-parser_vulkan-docs_vulkan-validationlayers" + +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-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.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 += "-DUPDATE_DEPS=OFF" +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}" + +# does not work with libc++-19 due +# error: implicit instantiation of undefined template 'std::char_traits<unsigned int>' +TOOLCHAIN = "gcc" + +# Validation-layers requires access during configure as it fetches validation-headers +# and bunch of other packages from khronos github +do_configure[network] = "1" diff --git a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.11.0.bb b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.11.0.bb new file mode 100644 index 0000000000..7dd60dffd8 --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.11.0.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "OpenGL CTS" + +require khronos-cts.inc +# opengl-es-cts-3.2.11.0 +SRCREV_vk-gl-cts = "66956d195169596472e956e3aebf2df8e3bd960d" +SRCREV_amber = "0f003c2785489f59cd01bb2440fcf303149100f2" +SRCREV_glslang = "4da479aa6afa43e5a2ce4c4148c572a03123faf3" +SRCREV_spirv-headers = "ff2afc3afc48dff4eec2a10f0212402a80708e38" +SRCREV_spirv-tools = "148c97f6876e427efd76d2328122c3075eab4b8f" +SRCREV_ESExtractor = "ce5d7ebcf0ebb0d78385ee4cc34653eb6764bfc4" +# Not yet needed +SRCREV_jsoncpp = "9059f5cad030ba11d37818847443a53918c327b1" +SRCREV_vulkan-docs = "ed4ba0242beb89a1795d6084709fa9e713559c94" +SRCREV_vulkan-validationlayers = "a92629196a4fed15e59c74aa965dd47bd5ece3b7" +SRCREV_video-parser = "6821adf11eb4f84a2168264b954c170d03237699" +SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e" + +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_1.3.9.2.bb b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.9.2.bb new file mode 100644 index 0000000000..4ba761b676 --- /dev/null +++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.9.2.bb @@ -0,0 +1,32 @@ +DESCRIPTION = "Vulkan CTS" + +require khronos-cts.inc + +# vulkan-cts-1.3.9.2 +SRCREV_vk-gl-cts = "24c1b1498ba4f05777f47541968ffe686265c645" +SRCREV_amber = "0f003c2785489f59cd01bb2440fcf303149100f2" +SRCREV_glslang = "2b19bf7e1bc0b60cf2fe9d33e5ba6b37dfc1cc83" +SRCREV_spirv-headers = "db5a00f8cebe81146cafabf89019674a3c4bf03d" +SRCREV_spirv-tools = "4c7e1fa5c3d988cca0e626d359d30b117b9c2822" +SRCREV_jsoncpp = "9059f5cad030ba11d37818847443a53918c327b1" +SRCREV_vulkan-docs = "7bb606eb87cde1d34f65f36f4d4c6f2c78f072c8" +SRCREV_vulkan-validationlayers = "a92629196a4fed15e59c74aa965dd47bd5ece3b7" +SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e" +# Not yet needed +SRCREV_ESExtractor = "75ffcaf55bb069f7a23764194742d2fb78c7f71f" +SRCREV_video-parser = "6821adf11eb4f84a2168264b954c170d03237699" + +# Workaround an optimization bug that breaks createMeshShaderMiscTestsEXT +OECMAKE_CXX_FLAGS:remove:toolchain-gcc = "-O2" + +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.3.0.bb b/meta-oe/recipes-graphics/wayland/libei_1.3.0.bb new file mode 100644 index 0000000000..ee3ee01c7d --- /dev/null +++ b/meta-oe/recipes-graphics/wayland/libei_1.3.0.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 = "997b7c0f37faea4f8bae59613c8f27370925d5b0" + +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..33e4e0998f --- /dev/null +++ b/meta-oe/recipes-graphics/xdotool/xdotool_3.20211022.1.bb @@ -0,0 +1,22 @@ +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}" + +UPSTREAM_CHECK_URI="https://github.com/jordansissel/xdotool/tags" +UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+\.\d{8}\.\d+)" + +do_install() { + oe_runmake install DESTDIR=${D} PREFIX=${prefix} +} diff --git a/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.8.bb b/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.10.bb index 62296b5be9..7d025de4c4 100644 --- a/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.8.bb +++ b/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.10.bb @@ -11,6 +11,6 @@ BBCLASSEXTEND = "native" DEPENDS += "libice" -SRC_URI[md5sum] = "3b9b79fa0f9928161f4bad94273de7ae" -SRC_URI[sha256sum] = "e6ee213a217265cc76050e4293ea70b98c32dce6505c6421227efbda62ab60c6" +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 b42c1b9506..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 @@ -9,5 +9,5 @@ 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.4.bb b/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.5.bb index 42bda7ea35..d73a27f971 100644 --- a/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.4.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] = "4fa92377e0ddc137cd226a7a87b6b29a" -SRC_URI[sha256sum] = "773f2af49c7ea2c44fba4213bee64325875c1b3c9bc4bbcd8dac9261751809c1" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "68baee57e70250ac4a7759fb78221831f97d88bc8e51dcc2e64eb3f8ca56bae3" diff --git a/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.6.bb b/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.8.bb index 76b76e4b37..4ddb1b9887 100644 --- a/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.6.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] = "5774fd4f518b3f338f2b28f270e04bfc" -SRC_URI[sha256sum] = "89b80b3a030006ab6cef717be286c12f2477894b227158b1e6133274f6ebd368" +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.1.bb b/meta-oe/recipes-graphics/xorg-app/xrdb_1.2.2.bb index e50c082d87..53214c8fe8 100644 --- a/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.1.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] = "96f9423eab4d0641c70848d665737d2e" -SRC_URI[sha256sum] = "2d23ade7cdbb487996bf77cbb32cbe9bdb34d004748a53de7a4a97660d2217b7" +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 c2feb81070..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 xorgproto 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_394.bb b/meta-oe/recipes-graphics/xorg-app/xterm_394.bb new file mode 100644 index 0000000000..94953b288e --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-app/xterm_394.bb @@ -0,0 +1,51 @@ +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] = "a2a0cb206eb0423dedc34794f5c2d38c83390d2dd1106b66aba0960c3a976c7a" + +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" + +CVE_STATUS[CVE-1999-0965] = "cpe-incorrect: Current version (392) not affected. This was fixed in version X11R5-fix-26 (R11R6 from 1994)" 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.5.bb b/meta-oe/recipes-graphics/xorg-app/xwud_1.0.6.bb index 7cb550d276..1be0b5cd77 100644 --- a/meta-oe/recipes-graphics/xorg-app/xwud_1.0.5.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] = "79972093bb0766fcd0223b2bd6d11932" -SRC_URI[sha256sum] = "99997051f8a892313f22edf41dab45864e86e7062ee9012d5dbb6a40fc6b10a9" +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..171b2dec7b --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_1.1.1.bb @@ -0,0 +1,22 @@ +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 \ +" +UPSTREAM_CHECK_URI="https://github.com/merge/xf86-input-tslib/tags" +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)$" + +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 index b436ef1e4a..8b4526fc5e 100644 --- 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 @@ -1,14 +1,14 @@ require recipes-graphics/xorg-driver/xorg-driver-video.inc SUMMARY = "X.Org X server -- ARM SOC display driver" -LICENSE = "MIT-X & GPLv2+" +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" +SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-armsoc;branch=master" S = "${WORKDIR}/git" -RDEPENDS_${PN} += "xserver-xorg-module-exa" +RDEPENDS:${PN} += "xserver-xorg-module-exa" diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_18.0.1.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_18.0.1.bb deleted file mode 100644 index 969c1a0a6a..0000000000 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_18.0.1.bb +++ /dev/null @@ -1,25 +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 \ - virtual/libgl xorgproto libpciaccess" - -inherit distro_features_check -REQUIRED_DISTRO_FEATURES += "opengl" - -COMPATIBLE_HOST = '(i.86|x86_64).*-linux' - -SRC_URI[md5sum] = "40e7c0a5a69aba3d84e0958f58705ea7" -SRC_URI[sha256sum] = "72ea3b8127d4550b64f797457f5a7851a541fa4ee2cc3f345b6c1886b81714a0" - -EXTRA_OECONF += "--disable-glamor" - -RDEPENDS_${PN} += "xserver-xorg-module-exa" -RRECOMMENDS_${PN} += "linux-firmware-radeon" - -FILES_${PN} += "${datadir}/X11" 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-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_2.0.1.bb index 182e18fd95..34b3e4cde6 100644 --- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb +++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.1.bb @@ -4,18 +4,16 @@ 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" +LIC_FILES_CHKSUM = "file://COPYING;md5=4aa220f495ce9be5ce4243d21ebac14f" DEPENDS += "virtual/libx11 libpciaccess" COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)' -SRC_URI[md5sum] = "3ee2549247e01de3e7bce52c27483118" -SRC_URI[sha256sum] = "b663cd8e6364f7c4e2637b9fcab9861d0e3971518c73b00d213f6545a1289422" +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" +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.17.bb index 2b1b87c4d0..fbf6406caf 100644 --- 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.17.bb @@ -8,13 +8,14 @@ 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" +RDEPENDS:${PN} += "xserver-xorg-module-exa" -inherit distro_features_check +inherit features_check REQUIRED_DISTRO_FEATURES += "opengl" COMPATIBLE_HOST = '(i.86|x86_64).*-linux' -SRC_URI[md5sum] = "717203cb87029cddcbccf7398f9ad8c3" -SRC_URI[sha256sum] = "aede10fd395610a328697adca3434fb14e9afbd79911d6c8545cfa2c0e541d4c" +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 3e5c31a05d..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 += " xorgproto 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 cb1ffcd8cc..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 @@ -5,12 +5,12 @@ DEPENDS += "xorgproto virtual/libx11 libxext libxt libxmu libxpm libxau xmlto-na 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.0.bb b/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.1.bb index 4fe9992f20..3b15153b6b 100644 --- a/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.0.bb +++ b/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.1.bb @@ -4,8 +4,9 @@ DEPENDS += "xorgproto libxfixes libxrandr" LIC_FILES_CHKSUM = "file://COPYING;md5=3c1ce42c334a6f5cccb0277556a053e0" -SRC_URI = "http://xorg.freedesktop.org/archive/individual/lib/libXpresent-${PV}.tar.bz2" -SRC_URI[md5sum] = "edd87ac15bb666081898dd7382fcbff5" -SRC_URI[sha256sum] = "c11ae015141a9afbe10f4f2b8ee00b11adca6373dc1b9808d7c6c138b2da7b8a" +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/tweak-app-defaults.patch b/meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch index 099a0b2f4a..1d0d20da2f 100644 --- a/meta-oe/recipes-graphics/xscreensaver/files/tweak-app-defaults.patch +++ b/meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch @@ -1,5 +1,16 @@ ---- xscreensaver-5.39.orig/driver/XScreenSaver.ad.in -+++ xscreensaver-5.39/driver/XScreenSaver.ad.in +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) @@ -18,23 +29,23 @@ *grabVideoFrames: False *chooseRandomImages: @DEFAULT_IMAGES_P@ ! This can be a local directory name, or the URL of an RSS or Atom feed. -@@ -48,11 +48,11 @@ +@@ -47,11 +47,11 @@ + *memoryLimit: 0 *lock: False *verbose: False - *timestamp: True -*fade: True +*fade: False - *unfade: False + *unfade: True *fadeSeconds: 0:00:03 *fadeTicks: 20 -*splash: True +*splash: False *splashDuration: 0:00:05 *visualID: default - *captureStderr: True -@@ -158,236 +158,8 @@ - ! screen savers interactively. - ! + *installColormap: True +@@ -324,256 +324,8 @@ XScreenSaver.bourneShell: /bin/sh + !============================================================================= + *programs: \ - maze -root \n\ -@GL_KLUDGE@ GL: superquadrics -root \n\ @@ -74,7 +85,7 @@ - munch -root \n\ - penrose -root \n\ -@GL_KLUDGE@ GL: pipes -root \n\ -- rd-bomb -root \n\ +- rdbomb -root \n\ -@GL_KLUDGE@ GL: rubik -root \n\ -- sierpinski -root \n\ - slip -root \n\ @@ -138,6 +149,7 @@ -@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\ @@ -262,12 +274,31 @@ -@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 +-@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'" \n\ -+ gifview --window $XSCREENSAVER_WINDOW /usr/share/logo/bosch-black.gif \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/fix-buildscripts.patch b/meta-oe/recipes-graphics/xscreensaver/files/fix-buildscripts.patch deleted file mode 100644 index 3a50eff83c..0000000000 --- a/meta-oe/recipes-graphics/xscreensaver/files/fix-buildscripts.patch +++ /dev/null @@ -1,116 +0,0 @@ ---- xscreensaver-5.39.orig/configure.in -+++ xscreensaver-5.39/configure.in -@@ -14,6 +14,9 @@ - # - ############################################################################### - -+includedir='' -+libdir='' -+ - AH_TOP([ - /* config.h.in --- xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski. - * -@@ -422,12 +425,12 @@ - - OBJCC="$CC" - -- AC_MSG_CHECKING([whether the compiler works on ANSI C]) -- AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], -- AC_MSG_RESULT(yes), -- AC_MSG_RESULT(no) -- AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.), -- AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.)) -+# AC_MSG_CHECKING([whether the compiler works on ANSI C]) -+# AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], -+# AC_MSG_RESULT(yes), -+# AC_MSG_RESULT(no) -+# AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.), -+# AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.)) - - if test -n "$GCC"; then - AC_MSG_RESULT(Turning on gcc compiler warnings.) ---- xscreensaver-5.39.orig/Makefile.in -+++ xscreensaver-5.39/Makefile.in -@@ -6,7 +6,7 @@ - VPATH = @srcdir@ - - SHELL = /bin/sh --SUBDIRS = utils jwxyz hacks/images hacks hacks/glx driver po -+SUBDIRS = utils jwxyz hacks/images hacks driver - SUBDIRS2 = $(SUBDIRS) OSX android - TARFILES = README README.hacking README.VMS INSTALL \ - configure configure.in Makefile.in config.h.in \ ---- xscreensaver-5.39.orig/driver/Makefile.in -+++ xscreensaver-5.39/driver/Makefile.in -@@ -10,7 +10,7 @@ - top_srcdir = @top_srcdir@ - top_builddir = .. - --install_prefix = -+install_prefix = ${DESTDIR} - prefix = @prefix@ - exec_prefix = @exec_prefix@ - bindir = @bindir@ -@@ -221,7 +221,7 @@ - SCRIPTS_1 = xscreensaver-getimage-file xscreensaver-getimage-video \ - xscreensaver-text - SCRIPTS_OSX = xscreensaver-getimage-desktop --SCRIPTS = $(SCRIPTS_1) @SCRIPTS_OSX@ -+#SCRIPTS = $(SCRIPTS_1) @SCRIPTS_OSX@ - - HDRS = XScreenSaver_ad.h XScreenSaver_Xm_ad.h \ - xscreensaver.h prefs.h remote.h exec.h \ ---- xscreensaver-5.39.orig/hacks/Makefile.in -+++ xscreensaver-5.39/hacks/Makefile.in -@@ -10,7 +10,7 @@ - top_srcdir = @top_srcdir@ - top_builddir = .. - --install_prefix = -+install_prefix = ${DESTDIR} - prefix = @prefix@ - exec_prefix = @exec_prefix@ - bindir = @bindir@ -@@ -122,7 +122,7 @@ - asm6502.c abstractile.c lcdscrub.c hexadrop.c \ - tessellimage.c delaunay.c recanim.c binaryring.c \ - webcollage-cocoa.m webcollage-helper-cocoa.m testx11.c --SCRIPTS = vidwhacker webcollage ljlatest -+#SCRIPTS = vidwhacker webcollage ljlatest - - # Programs that are mentioned in XScreenSaver.ad, and that have XML files, - # but that are not shipped with xscreensaver itself. -@@ -163,7 +163,13 @@ - lcdscrub.o hexadrop.o tessellimage.o delaunay.o recanim.o \ - binaryring.o testx11.o - --EXES = attraction blitspin bouboule braid decayscreen deco \ -+EXES = fontglide -+JPEG_EXES = webcollage-helper -+ -+RETIRED_EXES = ant bubbles critical flag forest hyperball hypercube laser \ -+ lightning lisa lissie lmorph rotor sphere spiral t3d vines \ -+ whirlygig worm xsublim juggle testx11 \ -+ attraction blitspin bouboule braid decayscreen deco \ - drift flame galaxy grav greynetic halo \ - helix hopalong ifs imsmap julia kaleidescope \ - maze moire noseguy pedal \ -@@ -179,17 +185,12 @@ - speedmine vermiculate twang apollonian euler2d \ - polyominoes thornbird fluidballs anemone halftone \ - metaballs eruption popsquares barcode piecewise cloudlife \ -- fontglide apple2 xanalogtv pong wormhole \ -+ apple2 xanalogtv pong wormhole \ - pacman fuzzyflakes anemotaxis memscroller substrate \ - intermomentary fireworkx fiberlamp boxfit interaggregate \ - celtic cwaves m6502 abstractile lcdscrub hexadrop \ - tessellimage binaryring \ - @JPEG_EXES@ --JPEG_EXES = webcollage-helper -- --RETIRED_EXES = ant bubbles critical flag forest hyperball hypercube laser \ -- lightning lisa lissie lmorph rotor sphere spiral t3d vines \ -- whirlygig worm xsublim juggle testx11 - - HACK_OBJS_1 = fps.o $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \ - $(UTILS_BIN)/usleep.o $(UTILS_BIN)/yarandom.o \ diff --git a/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb b/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb deleted file mode 100644 index 3a88f12ec8..0000000000 --- a/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.39.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "X screen saver and locker" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://driver/xscreensaver.h;endline=10;md5=e141ab5822fb2d43694e1e47b59fc0df" - -SRC_URI = "https://www.jwz.org/${BPN}/${BP}.tar.gz" -SRC_URI[md5sum] = "a5da62b91271f4e8afcc73d44697364b" -SRC_URI[sha256sum] = "48ce1880f18b5321182be0c033aeceb5ec5628a1505b9d1ff69dbf06093c2426" - -SRC_URI += " \ - file://xscreensaver.service \ - file://fix-buildscripts.patch \ - file://tweak-app-defaults.patch \ -" - -DEPENDS = "intltool-native libx11 libxext libxt libxft glib-2.0-native bc-native" -# These are only needed as part of the stopgap screensaver implementation: -RDEPENDS_${PN} += "xserver-nodm-init liberation-fonts" - -inherit systemd perlnative pkgconfig gettext autotools-brokensep distro_features_check - -EXTRA_OECONF += "--with-x-app-defaults=${datadir}/X11/app-defaults" - -REQUIRED_DISTRO_FEATURES = "x11" - -do_install_append() { - install -D ${WORKDIR}/xscreensaver.service ${D}${systemd_unitdir}/system/xscreensaver.service -} - -FILES_${PN} += "${datadir}/X11/app-defaults/XScreenSaver" -SYSTEMD_SERVICE_${PN} = "xscreensaver.service" - -CLEANBROKEN = "1" 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..073b3f0912 --- /dev/null +++ b/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb @@ -0,0 +1,64 @@ +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" + +UPSTREAM_CHECK_URI = "https://www.jwz.org/xscreensaver/download.html" + +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" +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/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" |